@monerium/sdk 2.0.0-alpha → 2.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,166 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
26
- if (kind === "m") throw new TypeError("Private method is not writable");
27
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
28
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
29
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
30
- };
31
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
32
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
33
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
34
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
35
- };
36
- var _MoneriumClient_instances, _MoneriumClient_env, _MoneriumClient_authPayload, _MoneriumClient_api, _MoneriumClient_isAuthCode, _MoneriumClient_isRefreshToken, _MoneriumClient_isClientCredentials;
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.MoneriumClient = void 0;
39
- const dntShim = __importStar(require("../_dnt.shims.js"));
40
- const base64_js_1 = require("../deps/deno.land/std@0.159.0/encoding/base64.js");
41
- const base64url_js_1 = require("../deps/deno.land/std@0.159.0/encoding/base64url.js");
42
- const config_js_1 = require("./config.js");
43
- class MoneriumClient {
44
- constructor(env = "sandbox") {
45
- _MoneriumClient_instances.add(this);
46
- _MoneriumClient_env.set(this, void 0);
47
- _MoneriumClient_authPayload.set(this, void 0);
48
- Object.defineProperty(this, "codeVerifier", {
49
- enumerable: true,
50
- configurable: true,
51
- writable: true,
52
- value: void 0
53
- });
54
- Object.defineProperty(this, "bearerProfile", {
55
- enumerable: true,
56
- configurable: true,
57
- writable: true,
58
- value: void 0
59
- });
60
- __classPrivateFieldSet(this, _MoneriumClient_env, config_js_1.MONERIUM_CONFIG.environments[env], "f");
61
- }
62
- // -- Authentication
63
- async auth(args) {
64
- let params;
65
- if (__classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_isAuthCode).call(this, args)) {
66
- params = { ...args, grant_type: "authorization_code" };
67
- }
68
- else if (__classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_isRefreshToken).call(this, args)) {
69
- params = { ...args, grant_type: "refresh_token" };
70
- }
71
- else if (__classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_isClientCredentials).call(this, args)) {
72
- params = { ...args, grant_type: "client_credentials" };
73
- }
74
- else {
75
- throw new Error("Authentication method could not be detected.");
76
- }
77
- this.bearerProfile = (await __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "post", `auth/token`, new URLSearchParams(params), true));
78
- __classPrivateFieldSet(this, _MoneriumClient_authPayload, `Bearer ${this.bearerProfile.access_token}`, "f");
79
- }
80
- async pkceRequest(args) {
81
- const buffer = dntShim.crypto.getRandomValues(new Uint8Array(128 / 2));
82
- let randomString = "";
83
- for (let i = 0; i < buffer.length; ++i) {
84
- randomString += ("0" + buffer[i].toString(16)).slice(-2);
85
- }
86
- this.codeVerifier = randomString;
87
- const data = new dntShim.TextEncoder().encode(this.codeVerifier);
88
- const digest = await dntShim.crypto.subtle.digest("SHA-256", data);
89
- const base64Digest = (0, base64_js_1.encode)(digest);
90
- const challenge = (0, base64url_js_1.encode)(base64Digest);
91
- const params = {
92
- ...args,
93
- code_challenge: challenge,
94
- code_challenge_method: "S256",
95
- response_type: "code",
96
- };
97
- return `${__classPrivateFieldGet(this, _MoneriumClient_env, "f").api}/auth?${new URLSearchParams(params)}`;
98
- }
99
- // -- Read Methods
100
- getAuthContext() {
101
- return __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "get", `auth/context`);
102
- }
103
- getProfile(profileId) {
104
- return __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "get", `profiles/${profileId}`);
105
- }
106
- getBalances(profileId) {
107
- if (profileId) {
108
- return __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "get", `profiles/${profileId}/balances`);
109
- }
110
- else {
111
- return __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "get", `balances`);
112
- }
113
- }
114
- getOrders(filter) {
115
- const searchParams = new URLSearchParams(filter);
116
- return __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "get", `orders?${searchParams}`);
117
- }
118
- getOrder(orderId) {
119
- return __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "get", `orders/${orderId}`);
120
- }
121
- getTokens() {
122
- return __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "get", "tokens");
123
- }
124
- // -- Write Methods
125
- linkAddress(profileId, body) {
126
- return __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "post", `profiles/${profileId}/addresses`, JSON.stringify(body));
127
- }
128
- placeOrder(order, profileId) {
129
- if (profileId) {
130
- return __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "post", `profiles/${profileId}/orders`, JSON.stringify(order));
131
- }
132
- else {
133
- return __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "post", `orders`, JSON.stringify(order));
134
- }
135
- }
136
- uploadSupportingDocument(document) {
137
- const searchParams = new URLSearchParams(document);
138
- return __classPrivateFieldGet(this, _MoneriumClient_instances, "m", _MoneriumClient_api).call(this, "post", "files/supporting-document", searchParams, true);
139
- }
140
- }
141
- exports.MoneriumClient = MoneriumClient;
142
- _MoneriumClient_env = new WeakMap(), _MoneriumClient_authPayload = new WeakMap(), _MoneriumClient_instances = new WeakSet(), _MoneriumClient_api =
143
- // -- Helper Methods
144
- async function _MoneriumClient_api(method, resource, body, isFormEncoded) {
145
- const res = await dntShim.fetch(`${__classPrivateFieldGet(this, _MoneriumClient_env, "f").api}/${resource}`, {
146
- method,
147
- headers: {
148
- "Content-Type": `application/${isFormEncoded ? "x-www-form-urlencoded" : "json"}`,
149
- Authorization: __classPrivateFieldGet(this, _MoneriumClient_authPayload, "f") || "",
150
- },
151
- body,
152
- });
153
- const response = await res.json();
154
- if (res.ok) {
155
- return response;
156
- }
157
- else {
158
- throw response;
159
- }
160
- }, _MoneriumClient_isAuthCode = function _MoneriumClient_isAuthCode(args) {
161
- return args.code != undefined;
162
- }, _MoneriumClient_isRefreshToken = function _MoneriumClient_isRefreshToken(args) {
163
- return args.refresh_token != undefined;
164
- }, _MoneriumClient_isClientCredentials = function _MoneriumClient_isClientCredentials(args) {
165
- return args.client_secret != undefined;
166
- };
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MONERIUM_CONFIG = void 0;
4
- const MONERIUM_CONFIG = {
5
- environments: {
6
- production: {
7
- api: "https://api.monerium.app",
8
- web: "https://monerium.app",
9
- },
10
- sandbox: {
11
- api: "https://api.monerium.dev",
12
- web: "https://sandbox.monerium.dev",
13
- },
14
- },
15
- };
16
- exports.MONERIUM_CONFIG = MONERIUM_CONFIG;
@@ -1,76 +0,0 @@
1
- "use strict";
2
- // --- Config --- //
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.OrderKind = exports.Network = exports.Chain = exports.PaymentStandard = exports.Currency = void 0;
5
- // --- Client Methods --- //
6
- var Currency;
7
- (function (Currency) {
8
- Currency["eur"] = "eur";
9
- Currency["usd"] = "usd";
10
- Currency["gbp"] = "gbp";
11
- Currency["isk"] = "isk";
12
- })(Currency = exports.Currency || (exports.Currency = {}));
13
- // -- authContext
14
- var Method;
15
- (function (Method) {
16
- Method["password"] = "password";
17
- Method["resource"] = "resource";
18
- Method["jwt"] = "jwt";
19
- Method["apiKey"] = "apiKey";
20
- })(Method || (Method = {}));
21
- var Type;
22
- (function (Type) {
23
- Type["corporate"] = "corporate";
24
- Type["personal"] = "personal";
25
- })(Type || (Type = {}));
26
- var Permission;
27
- (function (Permission) {
28
- Permission["read"] = "read";
29
- Permission["write"] = "write";
30
- })(Permission || (Permission = {}));
31
- // -- getProfile
32
- var KYCState;
33
- (function (KYCState) {
34
- KYCState["absent"] = "absent";
35
- KYCState["submitted"] = "submitted";
36
- KYCState["pending"] = "pending";
37
- KYCState["confirmed"] = "confirmed";
38
- })(KYCState || (KYCState = {}));
39
- var KYCOutcome;
40
- (function (KYCOutcome) {
41
- KYCOutcome["approved"] = "approved";
42
- KYCOutcome["rejected"] = "rejected";
43
- KYCOutcome["unknown"] = "unknown";
44
- })(KYCOutcome || (KYCOutcome = {}));
45
- var PaymentStandard;
46
- (function (PaymentStandard) {
47
- PaymentStandard["iban"] = "iban";
48
- PaymentStandard["scan"] = "scan";
49
- })(PaymentStandard = exports.PaymentStandard || (exports.PaymentStandard = {}));
50
- // -- getBalances
51
- var Chain;
52
- (function (Chain) {
53
- Chain["polygon"] = "polygon";
54
- Chain["ethereum"] = "ethereum";
55
- Chain["gnosis"] = "gnosis";
56
- })(Chain = exports.Chain || (exports.Chain = {}));
57
- var Network;
58
- (function (Network) {
59
- Network["mainnet"] = "mainnet";
60
- Network["chiado"] = "chiado";
61
- Network["goerli"] = "goerli";
62
- Network["mumbai"] = "mumbai";
63
- })(Network = exports.Network || (exports.Network = {}));
64
- // --getOrders
65
- var OrderKind;
66
- (function (OrderKind) {
67
- OrderKind["redeem"] = "redeem";
68
- OrderKind["issue"] = "issue";
69
- })(OrderKind = exports.OrderKind || (exports.OrderKind = {}));
70
- var OrderState;
71
- (function (OrderState) {
72
- OrderState["placed"] = "placed";
73
- OrderState["pending"] = "pending";
74
- OrderState["processed"] = "processed";
75
- OrderState["rejected"] = "rejected";
76
- })(OrderState || (OrderState = {}));
@@ -1,18 +0,0 @@
1
- import { Deno } from "@deno/shim-deno";
2
- export { Deno } from "@deno/shim-deno";
3
- export { crypto, type Crypto, type SubtleCrypto, type AlgorithmIdentifier, type Algorithm, type RsaOaepParams, type BufferSource, type AesCtrParams, type AesCbcParams, type AesGcmParams, type CryptoKey, type KeyAlgorithm, type KeyType, type KeyUsage, type EcdhKeyDeriveParams, type HkdfParams, type HashAlgorithmIdentifier, type Pbkdf2Params, type AesDerivedKeyParams, type HmacImportParams, type JsonWebKey, type RsaOtherPrimesInfo, type KeyFormat, type RsaHashedKeyGenParams, type RsaKeyGenParams, type BigInteger, type EcKeyGenParams, type NamedCurve, type CryptoKeyPair, type AesKeyGenParams, type HmacKeyGenParams, type RsaHashedImportParams, type EcKeyImportParams, type AesKeyAlgorithm, type RsaPssParams, type EcdsaParams } from "@deno/shim-crypto";
4
- import { fetch, File, FormData, Headers, Request, Response } from "undici";
5
- export { fetch, File, FormData, Headers, Request, Response, type BodyInit, type HeadersInit, type RequestInit, type ResponseInit } from "undici";
6
- import { TextEncoder } from "util";
7
- export { TextEncoder } from "util";
8
- export declare const dntGlobalThis: Omit<typeof globalThis, "Deno" | "crypto" | "fetch" | "File" | "FormData" | "Headers" | "Request" | "Response" | "TextEncoder"> & {
9
- Deno: typeof Deno;
10
- crypto: import("@deno/shim-crypto").Crypto;
11
- fetch: typeof fetch;
12
- File: typeof File;
13
- FormData: typeof FormData;
14
- Headers: typeof Headers;
15
- Request: typeof Request;
16
- Response: typeof Response;
17
- TextEncoder: typeof TextEncoder;
18
- };
@@ -1,11 +0,0 @@
1
- /**
2
- * CREDIT: https://gist.github.com/enepomnyaschih/72c423f727d395eeaa09697058238727
3
- * Encodes a given Uint8Array, ArrayBuffer or string into RFC4648 base64 representation
4
- * @param data
5
- */
6
- export declare function encode(data: ArrayBuffer | string): string;
7
- /**
8
- * Decodes a given RFC4648 base64 encoded string
9
- * @param b64
10
- */
11
- export declare function decode(b64: string): Uint8Array;
@@ -1,10 +0,0 @@
1
- /**
2
- * Encodes a given ArrayBuffer or string into a base64url representation
3
- * @param data
4
- */
5
- export declare function encode(data: ArrayBuffer | string): string;
6
- /**
7
- * Converts given base64url encoded data back to original
8
- * @param b64url
9
- */
10
- export declare function decode(b64url: string): Uint8Array;
package/types/mod.d.ts DELETED
@@ -1 +0,0 @@
1
- export { MoneriumClient } from "./src/client.js";
@@ -1,19 +0,0 @@
1
- import * as dntShim from "../_dnt.shims.js";
2
- import type { AuthArgs, AuthContext, Balances, BearerProfile, LinkAddress, NewOrder, Order, OrderFilter, PKCERequestArgs, Profile, SupportingDoc, Token } from "./types.js";
3
- export declare class MoneriumClient {
4
- #private;
5
- codeVerifier?: string;
6
- bearerProfile?: BearerProfile;
7
- constructor(env?: "production" | "sandbox");
8
- auth(args: AuthArgs): Promise<void>;
9
- pkceRequest(args: PKCERequestArgs): Promise<string>;
10
- getAuthContext(): Promise<AuthContext>;
11
- getProfile(profileId: string): Promise<Profile>;
12
- getBalances(profileId?: string): Promise<Balances> | Promise<Balances[]>;
13
- getOrders(filter?: OrderFilter): Promise<Order[]>;
14
- getOrder(orderId: string): Promise<Order>;
15
- getTokens(): Promise<Token[]>;
16
- linkAddress(profileId: string, body: LinkAddress): Promise<unknown>;
17
- placeOrder(order: NewOrder, profileId?: string): Promise<Order>;
18
- uploadSupportingDocument(document: dntShim.File): Promise<SupportingDoc>;
19
- }
@@ -1,3 +0,0 @@
1
- import type { Config } from "./types.js";
2
- declare const MONERIUM_CONFIG: Config;
3
- export { MONERIUM_CONFIG };
@@ -1,266 +0,0 @@
1
- export declare type Environment = {
2
- api: string;
3
- web: string;
4
- };
5
- export declare type Config = {
6
- environments: {
7
- production: Environment;
8
- sandbox: Environment;
9
- };
10
- };
11
- export interface BearerProfile {
12
- access_token: string;
13
- token_type: string;
14
- expires_in: number;
15
- refresh_token: string;
16
- profile: string;
17
- userId: string;
18
- }
19
- export declare enum Currency {
20
- eur = "eur",
21
- usd = "usd",
22
- gbp = "gbp",
23
- isk = "isk"
24
- }
25
- export declare type AuthArgs = Omit<AuthCode, "grant_type"> | Omit<RefreshToken, "grant_type"> | Omit<ClientCredentials, "grant_type">;
26
- export interface AuthCode {
27
- grant_type: "authorization_code";
28
- client_id: string;
29
- code: string;
30
- code_verifier: string;
31
- redirect_uri: string;
32
- scope?: string;
33
- }
34
- export interface RefreshToken {
35
- grant_type: "refresh_token";
36
- client_id: string;
37
- refresh_token: string;
38
- scope?: string;
39
- }
40
- export interface ClientCredentials {
41
- grant_type: "client_credentials";
42
- client_id: string;
43
- client_secret: string;
44
- scope?: string;
45
- }
46
- export declare type PKCERequestArgs = Omit<PKCERequest, "code_challenge" | "code_challenge_method" | "response_type">;
47
- export declare type PKCERequest = {
48
- client_id: string;
49
- code_challenge: string;
50
- code_challenge_method: string;
51
- response_type: string;
52
- state: string;
53
- redirect_uri?: string;
54
- scope?: string;
55
- address?: string;
56
- };
57
- declare enum Method {
58
- password = "password",
59
- resource = "resource",
60
- jwt = "jwt",
61
- apiKey = "apiKey"
62
- }
63
- declare enum Type {
64
- corporate = "corporate",
65
- personal = "personal"
66
- }
67
- declare enum Permission {
68
- read = "read",
69
- write = "write"
70
- }
71
- declare type AuthProfile = {
72
- id: string;
73
- type: Type;
74
- name: string;
75
- perms: Permission[];
76
- };
77
- export interface AuthContext {
78
- userId: string;
79
- email: string;
80
- name: string;
81
- roles: "admin"[];
82
- auth: {
83
- method: Method;
84
- subject: string;
85
- verified: boolean;
86
- };
87
- defaultProfile: string;
88
- profiles: AuthProfile[];
89
- }
90
- declare enum KYCState {
91
- absent = "absent",
92
- submitted = "submitted",
93
- pending = "pending",
94
- confirmed = "confirmed"
95
- }
96
- declare enum KYCOutcome {
97
- approved = "approved",
98
- rejected = "rejected",
99
- unknown = "unknown"
100
- }
101
- declare type KYC = {
102
- state: KYCState;
103
- outcome: KYCOutcome;
104
- };
105
- export declare enum PaymentStandard {
106
- iban = "iban",
107
- scan = "scan"
108
- }
109
- declare type Account = {
110
- address: string;
111
- currency: Currency;
112
- standard: PaymentStandard;
113
- iban?: string;
114
- sortCode?: string;
115
- accountNumber?: string;
116
- network: Network;
117
- chain: Chain;
118
- id?: string;
119
- };
120
- export interface Profile {
121
- id: string;
122
- name: string;
123
- kyc: KYC;
124
- accounts: Account[];
125
- }
126
- export declare enum Chain {
127
- polygon = "polygon",
128
- ethereum = "ethereum",
129
- gnosis = "gnosis"
130
- }
131
- export declare enum Network {
132
- mainnet = "mainnet",
133
- chiado = "chiado",
134
- goerli = "goerli",
135
- mumbai = "mumbai"
136
- }
137
- declare type Balance = {
138
- currency: Currency;
139
- amount: string;
140
- };
141
- export interface Balances {
142
- id: string;
143
- address: string;
144
- chain: Chain;
145
- network: Network;
146
- balances: Balance[];
147
- }
148
- export declare enum OrderKind {
149
- redeem = "redeem",
150
- issue = "issue"
151
- }
152
- declare enum OrderState {
153
- placed = "placed",
154
- pending = "pending",
155
- processed = "processed",
156
- rejected = "rejected"
157
- }
158
- declare type Fee = {
159
- provider: "satchel";
160
- currency: Currency;
161
- amount: string;
162
- };
163
- declare type IBAN = {
164
- standard: PaymentStandard.iban;
165
- iban: string;
166
- };
167
- declare type SCAN = {
168
- standard: PaymentStandard.scan;
169
- sortCode: string;
170
- accountNumber: string;
171
- };
172
- declare type Individual = {
173
- firstName: string;
174
- lastName: string;
175
- country?: string;
176
- };
177
- declare type Corporation = {
178
- companyName: string;
179
- country: string;
180
- };
181
- declare type Counterpart = {
182
- identifier: IBAN | SCAN;
183
- details: Individual | Corporation;
184
- };
185
- declare type OrderMetadata = {
186
- approvedAt: string;
187
- processedAt: string;
188
- rejectedAt: string;
189
- state: OrderState;
190
- placedBy: string;
191
- placedAt: string;
192
- receivedAmount: string;
193
- sentAmount: string;
194
- };
195
- export interface OrderFilter {
196
- address?: string;
197
- txHash?: string;
198
- profile?: string;
199
- memo?: string;
200
- accountId?: string;
201
- state?: OrderState;
202
- }
203
- export interface Order {
204
- id: string;
205
- profile: string;
206
- accountId: string;
207
- address: string;
208
- kind: OrderKind;
209
- amount: string;
210
- currency: Currency;
211
- totalFee: string;
212
- fees: Fee[];
213
- counterpart: Counterpart;
214
- memo: string;
215
- rejectedReason: string;
216
- supportingDocumentId: string;
217
- meta: OrderMetadata;
218
- }
219
- export interface Token {
220
- currency: Currency;
221
- ticker: string;
222
- symbol: string;
223
- chain: Chain;
224
- network: Network;
225
- address: string;
226
- decimals: number;
227
- }
228
- export interface NewOrder {
229
- kind: OrderKind;
230
- amount: string;
231
- signature: string;
232
- accountId?: string;
233
- address: string;
234
- currency: Currency;
235
- counterpart: Counterpart;
236
- message: string;
237
- memo: string;
238
- supportingDocumentId?: string;
239
- chain: Chain;
240
- network: Network;
241
- }
242
- declare type SupportingDocMetadata = {
243
- uploadedBy: string;
244
- createdAt: string;
245
- updatedAt: string;
246
- };
247
- export interface SupportingDoc {
248
- id: string;
249
- name: string;
250
- type: string;
251
- size: number;
252
- hash: string;
253
- meta: SupportingDocMetadata;
254
- }
255
- interface CurrencyAccounts {
256
- network: Network;
257
- chain: Chain;
258
- currency: Currency;
259
- }
260
- export interface LinkAddress {
261
- address: string;
262
- message: string;
263
- signature: string;
264
- accounts: CurrencyAccounts[];
265
- }
266
- export {};