@boundlessfi/identity-sdk 0.1.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,69 @@
1
+ import { SmartAccountKit } from "smart-account-kit";
2
+ import type { AssembledTransaction } from "smart-account-kit";
3
+ import type { BoundlessSdkConfig, ConnectOptions, ConnectResult, SignAndSubmitResult, AddRecoveryKeyOptions, RecoveryKeyResult, BoundlessEventName, BoundlessEventHandler } from "./types";
4
+ export declare class BoundlessSDK {
5
+ private config;
6
+ private kit;
7
+ private _walletAddress;
8
+ private authClient;
9
+ constructor(config: BoundlessSdkConfig);
10
+ /**
11
+ * Access the underlying SmartAccountKit instance for advanced usage.
12
+ */
13
+ get smartAccountKit(): SmartAccountKit;
14
+ /**
15
+ * Connect to an existing passkey wallet.
16
+ * If prompt is true, forces the browser passkey selection UI.
17
+ * Does NOT deploy a new wallet.
18
+ */
19
+ connect(options?: ConnectOptions): Promise<ConnectResult | null>;
20
+ /**
21
+ * Create a new wallet + credential for a user.
22
+ * Triggers browser passkey prompt.
23
+ * Links to the active Better-Auth session.
24
+ */
25
+ register(userName: string): Promise<ConnectResult>;
26
+ /**
27
+ * Link a Stellar wallet address to the currently authenticated user session.
28
+ */
29
+ private linkToSession;
30
+ /**
31
+ * Sign and submit a transaction.
32
+ * Delegates to SmartAccountKit (which handles relayer if configured).
33
+ */
34
+ signAndSubmit(transaction: AssembledTransaction<any>): Promise<SignAndSubmitResult>;
35
+ /**
36
+ * Fetch the balance of the connected wallet (or any specific address).
37
+ * By default, fetches native XLM balance.
38
+ * If assetCode (and issuer) is provided, fetches that asset's balance.
39
+ * If assetCode starts with 'C', it is treated as a contract ID.
40
+ */
41
+ getBalance(address: string, assetCode?: string, assetIssuer?: string): Promise<string>;
42
+ /**
43
+ * Transfer funds (XLM or Token).
44
+ * Automatically resolves Asset-to-Contract if needed.
45
+ */
46
+ transfer(to: string, amount: string | number, assetCode?: string, assetIssuer?: string): Promise<SignAndSubmitResult>;
47
+ /**
48
+ * Disconnect the wallet (clear local session).
49
+ * Does NOT sign out of Better-Auth.
50
+ */
51
+ disconnect(): Promise<void>;
52
+ /**
53
+ * Get the connected wallet address synchronously.
54
+ */
55
+ getWalletAddress(): string | null;
56
+ /**
57
+ * Add a recovery key (new passkey) to the existing account.
58
+ */
59
+ addRecoveryKey(options: AddRecoveryKeyOptions): Promise<RecoveryKeyResult>;
60
+ /**
61
+ * Remove a credential by ID.
62
+ */
63
+ removeCredential(credentialId: string): Promise<void>;
64
+ /**
65
+ * Subscribe to events.
66
+ */
67
+ onEvent(event: BoundlessEventName, handler: BoundlessEventHandler): () => void;
68
+ }
69
+ //# sourceMappingURL=boundless-sdk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundless-sdk.d.ts","sourceRoot":"","sources":["../src/boundless-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EAIhB,MAAM,mBAAmB,CAAC;AAW3B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAM9D,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAKjB,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,cAAc,CAAuB;IAE7C,OAAO,CAAC,UAAU,CAAM;gBAEZ,MAAM,EAAE,kBAAkB;IAmCtC;;OAEG;IACH,IAAI,eAAe,IAAI,eAAe,CAErC;IAED;;;;OAIG;IACG,OAAO,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAsCtE;;;;OAIG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAmBxD;;OAEG;YACW,aAAa;IAkC3B;;;OAGG;IACG,aAAa,CACjB,WAAW,EAAE,oBAAoB,CAAC,GAAG,CAAC,GACrC,OAAO,CAAC,mBAAmB,CAAC;IAQ/B;;;;;OAKG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,SAAS,SAAQ,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC;IAuGlB;;;OAGG;IACG,QAAQ,CACZ,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,SAAS,SAAQ,EACjB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,CAAC;IAgC/B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,IAAI;IA6CjC;;OAEG;IACG,cAAc,CAClB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,iBAAiB,CAAC;IAkB7B;;OAEG;IACG,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D;;OAEG;IACH,OAAO,CACL,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,qBAAqB,GAC7B,MAAM,IAAI;CAyBd"}
@@ -0,0 +1,373 @@
1
+ import { SmartAccountKit, WalletNotConnectedError, STROOPS_PER_XLM, } from "smart-account-kit";
2
+ import { rpc, Asset, Address, Contract, Account, TransactionBuilder, scValToNative, TimeoutInfinite, } from "@stellar/stellar-sdk";
3
+ import { createAuthClient } from "better-auth/client";
4
+ import { inferAdditionalFields } from "better-auth/client/plugins";
5
+ import { NETWORK_CONFIGS } from "./constants";
6
+ import { BoundlessAuthError, BoundlessLinkError } from "./errors";
7
+ // Valid G-address for simulation source (USDC Issuer)
8
+ const DUMMY_SOURCE = "GBBD47IF6LWK7P7MDEVSCWR7DPUWV3NY3DTQEVFL4NAT4AQH3ZLLFLA5";
9
+ export class BoundlessSDK {
10
+ config;
11
+ kit;
12
+ _walletAddress = null;
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ authClient; // typed via createAuthClient return
15
+ constructor(config) {
16
+ this.config = config;
17
+ // 1. Resolve network config
18
+ const networkConfig = NETWORK_CONFIGS[config.network];
19
+ const rpcUrl = config.rpcUrl || networkConfig.defaultRpcUrl;
20
+ // 2. Initialize SmartAccountKit
21
+ this.kit = new SmartAccountKit({
22
+ rpcUrl,
23
+ networkPassphrase: networkConfig.networkPassphrase,
24
+ accountWasmHash: networkConfig.accountWasmHash,
25
+ webauthnVerifierAddress: networkConfig.webauthnVerifierAddress,
26
+ rpId: config.rpId,
27
+ rpName: config.rpName,
28
+ storage: config.storage, // optional
29
+ relayerUrl: config.relayerProxyUrl, // optional
30
+ });
31
+ // 3. Create Better-Auth client
32
+ // We cannot do `typeof auth` inference across packages easily without importing backend code.
33
+ // inferAdditionalFields is the standard polyrepo pattern.
34
+ this.authClient = createAuthClient({
35
+ baseURL: config.backendUrl,
36
+ plugins: [
37
+ inferAdditionalFields({
38
+ user: {
39
+ stellarAddress: { type: "string" },
40
+ credentialId: { type: "string" },
41
+ },
42
+ }),
43
+ ],
44
+ });
45
+ }
46
+ /**
47
+ * Access the underlying SmartAccountKit instance for advanced usage.
48
+ */
49
+ get smartAccountKit() {
50
+ return this.kit;
51
+ }
52
+ /**
53
+ * Connect to an existing passkey wallet.
54
+ * If prompt is true, forces the browser passkey selection UI.
55
+ * Does NOT deploy a new wallet.
56
+ */
57
+ async connect(options) {
58
+ const prompt = options?.prompt === true;
59
+ // 1. Silent restore first (default behavior of connectWallet without args)
60
+ // If prompt is true, we skip silent restore if we want to force UI,
61
+ // but smart-account-kit connectWallet handles 'prompt: true' by forcing it.
62
+ // However, the spec says:
63
+ // "Call kit.connectWallet() ← silent restore"
64
+ // "If result → return mapped... "
65
+ // "If null AND options?.prompt === true → call kit.connectWallet({ prompt: true })"
66
+ let result = await this.kit.connectWallet();
67
+ if (result) {
68
+ this._walletAddress = result.contractId;
69
+ return {
70
+ walletAddress: result.contractId,
71
+ credentialId: result.credentialId || "",
72
+ isNew: false,
73
+ };
74
+ }
75
+ if (prompt) {
76
+ result = await this.kit.connectWallet({ prompt: true });
77
+ if (result) {
78
+ this._walletAddress = result.contractId;
79
+ return {
80
+ walletAddress: result.contractId,
81
+ credentialId: result.credentialId || "",
82
+ isNew: false,
83
+ };
84
+ }
85
+ }
86
+ // "If null AND prompt is falsy → return null."
87
+ return null;
88
+ }
89
+ /**
90
+ * Create a new wallet + credential for a user.
91
+ * Triggers browser passkey prompt.
92
+ * Links to the active Better-Auth session.
93
+ */
94
+ async register(userName) {
95
+ // 1. Create wallet (deploys on-chain + persists credential)
96
+ const result = await this.kit.createWallet(this.config.rpName, userName, {
97
+ autoSubmit: true,
98
+ });
99
+ // 2. Link to Better-Auth session
100
+ await this.linkToSession(result.contractId);
101
+ this._walletAddress = result.contractId;
102
+ // 3. Return result
103
+ return {
104
+ walletAddress: result.contractId,
105
+ credentialId: result.credentialId,
106
+ isNew: true,
107
+ };
108
+ }
109
+ /**
110
+ * Link a Stellar wallet address to the currently authenticated user session.
111
+ */
112
+ async linkToSession(contractId) {
113
+ // 1. Check session
114
+ const res = await this.authClient.getSession();
115
+ const session = res?.data;
116
+ if (!session?.user) {
117
+ throw new BoundlessAuthError("No active auth session. User must be logged in via Better-Auth before linking a wallet.");
118
+ }
119
+ // 2. POST /api/auth/stellar/link
120
+ // Using fetch to manually hit the endpoint registered by the plugin.
121
+ // The SDK's authClient base URL is config.backendUrl.
122
+ const linkUrl = `${this.config.backendUrl}/api/auth/stellar/link`;
123
+ const response = await fetch(linkUrl, {
124
+ method: "POST",
125
+ headers: {
126
+ "Content-Type": "application/json",
127
+ },
128
+ body: JSON.stringify({ stellarAddress: contractId }),
129
+ // Credentials include cookies for the session
130
+ credentials: "include",
131
+ });
132
+ if (!response.ok) {
133
+ const text = await response.text();
134
+ throw new BoundlessLinkError(`Failed to link wallet: ${text}`, response.status);
135
+ }
136
+ }
137
+ /**
138
+ * Sign and submit a transaction.
139
+ * Delegates to SmartAccountKit (which handles relayer if configured).
140
+ */
141
+ async signAndSubmit(transaction) {
142
+ const result = await this.kit.signAndSubmit(transaction);
143
+ return {
144
+ hash: result.hash,
145
+ success: result.success,
146
+ };
147
+ }
148
+ /**
149
+ * Fetch the balance of the connected wallet (or any specific address).
150
+ * By default, fetches native XLM balance.
151
+ * If assetCode (and issuer) is provided, fetches that asset's balance.
152
+ * If assetCode starts with 'C', it is treated as a contract ID.
153
+ */
154
+ async getBalance(address, assetCode = "XLM", assetIssuer) {
155
+ if (!address)
156
+ return "0.00";
157
+ const networkConfig = NETWORK_CONFIGS[this.config.network];
158
+ const server = new rpc.Server(this.config.rpcUrl || networkConfig.defaultRpcUrl);
159
+ // 1. Native Balance
160
+ if (assetCode === "XLM") {
161
+ try {
162
+ const result = await server.getSACBalance(networkConfig.nativeTokenContract, Asset.native(), networkConfig.networkPassphrase);
163
+ if (result.balanceEntry) {
164
+ return (Number(result.balanceEntry.amount) / STROOPS_PER_XLM).toFixed(2);
165
+ }
166
+ return "0.00";
167
+ }
168
+ catch (e) {
169
+ console.error("Error fetching native balance:", e);
170
+ return "0.00";
171
+ }
172
+ }
173
+ // 2. Custom Token Balance
174
+ let targetContractId = assetCode;
175
+ // Resolve Contract ID
176
+ if (assetCode.includes(":")) {
177
+ // CODE:ISSUER
178
+ const [code, issuer] = assetCode.split(":");
179
+ try {
180
+ const asset = new Asset(code, issuer);
181
+ targetContractId = asset.contractId(networkConfig.networkPassphrase);
182
+ }
183
+ catch (e) {
184
+ console.error(`Invalid asset format: ${assetCode}`, e);
185
+ return "0";
186
+ }
187
+ }
188
+ else if (assetIssuer) {
189
+ // Explicit Code + Issuer
190
+ try {
191
+ const asset = new Asset(assetCode, assetIssuer);
192
+ targetContractId = asset.contractId(networkConfig.networkPassphrase);
193
+ }
194
+ catch (e) {
195
+ console.error(`Failed to derive contract for ${assetCode}`, e);
196
+ return "0";
197
+ }
198
+ }
199
+ else if (!assetCode.startsWith("C")) {
200
+ // If it's just "USDC" without issuer, we might need a known list or fail.
201
+ // For SDK, we assume the user must provide enough info.
202
+ // However, if the user passes a contract address directly, we use it.
203
+ // Check if it's a valid contract address?
204
+ // For now, we assume if it's 56 chars starting with C, it's a contract.
205
+ // If not, we can't guess.
206
+ // But we'll try to treat it as a contract ID if it looks like one.
207
+ if (!assetCode.startsWith("C") || assetCode.length !== 56) {
208
+ console.warn("getBalance: Asset code must be XLM, C... contract ID, or CODE:ISSUER");
209
+ return "0";
210
+ }
211
+ }
212
+ try {
213
+ // Simulate Balance Call
214
+ // Use DUMMY_SOURCE for simulation to avoid accountId errors with Smart Accounts
215
+ const sourceAccount = new Account(DUMMY_SOURCE, "0");
216
+ const tokenContract = new Contract(targetContractId);
217
+ const op = tokenContract.call("balance", new Address(address).toScVal());
218
+ const tx = new TransactionBuilder(sourceAccount, {
219
+ fee: "100",
220
+ networkPassphrase: networkConfig.networkPassphrase,
221
+ })
222
+ .addOperation(op)
223
+ .setTimeout(TimeoutInfinite)
224
+ .build();
225
+ const sim = await server.simulateTransaction(tx);
226
+ if (rpc.Api.isSimulationSuccess(sim) &&
227
+ sim.result &&
228
+ "retval" in sim.result) {
229
+ const val = scValToNative(sim.result.retval);
230
+ // Default formatting: Assume 7 decimals for now or return raw?
231
+ // Returning human-readable for convenience.
232
+ // Most Stellar tokens are 7 decimals.
233
+ return (Number(val) / 1e7).toFixed(2);
234
+ }
235
+ }
236
+ catch (e) {
237
+ console.error(`Error fetching token balance for ${assetCode}:`, e);
238
+ }
239
+ return "0";
240
+ }
241
+ /**
242
+ * Transfer funds (XLM or Token).
243
+ * Automatically resolves Asset-to-Contract if needed.
244
+ */
245
+ async transfer(to, amount, assetCode = "XLM", assetIssuer) {
246
+ const networkConfig = NETWORK_CONFIGS[this.config.network];
247
+ let tokenContract = networkConfig.nativeTokenContract;
248
+ if (assetCode !== "XLM") {
249
+ if (assetCode.startsWith("C") && assetCode.length === 56) {
250
+ tokenContract = assetCode;
251
+ }
252
+ else if (assetCode.includes(":")) {
253
+ const [code, issuer] = assetCode.split(":");
254
+ const asset = new Asset(code, issuer);
255
+ tokenContract = asset.contractId(networkConfig.networkPassphrase);
256
+ }
257
+ else if (assetIssuer) {
258
+ const asset = new Asset(assetCode, assetIssuer);
259
+ tokenContract = asset.contractId(networkConfig.networkPassphrase);
260
+ }
261
+ else {
262
+ throw new Error("Invalid asset specifier. Use XLM, Contract ID, or Code + Issuer.");
263
+ }
264
+ }
265
+ const amountNum = typeof amount === "string" ? parseFloat(amount) : amount;
266
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
267
+ const result = await this.kit.transfer(tokenContract, to, amountNum);
268
+ return {
269
+ hash: result.hash,
270
+ success: result.success,
271
+ };
272
+ }
273
+ /**
274
+ * Disconnect the wallet (clear local session).
275
+ * Does NOT sign out of Better-Auth.
276
+ */
277
+ async disconnect() {
278
+ await this.kit.disconnect();
279
+ this._walletAddress = null;
280
+ }
281
+ /**
282
+ * Get the connected wallet address synchronously.
283
+ */
284
+ getWalletAddress() {
285
+ // smart-account-kit doesn't have a direct synchronous getter documented in the spec provided?
286
+ // "Read from the session state that SmartAccountKit maintains internally (check kit after connectWallet result)."
287
+ // Usually kit.address or similar is available if connected.
288
+ // Based on "sub-managers" list, it doesn't explicitly show 'address' property on kit intance.
289
+ // However, typical usage implies we can track it.
290
+ // BUT the prompt says: "check kit after connectWallet result".
291
+ // Wait, SmartAccountKit instance usage in 6.1 doesn't show a public 'address' field.
292
+ // But section 7.3 says: "Read from the session state that SmartAccountKit maintains internally".
293
+ // I will assume `kit.address` exists or I need to track it myself?
294
+ // "The SDK is one package... Client SDK class... It owns the client-side BoundlessSDK class".
295
+ // If I look at `kit` internals or typical patterns, it often exposes the address.
296
+ // If not, I should probably cache it on `connect` / `register`.
297
+ // BUT, `kit.connectWallet` returns the result.
298
+ // If the page reloads, `kit` is re-instantiated. `kit.connectWallet()` (silent) restores it.
299
+ // So `getWalletAddress` might need to rely on the *result* of the last connect/register.
300
+ //
301
+ // HOWEVER, `kit` might have an `address` getter.
302
+ // Let's assume for now I should inspect `kit` typings if I could, but I can't.
303
+ // "Read from the session state that SmartAccountKit maintains internally"
304
+ // implies `kit` has state.
305
+ // If `kit` tracks it, it's likely `kit.address`.
306
+ // I'll check if I can assume it.
307
+ // If `kit` does not expose it, I'd have to store it in `this.currentAddress`.
308
+ // But if `kit` disconnects, I need to know.
309
+ // `kit.events` emit 'walletDisconnected'.
310
+ // I'll use a safer approach: check if `kit` has a known property or Method.
311
+ // The spec 6.1 Core Methods allows `connectWallet`.
312
+ // If `kit` doesn't expose `address` directly, I'll rely on my own state updated via events/method calls.
313
+ // BUT Section 7.3 says "Read from the session state that SmartAccountKit maintains internally".
314
+ // This strongly suggests `kit` has it. I will try `(this.kit as any).address`.
315
+ // Or better, I will assume it might be there.
316
+ // Actually, looking at `smart-account-kit` typical implementations, it usually has `address`.
317
+ // I'll assume `this.kit.address` is the way.
318
+ // If TS complains, I'll fix it. I can't check types right now.
319
+ // I will use `(this.kit as any).address` to be safe if strict types block it,
320
+ // but better to try `this.kit.address` first? No, I want to avoid build errors.
321
+ // I'll cast for now to avoid blocking if the types aren't exactly matching my assumption.
322
+ // "Read from the session state that SmartAccountKit maintains internally"
323
+ return this._walletAddress || this.kit.address || null;
324
+ }
325
+ /**
326
+ * Add a recovery key (new passkey) to the existing account.
327
+ */
328
+ async addRecoveryKey(options) {
329
+ const address = this.getWalletAddress();
330
+ if (!address) {
331
+ throw new WalletNotConnectedError("Wallet must be connected to add a recovery key.");
332
+ }
333
+ const { credentialId } = await this.kit.signers.addPasskey(0, // contextRuleId (0 = default)
334
+ options.appName, options.userName, { nickname: options.nickname });
335
+ return { credentialId };
336
+ }
337
+ /**
338
+ * Remove a credential by ID.
339
+ */
340
+ async removeCredential(credentialId) {
341
+ const address = this.getWalletAddress();
342
+ if (!address) {
343
+ throw new WalletNotConnectedError("Wallet must be connected to remove a credential.");
344
+ }
345
+ await this.kit.signers.removePasskey(0, credentialId);
346
+ }
347
+ /**
348
+ * Subscribe to events.
349
+ */
350
+ onEvent(event, handler) {
351
+ const validEvents = [
352
+ "walletConnected",
353
+ "walletDisconnected",
354
+ "credentialCreated",
355
+ "credentialDeleted",
356
+ "sessionExpired",
357
+ "transactionSigned",
358
+ "transactionSubmitted",
359
+ ];
360
+ if (!validEvents.includes(event)) {
361
+ // Just ignore or warn? Types prevent this usually.
362
+ console.warn(`BoundlessSDK: Unknown event "${event}"`);
363
+ return () => { };
364
+ }
365
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
366
+ this.kit.events.on(event, handler);
367
+ return () => {
368
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
369
+ this.kit.events.off(event, handler);
370
+ };
371
+ }
372
+ }
373
+ //# sourceMappingURL=boundless-sdk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"boundless-sdk.js","sourceRoot":"","sources":["../src/boundless-sdk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export declare const NETWORK_CONFIGS: {
2
+ readonly testnet: {
3
+ readonly networkPassphrase: "Test SDF Network ; September 2015";
4
+ readonly defaultRpcUrl: "https://soroban-testnet.stellar.org";
5
+ readonly accountWasmHash: "a12e8fa9621efd20315753bd4007d974390e31fbcb4a7ddc4dd0a0dec728bf2e";
6
+ readonly webauthnVerifierAddress: "CBSHV66WG7UV6FQVUTB67P3DZUEJ2KJ5X6JKQH5MFRAAFNFJUAJVXJYV";
7
+ readonly ed25519VerifierAddress: "CDGMOL3BP6Y6LYOXXTRNXBNJ2SLNTQ47BGG3LOS2OBBE657E3NYCN54B";
8
+ readonly nativeTokenContract: "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC";
9
+ readonly policies: {
10
+ readonly threshold: "CCT4MMN5MJ6O2OU6LXPYTCVORQ2QVTBMDJ7MYBZQ2ULSYQVUIYP4IFYD";
11
+ readonly spendingLimit: "CBMMWY54XOV6JJHSWCMKWWPXVRXASR5U26UJMLZDN4SP6CFFTVZARPTY";
12
+ readonly weightedThreshold: "CBYDQ5XUBP7G24FI3LLGLW56QZCIEUSVRPX7FVOUCKHJQQ6DTF6BQGBZ";
13
+ };
14
+ readonly relayerUrl: "";
15
+ };
16
+ readonly mainnet: {
17
+ readonly networkPassphrase: "Public Global Stellar Network ; September 2015";
18
+ readonly defaultRpcUrl: "https://soroban-rpc.mainnet.stellar.org";
19
+ readonly accountWasmHash: "REPLACE_WITH_MAINNET_WASM_HASH";
20
+ readonly webauthnVerifierAddress: "REPLACE_WITH_MAINNET_VERIFIER";
21
+ readonly ed25519VerifierAddress: "REPLACE_WITH_MAINNET_VERIFIER";
22
+ readonly nativeTokenContract: "REPLACE_WITH_MAINNET_CONTRACT";
23
+ readonly policies: {
24
+ readonly threshold: "REPLACE_WITH_MAINNET_POLICY";
25
+ readonly spendingLimit: "REPLACE_WITH_MAINNET_POLICY";
26
+ readonly weightedThreshold: "REPLACE_WITH_MAINNET_POLICY";
27
+ };
28
+ readonly relayerUrl: "";
29
+ };
30
+ };
31
+ export type NetworkName = keyof typeof NETWORK_CONFIGS;
32
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkClB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,eAAe,CAAC"}
@@ -0,0 +1,31 @@
1
+ export const NETWORK_CONFIGS = {
2
+ testnet: {
3
+ networkPassphrase: "Test SDF Network ; September 2015",
4
+ defaultRpcUrl: "https://soroban-testnet.stellar.org",
5
+ accountWasmHash: "a12e8fa9621efd20315753bd4007d974390e31fbcb4a7ddc4dd0a0dec728bf2e",
6
+ webauthnVerifierAddress: "CBSHV66WG7UV6FQVUTB67P3DZUEJ2KJ5X6JKQH5MFRAAFNFJUAJVXJYV",
7
+ ed25519VerifierAddress: "CDGMOL3BP6Y6LYOXXTRNXBNJ2SLNTQ47BGG3LOS2OBBE657E3NYCN54B",
8
+ nativeTokenContract: "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC",
9
+ policies: {
10
+ threshold: "CCT4MMN5MJ6O2OU6LXPYTCVORQ2QVTBMDJ7MYBZQ2ULSYQVUIYP4IFYD",
11
+ spendingLimit: "CBMMWY54XOV6JJHSWCMKWWPXVRXASR5U26UJMLZDN4SP6CFFTVZARPTY",
12
+ weightedThreshold: "CBYDQ5XUBP7G24FI3LLGLW56QZCIEUSVRPX7FVOUCKHJQQ6DTF6BQGBZ",
13
+ },
14
+ relayerUrl: "",
15
+ },
16
+ mainnet: {
17
+ networkPassphrase: "Public Global Stellar Network ; September 2015",
18
+ defaultRpcUrl: "https://soroban-rpc.mainnet.stellar.org",
19
+ accountWasmHash: "REPLACE_WITH_MAINNET_WASM_HASH",
20
+ webauthnVerifierAddress: "REPLACE_WITH_MAINNET_VERIFIER",
21
+ ed25519VerifierAddress: "REPLACE_WITH_MAINNET_VERIFIER",
22
+ nativeTokenContract: "REPLACE_WITH_MAINNET_CONTRACT",
23
+ policies: {
24
+ threshold: "REPLACE_WITH_MAINNET_POLICY",
25
+ spendingLimit: "REPLACE_WITH_MAINNET_POLICY",
26
+ weightedThreshold: "REPLACE_WITH_MAINNET_POLICY",
27
+ },
28
+ relayerUrl: "",
29
+ },
30
+ };
31
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE;QACP,iBAAiB,EAAE,mCAAmC;QACtD,aAAa,EAAE,qCAAqC;QACpD,eAAe,EACb,kEAAkE;QACpE,uBAAuB,EACrB,0DAA0D;QAC5D,sBAAsB,EACpB,0DAA0D;QAC5D,mBAAmB,EACjB,0DAA0D;QAC5D,QAAQ,EAAE;YACR,SAAS,EAAE,0DAA0D;YACrE,aAAa,EAAE,0DAA0D;YACzE,iBAAiB,EACf,0DAA0D;SAC7D;QACD,UAAU,EAAE,EAAE;KACf;IACD,OAAO,EAAE;QACP,iBAAiB,EAAE,gDAAgD;QACnE,aAAa,EAAE,yCAAyC;QACxD,eAAe,EAAE,gCAAgC;QACjD,uBAAuB,EAAE,+BAA+B;QACxD,sBAAsB,EAAE,+BAA+B;QACvD,mBAAmB,EAAE,+BAA+B;QACpD,QAAQ,EAAE;YACR,SAAS,EAAE,6BAA6B;YACxC,aAAa,EAAE,6BAA6B;YAC5C,iBAAiB,EAAE,6BAA6B;SACjD;QACD,UAAU,EAAE,EAAE;KACf;CACO,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { SmartAccountError } from "smart-account-kit";
2
+ export declare class BoundlessAuthError extends SmartAccountError {
3
+ constructor(message: string);
4
+ }
5
+ export declare class BoundlessLinkError extends SmartAccountError {
6
+ statusCode?: number | undefined;
7
+ constructor(message: string, statusCode?: number | undefined);
8
+ }
9
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,kBAAmB,SAAQ,iBAAiB;gBAC3C,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,kBAAmB,SAAQ,iBAAiB;IAG9C,UAAU,CAAC,EAAE,MAAM;gBAD1B,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE,MAAM,YAAA;CAK7B"}
package/dist/errors.js ADDED
@@ -0,0 +1,16 @@
1
+ import { SmartAccountError } from "smart-account-kit";
2
+ export class BoundlessAuthError extends SmartAccountError {
3
+ constructor(message) {
4
+ super(message, "BOUNDLESS_AUTH");
5
+ this.name = "BoundlessAuthError";
6
+ }
7
+ }
8
+ export class BoundlessLinkError extends SmartAccountError {
9
+ statusCode;
10
+ constructor(message, statusCode) {
11
+ super(message, "BOUNDLESS_LINK");
12
+ this.statusCode = statusCode;
13
+ this.name = "BoundlessLinkError";
14
+ }
15
+ }
16
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,OAAO,kBAAmB,SAAQ,iBAAiB;IACvD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,gBAAuB,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,iBAAiB;IAG9C;IAFT,YACE,OAAe,EACR,UAAmB;QAE1B,KAAK,CAAC,OAAO,EAAE,gBAAuB,CAAC,CAAC;QAFjC,eAAU,GAAV,UAAU,CAAS;QAG1B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ export * from "./boundless-sdk";
2
+ export * from "./types";
3
+ export * from "./errors";
4
+ export * from "./constants";
5
+ export * from "./utils";
6
+ export { SmartAccountError, WalletNotConnectedError, CredentialNotFoundError, SignerNotFoundError, SimulationError, SubmissionError, ValidationError, WebAuthnError, SessionError, wrapError, } from "smart-account-kit";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,YAAY,EACZ,SAAS,GACV,MAAM,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,7 @@
1
+ export * from "./boundless-sdk";
2
+ export * from "./types";
3
+ export * from "./errors";
4
+ export * from "./constants";
5
+ export * from "./utils";
6
+ export { SmartAccountError, WalletNotConnectedError, CredentialNotFoundError, SignerNotFoundError, SimulationError, SubmissionError, ValidationError, WebAuthnError, SessionError, wrapError, } from "smart-account-kit";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,eAAe,EACf,aAAa,EACb,YAAY,EACZ,SAAS,GACV,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { boundlessStellarPlugin } from "./stellar-plugin";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { boundlessStellarPlugin } from "./stellar-plugin";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { BetterAuthPlugin } from "better-auth";
2
+ export declare const boundlessStellarPlugin: () => BetterAuthPlugin;
3
+ //# sourceMappingURL=stellar-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stellar-plugin.d.ts","sourceRoot":"","sources":["../../src/server/stellar-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,eAAO,MAAM,sBAAsB,QAAO,gBA+D/B,CAAC"}