@idos-network/kwil-infra 1.1.0

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.
Files changed (58) hide show
  1. package/.turbo/turbo-build.log +47 -0
  2. package/.turbo/turbo-test.log +126 -0
  3. package/.turbo/turbo-typecheck.log +5 -0
  4. package/CHANGELOG.md +20 -0
  5. package/LICENSE +21 -0
  6. package/README.md +63 -0
  7. package/dist/actions/index.d.mts +2 -0
  8. package/dist/actions/index.mjs +1371 -0
  9. package/dist/actions/index.mjs.map +1 -0
  10. package/dist/facesign/index.d.mts +2 -0
  11. package/dist/facesign/index.mjs +2 -0
  12. package/dist/facesign-signer-ADd4EASX.d.mts +29 -0
  13. package/dist/facesign-signer-ADd4EASX.d.mts.map +1 -0
  14. package/dist/facesign-signer-BY9Nti9F.mjs +244 -0
  15. package/dist/facesign-signer-BY9Nti9F.mjs.map +1 -0
  16. package/dist/index-Ci6QhKJo.d.mts +644 -0
  17. package/dist/index-Ci6QhKJo.d.mts.map +1 -0
  18. package/dist/index.d.mts +2 -0
  19. package/dist/index.mjs +429 -0
  20. package/dist/index.mjs.map +1 -0
  21. package/dist/signature-verification/index.d.mts +14 -0
  22. package/dist/signature-verification/index.d.mts.map +1 -0
  23. package/dist/signature-verification/index.mjs +140 -0
  24. package/dist/signature-verification/index.mjs.map +1 -0
  25. package/dist/xrp/utils.d.mts +1165 -0
  26. package/dist/xrp/utils.d.mts.map +1 -0
  27. package/dist/xrp/utils.mjs +105 -0
  28. package/dist/xrp/utils.mjs.map +1 -0
  29. package/dist/xrpl-credentials/index.d.mts +179 -0
  30. package/dist/xrpl-credentials/index.d.mts.map +1 -0
  31. package/dist/xrpl-credentials/index.mjs +224 -0
  32. package/dist/xrpl-credentials/index.mjs.map +1 -0
  33. package/package.json +93 -0
  34. package/src/actions/actions.ts +2197 -0
  35. package/src/actions/index.ts +55 -0
  36. package/src/create-kwil-client.ts +144 -0
  37. package/src/create-kwil-signer.ts +270 -0
  38. package/src/facesign/facesign-signer.ts +327 -0
  39. package/src/facesign/index.ts +2 -0
  40. package/src/index.ts +7 -0
  41. package/src/near/create-near-wallet-kwil-signer.ts +245 -0
  42. package/src/near/get-config.ts +43 -0
  43. package/src/near/nep413.ts +62 -0
  44. package/src/near/signature-verification.ts +85 -0
  45. package/src/signature-verification/evm.ts +33 -0
  46. package/src/signature-verification/facesign.ts +19 -0
  47. package/src/signature-verification/index.test.ts +110 -0
  48. package/src/signature-verification/index.ts +72 -0
  49. package/src/signature-verification/stellar.ts +31 -0
  50. package/src/xrp/signature-verification.ts +18 -0
  51. package/src/xrp/signer.ts +43 -0
  52. package/src/xrp/utils.ts +178 -0
  53. package/src/xrpl-credentials/accept.ts +143 -0
  54. package/src/xrpl-credentials/create.ts +199 -0
  55. package/src/xrpl-credentials/index.ts +12 -0
  56. package/tsconfig.json +33 -0
  57. package/tsdown.config.ts +13 -0
  58. package/vitest.config.ts +6 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-Ci6QhKJo.d.mts","names":[],"sources":["../src/create-kwil-client.ts","../src/create-kwil-signer.ts","../src/near/create-near-wallet-kwil-signer.ts","../src/actions/actions.ts","../src/actions/index.ts"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { $r as KwilActionClient, Gr as CustomKwilSigner, Hr as getNearFullAccessPublicKeys, Jr as SignerAddress, Kr as KwilSigner, Qr as createServerKwilSigner, Ur as implicitAddressFromPublicKey, Wr as signNearMessage, Xr as Wallet, Yr as SignerPublicKey, Zr as createClientKwilSigner, ei as createNodeKwilClient, qr as KwilSignerType, ti as createWebKwilClient } from "./index-Ci6QhKJo.mjs";
2
+ export { CustomKwilSigner, KwilActionClient, KwilSigner, KwilSignerType, SignerAddress, SignerPublicKey, Wallet, createClientKwilSigner, createNodeKwilClient, createServerKwilSigner, createWebKwilClient, getNearFullAccessPublicKeys, implicitAddressFromPublicKey, signNearMessage };
package/dist/index.mjs ADDED
@@ -0,0 +1,429 @@
1
+ import { actionSchema } from "./actions/index.mjs";
2
+ import { t as FaceSignSignerProvider } from "./facesign-signer-BY9Nti9F.mjs";
3
+ import { getXrpPublicKey, getXrpTxHash, looksLikeXrpWallet } from "./xrp/utils.mjs";
4
+ import { KwilSigner, KwilSigner as KwilSigner$1, NodeKwil, WebKwil } from "@idos-network/kwil-js";
5
+ import invariant from "tiny-invariant";
6
+ import { base64Decode, binaryWriteUint16BE, borshSerialize, bs58Decode, bs58Encode, bytesConcat, hexDecode, hexEncode, sha256Hash, utf8Decode } from "@idos-network/utils/codecs";
7
+ import nacl from "tweetnacl";
8
+ //#region src/create-kwil-client.ts
9
+ /**
10
+ * A client for interacting with kwil with type-safe abstractions for `call` and `execute`.
11
+ * Has utility methods for creating actions and setting a signer.
12
+ */
13
+ var KwilActionClient = class {
14
+ signer;
15
+ client;
16
+ constructor(client) {
17
+ this.client = client;
18
+ }
19
+ #createActionInputs(actionName, params = {}) {
20
+ if (!params || !Object.keys(params).length) return [];
21
+ return actionSchema[actionName].map(({ name }) => {
22
+ const value = params[name];
23
+ if (value === "" || value === 0) return value;
24
+ return value ?? null;
25
+ });
26
+ }
27
+ #actionTypes(actionName) {
28
+ return actionSchema[actionName].map((arg) => arg.type);
29
+ }
30
+ /**
31
+ * Calls an action on the kwil nodes. This similar to `GET` like request.
32
+ */
33
+ async call(params, signer = this.signer) {
34
+ const action = {
35
+ name: params.name,
36
+ namespace: "main",
37
+ inputs: this.#createActionInputs(params.name, params.inputs),
38
+ types: this.#actionTypes(params.name)
39
+ };
40
+ return (await this.client.call(action, signer))?.data?.result;
41
+ }
42
+ /**
43
+ * Executes an action on the kwil nodes. This similar to `POST` like request.
44
+ */
45
+ async execute(params, signer = this.signer, synchronous = true) {
46
+ invariant(signer, "Signer is not set, you must set it before executing an action");
47
+ const action = {
48
+ name: params.name,
49
+ namespace: "main",
50
+ description: params.description,
51
+ inputs: [this.#createActionInputs(params.name, params.inputs)],
52
+ types: this.#actionTypes(params.name)
53
+ };
54
+ return (await this.client.execute(action, signer, synchronous)).data?.tx_hash;
55
+ }
56
+ setSigner(signer) {
57
+ this.signer = signer;
58
+ }
59
+ };
60
+ const DEFAULT_TIMEOUT = 3e4;
61
+ const createKwilClient = (Cls) => async ({ nodeUrl: kwilProvider, chainId }) => {
62
+ const _kwil = new Cls({
63
+ kwilProvider,
64
+ chainId: ""
65
+ });
66
+ chainId ||= (await _kwil.chainInfo({ disableWarning: true })).data?.chain_id;
67
+ invariant(chainId, "Can't discover `chainId`. You must pass it explicitly.");
68
+ return new KwilActionClient(new Cls({
69
+ kwilProvider,
70
+ chainId,
71
+ timeout: DEFAULT_TIMEOUT
72
+ }));
73
+ };
74
+ /**
75
+ * Create a kwil client for node.js environment
76
+ */
77
+ const createNodeKwilClient = createKwilClient(NodeKwil);
78
+ /**
79
+ * Create a kwil client for browser environment
80
+ */
81
+ const createWebKwilClient = createKwilClient(WebKwil);
82
+ //#endregion
83
+ //#region src/near/get-config.ts
84
+ const NEAR_NETWORKS = {
85
+ mainnet: {
86
+ networkId: "mainnet",
87
+ nodeUrl: "https://rpc.mainnet.near.org"
88
+ },
89
+ testnet: {
90
+ networkId: "testnet",
91
+ nodeUrl: "https://rpc.testnet.near.org"
92
+ },
93
+ betanet: {
94
+ networkId: "betanet",
95
+ nodeUrl: "https://rpc.betanet.near.org"
96
+ },
97
+ shardnet: {
98
+ networkId: "shardnet",
99
+ nodeUrl: "https://rpc.shardnet.near.org"
100
+ }
101
+ };
102
+ const detectNearNetwork = (accountId) => {
103
+ if (accountId.endsWith(".near")) return "mainnet";
104
+ if (accountId.endsWith(".testnet")) return "testnet";
105
+ if (accountId.endsWith(".betanet")) return "betanet";
106
+ if (accountId.endsWith(".shardnet")) return "shardnet";
107
+ return "testnet";
108
+ };
109
+ const getNearConnectionConfig = (accountId) => {
110
+ const networkConfig = NEAR_NETWORKS[detectNearNetwork(accountId)];
111
+ return {
112
+ networkId: networkConfig.networkId,
113
+ nodeUrl: networkConfig.nodeUrl
114
+ };
115
+ };
116
+ //#endregion
117
+ //#region src/near/create-near-wallet-kwil-signer.ts
118
+ const NEAR_WALLET_TYPES = [
119
+ "browser",
120
+ "injected",
121
+ "instant-link",
122
+ "hardware",
123
+ "bridge"
124
+ ];
125
+ function looksLikeNearWallet(signer) {
126
+ return signer !== null && typeof signer === "object" && "id" in signer && "metadata" in signer && "type" in signer && typeof signer.type === "string" && NEAR_WALLET_TYPES.includes(signer.type);
127
+ }
128
+ var KwilNonce = class {
129
+ bytes;
130
+ constructor(length = 32) {
131
+ this.bytes = crypto.getRandomValues(new Uint8Array(length));
132
+ }
133
+ get clampUTF8() {
134
+ return this.bytes.map((byte) => byte & 127);
135
+ }
136
+ };
137
+ /**
138
+ * Creates a signer function that can be used to sign messages with a NEAR wallet
139
+ */
140
+ function createNearWalletSigner(wallet, recipient) {
141
+ return async (message) => {
142
+ const messageString = typeof message === "string" ? message : utf8Decode(message);
143
+ if (!wallet.signMessage) throw new Error("Only wallets with signMessage are supported.");
144
+ const nonceSuggestion = Buffer.from(new KwilNonce(32).bytes);
145
+ const { nonce = nonceSuggestion, signature, callbackUrl } = await wallet.signMessage({
146
+ message: messageString,
147
+ recipient,
148
+ nonce: nonceSuggestion
149
+ });
150
+ const nep413BorshPayload = borshSerialize({ struct: {
151
+ tag: "u32",
152
+ message: "string",
153
+ nonce: { array: {
154
+ type: "u8",
155
+ len: 32
156
+ } },
157
+ recipient: "string",
158
+ callbackUrl: { option: "string" }
159
+ } }, {
160
+ tag: 2147484061,
161
+ message: messageString,
162
+ nonce: Array.from(nonce),
163
+ recipient,
164
+ callbackUrl
165
+ });
166
+ return bytesConcat(binaryWriteUint16BE(nep413BorshPayload.length), nep413BorshPayload, base64Decode(signature));
167
+ };
168
+ }
169
+ function implicitAddressFromPublicKey(publicKey) {
170
+ return hexEncode(bs58Decode(publicKey.replace(/^ed25519:/, "")));
171
+ }
172
+ async function getNearFullAccessPublicKeys(namedAddress) {
173
+ let connect;
174
+ try {
175
+ connect = (await import("near-api-js")).connect;
176
+ } catch (_e) {
177
+ throw new Error("Can't load near-api-js");
178
+ }
179
+ const connectionConfig = getNearConnectionConfig(namedAddress);
180
+ const nearConnection = await connect(connectionConfig);
181
+ try {
182
+ return (await nearConnection.connection.provider.query({
183
+ request_type: "view_access_key_list",
184
+ finality: "final",
185
+ account_id: namedAddress
186
+ })).keys.filter((element) => element.access_key.permission === "FullAccess")?.map((i) => i.public_key);
187
+ } catch {
188
+ return;
189
+ }
190
+ }
191
+ async function signNearMessage(wallet, message, recipient = "idos.network") {
192
+ return hexEncode(await createNearWalletSigner(wallet, recipient)(message));
193
+ }
194
+ async function createNearWalletKwilSigner(wallet, currentAddress, store, kwilClient, recipient = "idos.network") {
195
+ if (!wallet.signMessage) throw new Error("Only wallets with signMessage are supported.");
196
+ if (wallet.id === "my-near-wallet") {
197
+ const { accountId, signature, publicKey, error } = Object.fromEntries(new URLSearchParams(window.location.hash.slice(1)).entries());
198
+ if (signature) {
199
+ await store.set("signer-address", accountId);
200
+ await store.set("signer-public-key", publicKey);
201
+ }
202
+ const signMessageOriginal = wallet.signMessage.bind(wallet);
203
+ wallet.signMessage = async ({ message, recipient }) => {
204
+ if (error) return Promise.reject();
205
+ const lastMessage = await store.get("sign-last-message");
206
+ const lastNonce = await store.get("sign-last-nonce");
207
+ if (signature && message === lastMessage && lastNonce) {
208
+ const nonce = Buffer.from(lastNonce);
209
+ const callbackUrl = await store.get("sign-last-url");
210
+ return Promise.resolve({
211
+ accountId: currentAddress,
212
+ publicKey,
213
+ signature,
214
+ nonce,
215
+ message,
216
+ callbackUrl
217
+ });
218
+ }
219
+ const callbackUrl = window.location.href;
220
+ const nonce = Buffer.from(new KwilNonce(32).clampUTF8);
221
+ await store.set("sign-last-message", message);
222
+ await store.set("sign-last-nonce", Array.from(nonce));
223
+ await store.set("sign-last-url", callbackUrl);
224
+ signMessageOriginal({
225
+ message,
226
+ nonce,
227
+ recipient,
228
+ callbackUrl
229
+ });
230
+ return new Promise(() => ({}));
231
+ };
232
+ }
233
+ const storedAddress = await store.get("signer-address");
234
+ let publicKey = await store.get("signer-public-key");
235
+ if (storedAddress !== currentAddress || !publicKey) {
236
+ store.reset();
237
+ await kwilClient.client.auth.logoutKGW();
238
+ const message = "idOS authentication";
239
+ const nonce = Buffer.from(new KwilNonce(32).bytes);
240
+ const signResult = await wallet.signMessage({
241
+ message,
242
+ recipient,
243
+ nonce
244
+ });
245
+ if (!signResult) throw new Error("signMessage returned no result");
246
+ ({publicKey} = signResult);
247
+ await store.set("signer-address", currentAddress);
248
+ await store.set("signer-public-key", publicKey);
249
+ }
250
+ return {
251
+ kwilSigner: new KwilSigner$1(createNearWalletSigner(wallet, recipient), implicitAddressFromPublicKey(publicKey), "nep413"),
252
+ publicKey
253
+ };
254
+ }
255
+ //#endregion
256
+ //#region src/near/nep413.ts
257
+ function kwilNep413Signer(recipient) {
258
+ return (keyPair) => async (messageBytes) => {
259
+ const message = utf8Decode(messageBytes);
260
+ const nonceLength = 32;
261
+ const nonce = crypto.getRandomValues(new Uint8Array(nonceLength));
262
+ const nep413BorschSchema = { struct: {
263
+ message: "string",
264
+ nonce: { array: {
265
+ type: "u8",
266
+ len: nonceLength
267
+ } },
268
+ recipient: "string",
269
+ callbackUrl: { option: "string" }
270
+ } };
271
+ const tag = 2147484061;
272
+ const { signature } = keyPair.sign(sha256Hash(bytesConcat(borshSerialize("u32", tag), borshSerialize(nep413BorschSchema, {
273
+ message,
274
+ nonce,
275
+ recipient
276
+ }))));
277
+ const kwilNep413BorshPayload = borshSerialize({ struct: {
278
+ tag: "u32",
279
+ ...nep413BorschSchema.struct
280
+ } }, {
281
+ tag,
282
+ message,
283
+ nonce,
284
+ recipient
285
+ });
286
+ return bytesConcat(binaryWriteUint16BE(kwilNep413BorshPayload.length), kwilNep413BorshPayload, signature);
287
+ };
288
+ }
289
+ //#endregion
290
+ //#region src/xrp/signer.ts
291
+ async function createXrpKwilSigner(wallet, currentAddress, store, kwilClient, walletPublicKey) {
292
+ const storedAddress = await store.get("signer-address");
293
+ const storePublicKey = await store.get("signer-public-key");
294
+ if (storedAddress !== currentAddress || storePublicKey && storePublicKey !== walletPublicKey) try {
295
+ console.log("logoutKGW", kwilClient);
296
+ } catch (error) {
297
+ console.error("Failed to logout KGW:", error);
298
+ }
299
+ await store.set("signer-address", currentAddress);
300
+ await store.set("signer-public-key", walletPublicKey);
301
+ const signer = async (message) => {
302
+ const signature = await getXrpTxHash(message, wallet);
303
+ if (!signature) throw new Error("Failed to sign transaction with XRP");
304
+ return Buffer.from(signature, "hex");
305
+ };
306
+ return new KwilSigner$1(signer, walletPublicKey, "xrpl");
307
+ }
308
+ //#endregion
309
+ //#region src/create-kwil-signer.ts
310
+ /**
311
+ * Helper function to check if the given object is a `nacl.SignKeyPair`.
312
+ */
313
+ function isNaclSignKeyPair(object) {
314
+ return object !== null && typeof object === "object" && "publicKey" in object && object.publicKey instanceof Uint8Array && object.publicKey.length === nacl.sign.publicKeyLength && "secretKey" in object && object.secretKey instanceof Uint8Array && object.secretKey.length === nacl.sign.secretKeyLength;
315
+ }
316
+ /**
317
+ * Helper function to check if the given object is a NEAR KeyPair.
318
+ */
319
+ function isNearKeyPair(object) {
320
+ return object !== null && typeof object === "object" && "getPublicKey" in object && "sign" in object && typeof object.getPublicKey === "function" && typeof object.sign === "function";
321
+ }
322
+ /**
323
+ * Helper function to check if the given object is a Stellar Keypair.
324
+ */
325
+ function isStellarKeyPair(object) {
326
+ return object !== null && typeof object === "object" && "publicKey" in object && "sign" in object && "canSign" in object && typeof object.publicKey === "function" && typeof object.sign === "function" && typeof object.canSign === "function";
327
+ }
328
+ function isCustomKwilSigner(object) {
329
+ return object !== null && typeof object === "object" && "publicAddress" in object && "signatureType" in object && "publicKey" in object && "signMessage" in object;
330
+ }
331
+ /**
332
+ * Helper function to check if the given object is a XRP KeyPair (Server key pairs only).
333
+ */
334
+ function isXrplKeyPair(object) {
335
+ return !!object && typeof object === "object" && "privateKey" in object && "publicKey" in object;
336
+ }
337
+ /**
338
+ * Creates a `KwilSigner` and its associated `SignerAddress`.
339
+ *
340
+ * This function is explicitly marked as being for backend use only because it doesn't reset
341
+ * the KGW cookie when logging out and re-logging in with a different wallet.
342
+ */
343
+ async function createServerKwilSigner(signer) {
344
+ if (isNaclSignKeyPair(signer)) return [new KwilSigner$1(async (msg) => nacl.sign.detached(msg, signer.secretKey), signer.publicKey, "ed25519"), implicitAddressFromPublicKey(bs58Encode(signer.publicKey))];
345
+ if (isNearKeyPair(signer)) {
346
+ const publicKey = implicitAddressFromPublicKey(signer.getPublicKey().toString());
347
+ return [new KwilSigner$1(kwilNep413Signer("idos-issuer")(signer), publicKey, "nep413"), publicKey];
348
+ }
349
+ if (isStellarKeyPair(signer)) {
350
+ const publicKeyString = signer.publicKey();
351
+ return [new KwilSigner$1(async (msg) => signer.sign(Buffer.from(msg)), signer.rawPublicKey(), "ed25519"), publicKeyString];
352
+ }
353
+ if (isXrplKeyPair(signer)) {
354
+ let xrpKeypair;
355
+ try {
356
+ xrpKeypair = await import("ripple-keypairs");
357
+ } catch (e) {
358
+ throw new Error("Can't load ripple-keypairs", { cause: e });
359
+ }
360
+ return [new KwilSigner$1(async (msg) => hexDecode(xrpKeypair.sign(hexEncode(msg), signer.privateKey)), signer.publicKey, "xrpl"), signer.publicKey];
361
+ }
362
+ if ("address" in signer) return [new KwilSigner$1(signer, signer.address), signer.address];
363
+ return ((_) => {
364
+ throw new Error("Invalid `signer` type");
365
+ })(signer);
366
+ }
367
+ async function createClientKwilSigner(store, kwilClient, wallet) {
368
+ if ("connect" in wallet && "address" in wallet) {
369
+ wallet = wallet;
370
+ const currentAddress = await wallet.getAddress();
371
+ if (await store.get("signer-address") !== currentAddress) {
372
+ store.set("signer-address", currentAddress);
373
+ try {
374
+ await kwilClient.client.auth.logoutKGW();
375
+ } catch (error) {
376
+ console.log("error logoutKGW", error);
377
+ }
378
+ }
379
+ return [
380
+ new KwilSigner$1(wallet, currentAddress),
381
+ currentAddress,
382
+ void 0,
383
+ "EVM"
384
+ ];
385
+ }
386
+ if (looksLikeNearWallet(wallet)) {
387
+ const accounts = await wallet.getAccounts();
388
+ const { kwilSigner, publicKey } = await createNearWalletKwilSigner(wallet, accounts[0].accountId, store, kwilClient);
389
+ return [
390
+ kwilSigner,
391
+ accounts[0].accountId,
392
+ publicKey,
393
+ "NEAR"
394
+ ];
395
+ }
396
+ if (looksLikeXrpWallet(wallet)) {
397
+ const { address: currentAddress, publicKey: walletPublicKey } = await getXrpPublicKey(wallet);
398
+ if (!currentAddress) throw new Error("Failed to get XRP address");
399
+ return [
400
+ await createXrpKwilSigner(wallet, currentAddress, store, kwilClient, walletPublicKey),
401
+ currentAddress,
402
+ walletPublicKey,
403
+ "XRPL"
404
+ ];
405
+ }
406
+ if (isCustomKwilSigner(wallet) || wallet instanceof FaceSignSignerProvider) {
407
+ if (await store.get("signer-address") !== wallet.publicAddress) {
408
+ store.set("signer-address", wallet.publicAddress);
409
+ try {
410
+ await kwilClient.client.auth.logoutKGW();
411
+ } catch (error) {
412
+ console.log("error logoutKGW", error);
413
+ }
414
+ }
415
+ return [
416
+ new KwilSigner$1(async (msg) => wallet.signMessage(msg), wallet.publicAddress, "ed25519"),
417
+ wallet.publicAddress,
418
+ wallet.publicKey,
419
+ wallet.walletType
420
+ ];
421
+ }
422
+ return ((_) => {
423
+ throw new Error("Invalid `signer` type");
424
+ })(wallet);
425
+ }
426
+ //#endregion
427
+ export { KwilActionClient, KwilSigner, createClientKwilSigner, createNodeKwilClient, createServerKwilSigner, createWebKwilClient, getNearFullAccessPublicKeys, implicitAddressFromPublicKey, signNearMessage };
428
+
429
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":["#createActionInputs","#actionTypes","KwilSigner","KwilSigner","KwilSigner"],"sources":["../src/create-kwil-client.ts","../src/near/get-config.ts","../src/near/create-near-wallet-kwil-signer.ts","../src/near/nep413.ts","../src/xrp/signer.ts","../src/create-kwil-signer.ts"],"sourcesContent":["import type { Config } from \"@idos-network/kwil-js/dist/api_client/config\";\nimport type {\n ActionBody,\n CallBody,\n PositionalParams,\n} from \"@idos-network/kwil-js/dist/core/action\";\nimport type { DataInfo } from \"@idos-network/kwil-js/dist/core/database\";\n\nimport { type KwilSigner, NodeKwil, WebKwil } from \"@idos-network/kwil-js\";\nimport invariant from \"tiny-invariant\";\n\nimport type { ActionSchemaElement } from \"./actions\";\n\nimport { actionSchema } from \"./actions\";\n\ntype CreateKwilClientParams = {\n chainId?: string;\n nodeUrl: string;\n};\n\ntype KwilActions = typeof actionSchema;\ntype ActionName = keyof KwilActions;\n\ntype AllKwilCallAction = {\n [Name in ActionName]: {\n name: Name;\n // oxlint-disable-next-line typescript/no-explicit-any -- This is fine\n inputs: Record<KwilActions[Name][number][\"name\"], any>;\n };\n};\n\ntype KwilCallActionRequestParams = AllKwilCallAction[ActionName];\n\ntype AllKwilExecuteAction = {\n [Name in ActionName]: AllKwilCallAction[Name] & { description: string };\n};\n\ntype KwilExecuteActionRequestParams = AllKwilExecuteAction[ActionName];\n\n/**\n * A client for interacting with kwil with type-safe abstractions for `call` and `execute`.\n * Has utility methods for creating actions and setting a signer.\n */\nexport class KwilActionClient {\n signer?: KwilSigner;\n readonly client: NodeKwil | WebKwil;\n\n constructor(client: NodeKwil | WebKwil) {\n this.client = client;\n }\n\n #createActionInputs(actionName: string, params: Record<string, unknown> = {}): PositionalParams {\n if (!params || !Object.keys(params).length) return [];\n\n const args = (actionSchema as Record<string, readonly ActionSchemaElement[]>)[actionName];\n\n return args.map(({ name }) => {\n const value = params[name];\n // Handle falsy values appropriately\n if (value === \"\" || value === 0) return value;\n return value ?? null;\n }) as PositionalParams;\n }\n\n #actionTypes(actionName: string): DataInfo[] {\n const args = actionSchema[actionName];\n return args.map((arg) => arg.type);\n }\n\n /**\n * Calls an action on the kwil nodes. This similar to `GET` like request.\n */\n async call<T = unknown>(\n params: KwilCallActionRequestParams,\n signer: KwilSigner | undefined = this.signer,\n ): Promise<T> {\n const action: CallBody = {\n name: params.name,\n namespace: \"main\",\n inputs: this.#createActionInputs(params.name, params.inputs),\n types: this.#actionTypes(params.name),\n };\n\n const response = await this.client.call(action as CallBody, signer);\n return response?.data?.result as T;\n }\n\n /**\n * Executes an action on the kwil nodes. This similar to `POST` like request.\n */\n async execute(\n params: KwilExecuteActionRequestParams,\n signer: KwilSigner | undefined = this.signer,\n synchronous = true,\n ): Promise<string | undefined> {\n invariant(signer, \"Signer is not set, you must set it before executing an action\");\n const action: ActionBody = {\n name: params.name,\n namespace: \"main\",\n description: params.description,\n inputs: [this.#createActionInputs(params.name, params.inputs)],\n types: this.#actionTypes(params.name),\n };\n const response = await this.client.execute(action, signer, synchronous);\n return response.data?.tx_hash;\n }\n\n setSigner(signer: KwilSigner | undefined): void {\n this.signer = signer;\n }\n\n /**\n * Creates action inputs from the given parameters that are used in the action body.\n */\n}\n\nconst DEFAULT_TIMEOUT = 30_000;\n\nconst createKwilClient =\n (Cls: new (opts: Config) => NodeKwil | WebKwil) =>\n async ({ nodeUrl: kwilProvider, chainId }: CreateKwilClientParams): Promise<KwilActionClient> => {\n const _kwil = new Cls({ kwilProvider, chainId: \"\" });\n // oxlint-disable-next-line no-param-reassign -- Default value fallback\n chainId ||= (await _kwil.chainInfo({ disableWarning: true })).data?.chain_id;\n invariant(chainId, \"Can't discover `chainId`. You must pass it explicitly.\");\n\n const client = new KwilActionClient(\n new Cls({ kwilProvider, chainId, timeout: DEFAULT_TIMEOUT }),\n );\n\n return client;\n };\n\n/**\n * Create a kwil client for node.js environment\n */\nexport const createNodeKwilClient: (params: CreateKwilClientParams) => Promise<KwilActionClient> =\n createKwilClient(NodeKwil);\n\n/**\n * Create a kwil client for browser environment\n */\nexport const createWebKwilClient: (params: CreateKwilClientParams) => Promise<KwilActionClient> =\n createKwilClient(WebKwil);\n","// Network configuration mapping\nconst NEAR_NETWORKS = {\n mainnet: {\n networkId: \"mainnet\",\n nodeUrl: \"https://rpc.mainnet.near.org\",\n },\n testnet: {\n networkId: \"testnet\",\n nodeUrl: \"https://rpc.testnet.near.org\",\n },\n betanet: {\n networkId: \"betanet\",\n nodeUrl: \"https://rpc.betanet.near.org\",\n },\n shardnet: {\n networkId: \"shardnet\",\n nodeUrl: \"https://rpc.shardnet.near.org\",\n },\n} as const;\n\n// Function to detect NEAR network from account ID\nexport const detectNearNetwork = (accountId: string): keyof typeof NEAR_NETWORKS => {\n if (accountId.endsWith(\".near\")) return \"mainnet\";\n if (accountId.endsWith(\".testnet\")) return \"testnet\";\n if (accountId.endsWith(\".betanet\")) return \"betanet\";\n if (accountId.endsWith(\".shardnet\")) return \"shardnet\";\n\n // Default to testnet for development, mainnet for production\n return \"testnet\";\n};\n\n// Function to get connection config based on account ID\nexport const getNearConnectionConfig = (\n accountId: string,\n): { networkId: string; nodeUrl: string } => {\n const network = detectNearNetwork(accountId);\n const networkConfig = NEAR_NETWORKS[network];\n\n return {\n networkId: networkConfig.networkId,\n nodeUrl: networkConfig.nodeUrl,\n };\n};\n","import type { Store } from \"@idos-network/utils/store\";\nimport type {\n Wallet as NearWallet,\n SignedMessage,\n SignMessageParams,\n} from \"@near-wallet-selector/core\";\nimport type { connect as connectT } from \"near-api-js\";\nimport type { AccessKeyList } from \"near-api-js/lib/providers/provider\";\n\nimport { KwilSigner } from \"@idos-network/kwil-js\";\nimport {\n base64Decode,\n binaryWriteUint16BE,\n borshSerialize,\n bs58Decode,\n bytesConcat,\n hexEncode,\n utf8Decode,\n} from \"@idos-network/utils/codecs\";\n\nimport type { KwilActionClient } from \"../create-kwil-client\";\n\nimport { getNearConnectionConfig } from \"./get-config\";\n\nconst NEAR_WALLET_TYPES: string[] = [\n \"browser\",\n \"injected\",\n \"instant-link\",\n \"hardware\",\n \"bridge\",\n] satisfies NearWallet[\"type\"][];\n\nexport function looksLikeNearWallet(signer: unknown): signer is NearWallet {\n return (\n signer !== null &&\n typeof signer === \"object\" &&\n \"id\" in signer &&\n \"metadata\" in signer &&\n \"type\" in signer &&\n typeof signer.type === \"string\" &&\n NEAR_WALLET_TYPES.includes(signer.type)\n );\n}\n\nclass KwilNonce {\n bytes: Uint8Array;\n\n constructor(length = 32) {\n // We're in the browser, so there's a window.crypto for sure.\n /* global crypto */\n this.bytes = crypto.getRandomValues(new Uint8Array(length));\n }\n\n get clampUTF8() {\n return this.bytes.map((byte) => byte & 127);\n }\n}\n\n/**\n * Creates a signer function that can be used to sign messages with a NEAR wallet\n */\nfunction createNearWalletSigner(\n wallet: NearWallet,\n recipient: string,\n): (message: string | Uint8Array) => Promise<Uint8Array> {\n return async (message: string | Uint8Array): Promise<Uint8Array> => {\n const messageString = typeof message === \"string\" ? message : utf8Decode(message);\n\n if (!wallet.signMessage) {\n throw new Error(\"Only wallets with signMessage are supported.\");\n }\n\n const nonceSuggestion = Buffer.from(new KwilNonce(32).bytes);\n\n const {\n nonce = nonceSuggestion,\n signature,\n // @ts-expect-error Signatures don't seem to be updated for NEP413 yet.\n callbackUrl,\n // oxlint-disable-next-line typescript/no-non-null-assertion -- Only non-signing wallets return void.\n } = (await (\n wallet.signMessage as (\n _: SignMessageParams,\n ) => Promise<SignedMessage & { nonce?: Uint8Array }>\n )({\n message: messageString,\n recipient,\n nonce: nonceSuggestion,\n }))!;\n\n const nep413BorschSchema = {\n struct: {\n tag: \"u32\",\n message: \"string\",\n nonce: { array: { type: \"u8\", len: 32 } },\n recipient: \"string\",\n callbackUrl: { option: \"string\" },\n },\n };\n\n const nep413BorshParams = {\n tag: 2147484061,\n message: messageString,\n nonce: Array.from(nonce),\n recipient,\n callbackUrl,\n };\n\n const nep413BorshPayload = borshSerialize(nep413BorschSchema, nep413BorshParams);\n const result = bytesConcat(\n binaryWriteUint16BE(nep413BorshPayload.length),\n nep413BorshPayload,\n base64Decode(signature),\n );\n\n return result;\n };\n}\n\nexport function implicitAddressFromPublicKey(publicKey: string): string {\n const key_without_prefix = publicKey.replace(/^ed25519:/, \"\");\n return hexEncode(bs58Decode(key_without_prefix));\n}\n\nexport async function getNearFullAccessPublicKeys(\n namedAddress: string,\n): Promise<string[] | undefined> {\n let connect: typeof connectT;\n try {\n connect = (await import(\"near-api-js\")).connect;\n } catch (_e) {\n throw new Error(\"Can't load near-api-js\");\n }\n const connectionConfig = getNearConnectionConfig(namedAddress);\n const nearConnection = await connect(connectionConfig);\n\n try {\n const response: AccessKeyList = await nearConnection.connection.provider.query({\n request_type: \"view_access_key_list\",\n finality: \"final\",\n account_id: namedAddress,\n });\n return response.keys\n .filter((element) => element.access_key.permission === \"FullAccess\")\n ?.map((i) => i.public_key);\n } catch {\n // `Near` failed if namedAddress contains uppercase symbols\n return;\n }\n}\n\nexport async function signNearMessage(\n wallet: NearWallet,\n message: string,\n recipient = \"idos.network\",\n): Promise<string> {\n const signer = createNearWalletSigner(wallet, recipient);\n const signedPayload = await signer(message);\n return hexEncode(signedPayload);\n}\n\nexport async function createNearWalletKwilSigner(\n wallet: NearWallet,\n currentAddress: string,\n store: Store,\n kwilClient: KwilActionClient,\n recipient = \"idos.network\",\n): Promise<{ kwilSigner: KwilSigner; publicKey: string }> {\n if (!wallet.signMessage) throw new Error(\"Only wallets with signMessage are supported.\");\n\n if (wallet.id === \"my-near-wallet\") {\n const { accountId, signature, publicKey, error } = Object.fromEntries(\n new URLSearchParams(window.location.hash.slice(1)).entries(),\n );\n\n if (signature) {\n await store.set(\"signer-address\", accountId);\n await store.set(\"signer-public-key\", publicKey);\n }\n\n const signMessageOriginal = wallet.signMessage.bind(wallet);\n\n wallet.signMessage = async ({\n message,\n recipient,\n }: SignMessageParams): Promise<SignedMessage & { nonce?: Uint8Array }> => {\n if (error) return Promise.reject();\n\n const lastMessage = await store.get<string>(\"sign-last-message\");\n const lastNonce = await store.get<Uint8Array>(\"sign-last-nonce\");\n\n if (signature && message === lastMessage && lastNonce) {\n const nonce = Buffer.from(lastNonce);\n const callbackUrl = await store.get<string>(\"sign-last-url\");\n\n return Promise.resolve({\n accountId: currentAddress,\n publicKey,\n signature,\n nonce,\n message,\n callbackUrl,\n } as SignedMessage);\n }\n\n const callbackUrl = window.location.href;\n const nonce = Buffer.from(new KwilNonce(32).clampUTF8);\n\n await store.set(\"sign-last-message\", message);\n await store.set(\"sign-last-nonce\", Array.from(nonce));\n await store.set(\"sign-last-url\", callbackUrl);\n\n signMessageOriginal({ message, nonce, recipient, callbackUrl });\n\n return new Promise(() => ({}) as SignedMessage);\n };\n }\n\n const storedAddress = await store.get<string>(\"signer-address\");\n\n let publicKey = await store.get<string>(\"signer-public-key\");\n\n if (storedAddress !== currentAddress || !publicKey) {\n store.reset();\n // To avoid re-using the old signer's kgw cookie.\n // When kwil-js supports multi cookies, we can remove this.\n await kwilClient.client.auth.logoutKGW();\n\n const message = \"idOS authentication\";\n const nonce = Buffer.from(new KwilNonce(32).bytes);\n const signResult = await wallet.signMessage({ message, recipient, nonce });\n if (!signResult) throw new Error(\"signMessage returned no result\");\n ({ publicKey } = signResult);\n\n await store.set(\"signer-address\", currentAddress);\n await store.set(\"signer-public-key\", publicKey);\n }\n\n const signer = createNearWalletSigner(wallet, recipient);\n\n return {\n kwilSigner: new KwilSigner(signer, implicitAddressFromPublicKey(publicKey), \"nep413\"),\n publicKey,\n };\n}\n","import type { KeyPair } from \"near-api-js\";\n\nimport {\n binaryWriteUint16BE,\n borshSerialize,\n bytesConcat,\n sha256Hash,\n utf8Decode,\n} from \"@idos-network/utils/codecs\";\n\nexport function kwilNep413Signer(\n recipient: string,\n): (keyPair: KeyPair) => (messageBytes: Uint8Array) => Promise<Uint8Array> {\n return (keyPair: KeyPair) =>\n async (messageBytes: Uint8Array): Promise<Uint8Array> => {\n const message = utf8Decode(messageBytes);\n const nonceLength = 32;\n const nonce = crypto.getRandomValues(new Uint8Array(nonceLength));\n\n const nep413BorschSchema = {\n struct: {\n message: \"string\",\n nonce: { array: { type: \"u8\", len: nonceLength } },\n recipient: \"string\",\n callbackUrl: { option: \"string\" },\n },\n } as const;\n\n const tag = 2147484061; // 2**31 + 413\n\n const { signature } = keyPair.sign(\n sha256Hash(\n bytesConcat(\n borshSerialize(\"u32\", tag),\n borshSerialize(nep413BorschSchema, { message, nonce, recipient }),\n ),\n ),\n );\n\n const kwilNep413BorschSchema = {\n struct: {\n tag: \"u32\",\n ...nep413BorschSchema.struct,\n },\n };\n\n const kwilNep413BorshParams = {\n tag,\n message,\n nonce,\n recipient,\n };\n\n const kwilNep413BorshPayload = borshSerialize(kwilNep413BorschSchema, kwilNep413BorshParams);\n\n return bytesConcat(\n binaryWriteUint16BE(kwilNep413BorshPayload.length),\n kwilNep413BorshPayload,\n signature,\n );\n };\n}\n","import type * as GemWallet from \"@gemwallet/api\";\nimport type { Store } from \"@idos-network/utils/store\";\nimport type { Xumm } from \"xumm\";\n\nimport { KwilSigner } from \"@idos-network/kwil-js\";\n\nimport type { KwilActionClient } from \"../create-kwil-client\";\n\nimport { getXrpTxHash } from \"./utils\";\n\nexport async function createXrpKwilSigner(\n wallet: Xumm | typeof GemWallet,\n currentAddress: string,\n store: Store,\n kwilClient: KwilActionClient,\n walletPublicKey: string,\n): Promise<KwilSigner> {\n const storedAddress = await store.get<string>(\"signer-address\");\n const storePublicKey = await store.get<string>(\"signer-public-key\");\n\n if (storedAddress !== currentAddress || (storePublicKey && storePublicKey !== walletPublicKey)) {\n try {\n // HEADS UP: for some reason logoutKGW fails on xrp\n // storePublicKey && await kwilClient.client.auth.logoutKGW();\n console.log(\"logoutKGW\", kwilClient);\n } catch (error) {\n console.error(\"Failed to logout KGW:\", error);\n }\n }\n\n await store.set(\"signer-address\", currentAddress);\n await store.set(\"signer-public-key\", walletPublicKey);\n\n const signer = async (message: string | Uint8Array): Promise<Uint8Array> => {\n const signature = await getXrpTxHash(message, wallet);\n if (!signature) {\n throw new Error(\"Failed to sign transaction with XRP\");\n }\n return Buffer.from(signature, \"hex\");\n };\n\n return new KwilSigner(signer, walletPublicKey, \"xrpl\");\n}\n","import type { Store } from \"@idos-network/utils/store\";\nimport type { Wallet as NearWallet } from \"@near-wallet-selector/core\";\nimport type { Keypair as StellarKeypair } from \"@stellar/stellar-sdk\";\nimport type { Wallet as EthersWallet, JsonRpcSigner } from \"ethers\";\nimport type { KeyPair as NearKeyPair } from \"near-api-js\";\nimport type { KeyPair as XrpKeyPair } from \"ripple-keypairs/src/types\";\n\nimport { KwilSigner } from \"@idos-network/kwil-js\";\nimport { bs58Encode, hexDecode, hexEncode } from \"@idos-network/utils/codecs\";\nimport nacl from \"tweetnacl\";\n\nimport type { WalletType } from \"./actions\";\nimport type { KwilActionClient } from \"./create-kwil-client\";\n\nimport { FaceSignSignerProvider } from \"./facesign/facesign-signer\";\nimport {\n createNearWalletKwilSigner,\n implicitAddressFromPublicKey,\n looksLikeNearWallet,\n} from \"./near/create-near-wallet-kwil-signer\";\nimport { kwilNep413Signer } from \"./near/nep413\";\nimport { createXrpKwilSigner } from \"./xrp/signer\";\nimport { getXrpPublicKey, looksLikeXrpWallet } from \"./xrp/utils\";\n\nexport { KwilSigner } from \"@idos-network/kwil-js\";\nexport type Wallet =\n | EthersWallet\n | JsonRpcSigner\n | NearWallet\n | CustomKwilSigner\n | FaceSignSignerProvider;\n\n/**\n * Helper function to check if the given object is a `nacl.SignKeyPair`.\n */\nfunction isNaclSignKeyPair(object: unknown): object is nacl.SignKeyPair {\n return (\n object !== null &&\n typeof object === \"object\" &&\n \"publicKey\" in object &&\n object.publicKey instanceof Uint8Array &&\n object.publicKey.length === nacl.sign.publicKeyLength &&\n \"secretKey\" in object &&\n object.secretKey instanceof Uint8Array &&\n object.secretKey.length === nacl.sign.secretKeyLength\n );\n}\n\n/**\n * Helper function to check if the given object is a NEAR KeyPair.\n */\nfunction isNearKeyPair(object: unknown): object is NearKeyPair {\n return (\n object !== null &&\n typeof object === \"object\" &&\n \"getPublicKey\" in object &&\n \"sign\" in object &&\n typeof object.getPublicKey === \"function\" &&\n typeof object.sign === \"function\"\n );\n}\n\n/**\n * Helper function to check if the given object is a Stellar Keypair.\n */\nfunction isStellarKeyPair(object: unknown): object is StellarKeypair {\n return (\n object !== null &&\n typeof object === \"object\" &&\n \"publicKey\" in object &&\n \"sign\" in object &&\n \"canSign\" in object &&\n typeof object.publicKey === \"function\" &&\n typeof object.sign === \"function\" &&\n typeof object.canSign === \"function\"\n );\n}\n\nexport interface CustomKwilSigner extends KwilSigner {\n publicAddress: string;\n signatureType: string;\n publicKey: string;\n walletType: string;\n signMessage: (message: Uint8Array | string) => Promise<Uint8Array>;\n}\n\nfunction isCustomKwilSigner(object: unknown): object is CustomKwilSigner {\n return (\n object !== null &&\n typeof object === \"object\" &&\n \"publicAddress\" in object &&\n \"signatureType\" in object &&\n \"publicKey\" in object &&\n \"signMessage\" in object\n );\n}\n\n/**\n * Helper function to check if the given object is a XRP KeyPair (Server key pairs only).\n */\nfunction isXrplKeyPair(object: unknown): object is XrpKeyPair {\n return !!object && typeof object === \"object\" && \"privateKey\" in object && \"publicKey\" in object;\n}\n\nexport type KwilSignerType =\n | NearKeyPair\n | EthersWallet\n | nacl.SignKeyPair\n | JsonRpcSigner\n | StellarKeypair\n | XrpKeyPair;\n\nexport type SignerAddress = string;\nexport type SignerPublicKey = string | undefined;\n\n/**\n * Creates a `KwilSigner` and its associated `SignerAddress`.\n *\n * This function is explicitly marked as being for backend use only because it doesn't reset\n * the KGW cookie when logging out and re-logging in with a different wallet.\n */\nexport async function createServerKwilSigner(\n signer: KwilSignerType,\n): Promise<[KwilSigner, SignerAddress]> {\n if (isNaclSignKeyPair(signer)) {\n return [\n new KwilSigner(\n async (msg: Uint8Array) => nacl.sign.detached(msg, signer.secretKey),\n signer.publicKey,\n \"ed25519\",\n ),\n implicitAddressFromPublicKey(bs58Encode(signer.publicKey)),\n ];\n }\n\n if (isNearKeyPair(signer)) {\n const publicKey = implicitAddressFromPublicKey(signer.getPublicKey().toString());\n return [\n new KwilSigner(kwilNep413Signer(\"idos-issuer\")(signer), publicKey, \"nep413\"),\n publicKey,\n ];\n }\n\n if (isStellarKeyPair(signer)) {\n const publicKeyString = signer.publicKey();\n const rawPublicKey = signer.rawPublicKey();\n return [\n new KwilSigner(\n async (msg: Uint8Array) => signer.sign(Buffer.from(msg)),\n rawPublicKey,\n \"ed25519\",\n ),\n publicKeyString,\n ];\n }\n\n if (isXrplKeyPair(signer)) {\n let xrpKeypair: typeof import(\"ripple-keypairs\");\n\n try {\n xrpKeypair = await import(\"ripple-keypairs\");\n } catch (e) {\n throw new Error(\"Can't load ripple-keypairs\", { cause: e });\n }\n\n return [\n new KwilSigner(\n async (msg: Uint8Array) => hexDecode(xrpKeypair.sign(hexEncode(msg), signer.privateKey)),\n signer.publicKey,\n \"xrpl\",\n ),\n signer.publicKey,\n ];\n }\n\n if (\"address\" in signer) {\n return [new KwilSigner(signer, signer.address), signer.address];\n }\n\n // Force the check that `signer` is never.\n // If these lines start complaining, that means we're missing an `if` above.\n return ((_: never) => {\n throw new Error(\"Invalid `signer` type\");\n })(signer);\n}\n\nexport async function createClientKwilSigner(\n store: Store,\n kwilClient: KwilActionClient,\n wallet: Wallet,\n): Promise<[KwilSigner, SignerAddress, SignerPublicKey, WalletType]> {\n if (\"connect\" in wallet && \"address\" in wallet) {\n // oxlint-disable-next-line no-param-reassign -- Narrowing the type on purpose\n wallet = wallet as unknown as JsonRpcSigner;\n const currentAddress = await wallet.getAddress();\n\n const storedAddress = await store.get<string>(\"signer-address\");\n\n if (storedAddress !== currentAddress) {\n // To avoid re-using the old signer's kgw cookie.\n // When kwil-js supports multi cookies, we can remove this.\n store.set(\"signer-address\", currentAddress);\n try {\n await kwilClient.client.auth.logoutKGW();\n } catch (error) {\n console.log(\"error logoutKGW\", error);\n }\n }\n\n return [new KwilSigner(wallet, currentAddress), currentAddress, undefined, \"EVM\"];\n }\n\n if (looksLikeNearWallet(wallet)) {\n const accounts = await wallet.getAccounts();\n const { kwilSigner, publicKey } = await createNearWalletKwilSigner(\n wallet,\n accounts[0].accountId,\n store,\n kwilClient,\n );\n\n return [kwilSigner, accounts[0].accountId, publicKey, \"NEAR\"];\n }\n\n if (looksLikeXrpWallet(wallet)) {\n const { address: currentAddress, publicKey: walletPublicKey } = (await getXrpPublicKey(\n wallet,\n )) as { address: string; publicKey: string };\n if (!currentAddress) {\n throw new Error(\"Failed to get XRP address\");\n }\n\n return [\n await createXrpKwilSigner(wallet, currentAddress, store, kwilClient, walletPublicKey),\n currentAddress,\n walletPublicKey,\n \"XRPL\",\n ];\n }\n\n if (isCustomKwilSigner(wallet) || wallet instanceof FaceSignSignerProvider) {\n const storedAddress = await store.get<string>(\"signer-address\");\n\n if (storedAddress !== wallet.publicAddress) {\n store.set(\"signer-address\", wallet.publicAddress);\n try {\n await kwilClient.client.auth.logoutKGW();\n } catch (error) {\n console.log(\"error logoutKGW\", error);\n }\n }\n\n return [\n new KwilSigner(\n async (msg: Uint8Array) => wallet.signMessage(msg),\n wallet.publicAddress,\n \"ed25519\",\n ),\n wallet.publicAddress,\n wallet.publicKey,\n wallet.walletType as WalletType,\n ];\n }\n\n // Force the check that `signer` is `never`.\n // If these lines start complaining, that means we're missing an `if` above.\n return ((_: never) => {\n throw new Error(\"Invalid `signer` type\");\n })(wallet);\n}\n"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Vn as WalletType } from "../index-Ci6QhKJo.mjs";
2
+
3
+ //#region src/signature-verification/index.d.ts
4
+ interface WalletSignature {
5
+ address: string;
6
+ signature: string;
7
+ message: string;
8
+ wallet_type: WalletType;
9
+ public_key?: string[];
10
+ }
11
+ declare const verifySignature: (walletPayload: WalletSignature) => Promise<boolean>;
12
+ //#endregion
13
+ export { WalletSignature, verifySignature };
14
+ //# sourceMappingURL=index.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../../src/signature-verification/index.ts"],"mappings":";;;UAUiB,eAAA;EACf,OAAA;EACA,SAAA;EACA,OAAA;EACA,WAAA,EAAa,UAAA;EACb,UAAA;AAAA;AAAA,cAGW,eAAA,GAAyB,aAAA,EAAe,eAAA,KAAkB,OAAA"}