@fivenorth/loop-sdk 0.10.0 → 0.11.1

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.
@@ -0,0 +1,116 @@
1
+ import type { UsdcBridgeExtension } from './extensions/usdc/types';
2
+ export type Network = 'devnet' | 'testnet' | 'mainnet' | 'local' | 'dev' | 'test' | 'main';
3
+ export type UsdcBridgeAccessType = 'not_requested' | 'pending' | 'granted';
4
+ export type Account = {
5
+ party_id: string;
6
+ auth_token: string;
7
+ public_key: string;
8
+ email?: string;
9
+ has_preapproval?: boolean;
10
+ has_merge_delegation?: boolean;
11
+ usdc_bridge_access?: UsdcBridgeAccessType;
12
+ };
13
+ export declare enum MessageType {
14
+ HANDSHAKE_ACCEPT = "handshake_accept",
15
+ HANDSHAKE_REJECT = "handshake_reject",
16
+ RUN_TRANSACTION = "run_transaction",
17
+ TRANSACTION_COMPLETED = "transaction_completed",
18
+ SIGN_RAW_MESSAGE = "sign_raw_message",
19
+ SIGN_RAW_MESSAGE_RESPONSE = "sign_raw_message_response",
20
+ REJECT_REQUEST = "reject_request"
21
+ }
22
+ export type InstrumentId = {
23
+ admin: string;
24
+ id: string;
25
+ };
26
+ export type Holding = {
27
+ instrument_id: InstrumentId;
28
+ decimals: number;
29
+ symbol: string;
30
+ org_name: string;
31
+ total_unlocked_coin: string;
32
+ total_locked_coin: string;
33
+ image: string;
34
+ };
35
+ export type ActiveContract = {
36
+ template_id: string;
37
+ contract_id: string;
38
+ [key: string]: any;
39
+ };
40
+ export type Instrument = {
41
+ instrument_admin?: string;
42
+ instrument_id: string;
43
+ };
44
+ export type TransferRequest = {
45
+ recipient: string;
46
+ amount: string;
47
+ instrument?: Instrument;
48
+ requested_at?: string;
49
+ execute_before?: string;
50
+ memo?: string;
51
+ };
52
+ export type TransactionPayload = {
53
+ commands: any[];
54
+ disclosedContracts: any[];
55
+ packageIdSelectionPreference?: string[];
56
+ actAs?: string[];
57
+ readAs?: string[];
58
+ synchronizerId?: string;
59
+ };
60
+ export type PreparedTransferPayload = {
61
+ actAs: string[];
62
+ readAs: string[];
63
+ synchronizerId: string;
64
+ commands: any[];
65
+ disclosedContracts: any[];
66
+ packageIdSelectionPreference: string[];
67
+ };
68
+ export type ConnectTransferResponse = {
69
+ payload: PreparedTransferPayload;
70
+ };
71
+ export type RunTransactionResponse = {
72
+ command_id: string;
73
+ submission_id?: string;
74
+ estimated_traffic?: unknown;
75
+ update_data?: unknown;
76
+ update_id?: string;
77
+ status?: 'succeeded' | 'failed';
78
+ error?: SubmissionError;
79
+ };
80
+ export type SubmissionError = {
81
+ error_message: string;
82
+ };
83
+ export type TransferOptions = {
84
+ requestedAt?: string | Date;
85
+ executeBefore?: string | Date;
86
+ requestTimeout?: number;
87
+ memo?: string;
88
+ message?: string;
89
+ executionMode?: 'async' | 'wait';
90
+ estimateTraffic?: boolean;
91
+ };
92
+ export type InstrumentSpec = Instrument;
93
+ export interface Wallet {
94
+ transfer(recipient: string, amount: string | number, instrument?: InstrumentSpec, options?: TransferOptions): Promise<any>;
95
+ extension: {
96
+ usdcBridge: UsdcBridgeExtension;
97
+ };
98
+ }
99
+ export type ExchangeApiKeyResponse = {
100
+ api_key: string;
101
+ auth_token: string;
102
+ email?: string;
103
+ ticket_id: string;
104
+ session_id: string;
105
+ };
106
+ export type PreparedSubmissionResponse = {
107
+ command_id: string;
108
+ transaction_hash: string;
109
+ transaction_data: string;
110
+ };
111
+ export type ExecuteSubmissionResquest = {
112
+ command_id: string;
113
+ transaction_data: string;
114
+ signature: string;
115
+ };
116
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,10 @@
1
+ export var MessageType;
2
+ (function (MessageType) {
3
+ MessageType["HANDSHAKE_ACCEPT"] = "handshake_accept";
4
+ MessageType["HANDSHAKE_REJECT"] = "handshake_reject";
5
+ MessageType["RUN_TRANSACTION"] = "run_transaction";
6
+ MessageType["TRANSACTION_COMPLETED"] = "transaction_completed";
7
+ MessageType["SIGN_RAW_MESSAGE"] = "sign_raw_message";
8
+ MessageType["SIGN_RAW_MESSAGE_RESPONSE"] = "sign_raw_message_response";
9
+ MessageType["REJECT_REQUEST"] = "reject_request";
10
+ })(MessageType || (MessageType = {}));
@@ -0,0 +1,10 @@
1
+ import type { InstrumentSpec, TransferOptions, Wallet } from './types';
2
+ import type { Provider } from './provider';
3
+ export declare class LoopWallet implements Wallet {
4
+ private getProvider;
5
+ extension: Wallet['extension'];
6
+ constructor(getProvider: () => Provider | null);
7
+ private requireProvider;
8
+ transfer(recipient: string, amount: string | number, instrument?: InstrumentSpec, options?: TransferOptions): Promise<any>;
9
+ }
10
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../src/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,qBAAa,UAAW,YAAW,MAAM;IACvC,OAAO,CAAC,WAAW,CAAwB;IACpC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;gBAE1B,WAAW,EAAE,MAAM,QAAQ,GAAG,IAAI;IAO9C,OAAO,CAAC,eAAe;IAQvB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,UAAU,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC;CAI3H"}
package/dist/wallet.js ADDED
@@ -0,0 +1,22 @@
1
+ import { UsdcBridge } from './extensions/usdc';
2
+ export class LoopWallet {
3
+ getProvider;
4
+ extension;
5
+ constructor(getProvider) {
6
+ this.getProvider = getProvider;
7
+ this.extension = {
8
+ usdcBridge: new UsdcBridge(this.getProvider),
9
+ };
10
+ }
11
+ requireProvider() {
12
+ const provider = this.getProvider();
13
+ if (!provider) {
14
+ throw new Error('SDK not connected. Call connect() and wait for acceptance first.');
15
+ }
16
+ return provider;
17
+ }
18
+ transfer(recipient, amount, instrument, options) {
19
+ const provider = this.requireProvider();
20
+ return provider.transfer(recipient, amount, instrument, options);
21
+ }
22
+ }
package/package.json CHANGED
@@ -1,14 +1,21 @@
1
1
  {
2
2
  "name": "@fivenorth/loop-sdk",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
4
4
  "author": "support@fivenorth.io",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "devDependencies": {
8
- "@types/bun": "latest"
8
+ "@types/bun": "latest",
9
+ "@types/node-forge": "^1.3.14"
9
10
  },
10
11
  "peerDependencies": {
11
- "typescript": "^5"
12
+ "typescript": "^5",
13
+ "node-forge": "^1.3.3"
14
+ },
15
+ "peerDependenciesMeta": {
16
+ "node-forge": {
17
+ "optional": true
18
+ }
12
19
  },
13
20
  "files": [
14
21
  "dist"
@@ -18,12 +25,22 @@
18
25
  },
19
26
  "repository": "github:fivenorth-io/loop-sdk",
20
27
  "scripts": {
21
- "build": "bun build ./src/index.ts --outdir ./dist",
28
+ "build": "bun tsc && bun build ./src/index.ts --outdir ./dist --target browser --format esm",
22
29
  "prepublishOnly": "bun run build",
23
30
  "start": "bun run src/server.ts"
24
31
  },
25
32
  "type": "module",
26
33
  "types": "dist/index.d.ts",
34
+ "exports": {
35
+ ".": {
36
+ "types": "./dist/index.d.ts",
37
+ "default": "./dist/index.js"
38
+ },
39
+ "./server": {
40
+ "types": "./dist/server/index.d.ts",
41
+ "default": "./dist/server/index.js"
42
+ }
43
+ },
27
44
  "dependencies": {
28
45
  "@types/qrcode": "^1.5.6",
29
46
  "qrcode": "^1.5.4"