@reifydb/auth-solana 0.8.1 → 0.9.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.
- package/dist/index.d.ts +3 -3
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { WalletConnector } from '@reifydb/auth';
|
|
2
2
|
export * from '@reifydb/auth';
|
|
3
3
|
|
|
4
|
-
declare function
|
|
5
|
-
declare function
|
|
4
|
+
declare function encodeBase58(bytes: Uint8Array): string;
|
|
5
|
+
declare function isBase58(value: string): boolean;
|
|
6
6
|
|
|
7
7
|
declare function useSolanaWalletConnector(): WalletConnector;
|
|
8
8
|
|
|
9
|
-
export {
|
|
9
|
+
export { encodeBase58, isBase58, useSolanaWalletConnector };
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// src/base58.ts
|
|
2
2
|
var ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
3
3
|
var ALPHABET_SET = new Set(ALPHABET);
|
|
4
|
-
function
|
|
4
|
+
function encodeBase58(bytes) {
|
|
5
5
|
if (bytes.length === 0) return "";
|
|
6
|
-
let
|
|
7
|
-
while (
|
|
8
|
-
|
|
6
|
+
let leadingZeros = 0;
|
|
7
|
+
while (leadingZeros < bytes.length && bytes[leadingZeros] === 0) {
|
|
8
|
+
leadingZeros += 1;
|
|
9
9
|
}
|
|
10
10
|
const digits = [];
|
|
11
|
-
for (let i =
|
|
11
|
+
for (let i = leadingZeros; i < bytes.length; i += 1) {
|
|
12
12
|
let carry = bytes[i];
|
|
13
13
|
for (let j = 0; j < digits.length; j += 1) {
|
|
14
14
|
carry += digits[j] * 256;
|
|
@@ -21,11 +21,11 @@ function encode_base58(bytes) {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
let out = "";
|
|
24
|
-
for (let i = 0; i <
|
|
24
|
+
for (let i = 0; i < leadingZeros; i += 1) out += ALPHABET[0];
|
|
25
25
|
for (let i = digits.length - 1; i >= 0; i -= 1) out += ALPHABET[digits[i]];
|
|
26
26
|
return out;
|
|
27
27
|
}
|
|
28
|
-
function
|
|
28
|
+
function isBase58(value) {
|
|
29
29
|
if (value.length === 0) return false;
|
|
30
30
|
for (let i = 0; i < value.length; i += 1) {
|
|
31
31
|
if (!ALPHABET_SET.has(value[i])) return false;
|
|
@@ -37,7 +37,7 @@ function is_base58(value) {
|
|
|
37
37
|
import { useMemo } from "react";
|
|
38
38
|
import { useWallet } from "@solana/wallet-adapter-react";
|
|
39
39
|
var SOLANA_WALLET_NAME_KEY = "walletName";
|
|
40
|
-
function
|
|
40
|
+
function readHasSelectedWallet() {
|
|
41
41
|
if (typeof window === "undefined") return false;
|
|
42
42
|
try {
|
|
43
43
|
return localStorage.getItem(SOLANA_WALLET_NAME_KEY) != null;
|
|
@@ -53,7 +53,7 @@ function useSolanaWalletConnector() {
|
|
|
53
53
|
connected,
|
|
54
54
|
connecting,
|
|
55
55
|
publicKey: pk,
|
|
56
|
-
hasSelectedWallet:
|
|
56
|
+
hasSelectedWallet: readHasSelectedWallet(),
|
|
57
57
|
async signMessage(message) {
|
|
58
58
|
if (signMessage == null) {
|
|
59
59
|
throw new Error(
|
|
@@ -63,7 +63,7 @@ function useSolanaWalletConnector() {
|
|
|
63
63
|
return signMessage(message);
|
|
64
64
|
},
|
|
65
65
|
encodeSignature(bytes) {
|
|
66
|
-
return
|
|
66
|
+
return encodeBase58(bytes);
|
|
67
67
|
}
|
|
68
68
|
};
|
|
69
69
|
}, [connected, connecting, publicKey, signMessage]);
|
|
@@ -72,8 +72,8 @@ function useSolanaWalletConnector() {
|
|
|
72
72
|
// src/index.ts
|
|
73
73
|
export * from "@reifydb/auth";
|
|
74
74
|
export {
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
encodeBase58,
|
|
76
|
+
isBase58,
|
|
77
77
|
useSolanaWalletConnector
|
|
78
78
|
};
|
|
79
79
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/base58.ts","../src/solana-connector.ts","../src/index.ts"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\n// Base58 alphabet used by Solana (Bitcoin's flavor, not the Flickr variant).\nconst ALPHABET = \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\nconst ALPHABET_SET = new Set(ALPHABET);\n\nexport function
|
|
1
|
+
{"version":3,"sources":["../src/base58.ts","../src/solana-connector.ts","../src/index.ts"],"sourcesContent":["// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\n// Base58 alphabet used by Solana (Bitcoin's flavor, not the Flickr variant).\nconst ALPHABET = \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\nconst ALPHABET_SET = new Set(ALPHABET);\n\nexport function encodeBase58(bytes: Uint8Array): string {\n if (bytes.length === 0) return \"\";\n\n // Count leading zero bytes; they become leading '1's in base58.\n let leadingZeros = 0;\n while (leadingZeros < bytes.length && bytes[leadingZeros] === 0) {\n leadingZeros += 1;\n }\n\n // Convert the rest to base58 by repeated division.\n const digits: number[] = [];\n for (let i = leadingZeros; i < bytes.length; i += 1) {\n let carry = bytes[i];\n for (let j = 0; j < digits.length; j += 1) {\n carry += digits[j] * 256;\n digits[j] = carry % 58;\n carry = Math.floor(carry / 58);\n }\n while (carry > 0) {\n digits.push(carry % 58);\n carry = Math.floor(carry / 58);\n }\n }\n\n let out = \"\";\n for (let i = 0; i < leadingZeros; i += 1) out += ALPHABET[0];\n for (let i = digits.length - 1; i >= 0; i -= 1) out += ALPHABET[digits[i]];\n return out;\n}\n\nexport function isBase58(value: string): boolean {\n if (value.length === 0) return false;\n for (let i = 0; i < value.length; i += 1) {\n if (!ALPHABET_SET.has(value[i])) return false;\n }\n return true;\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nimport { useMemo } from \"react\";\nimport { useWallet } from \"@solana/wallet-adapter-react\";\nimport type { WalletConnector } from \"@reifydb/auth\";\n\nimport { encodeBase58 } from \"./base58\";\n\n// Solana wallet adapter stores the selected wallet name in this localStorage\n// key; presence implies an autoConnect attempt is pending after a refresh.\nconst SOLANA_WALLET_NAME_KEY = \"walletName\";\n\nfunction readHasSelectedWallet(): boolean {\n if (typeof window === \"undefined\") return false;\n try {\n return localStorage.getItem(SOLANA_WALLET_NAME_KEY) != null;\n } catch {\n return false;\n }\n}\n\nexport function useSolanaWalletConnector(): WalletConnector {\n const { connected, connecting, publicKey, signMessage } = useWallet();\n\n return useMemo<WalletConnector>(() => {\n const pk = publicKey != null ? publicKey.toBase58() : null;\n return {\n connected,\n connecting,\n publicKey: pk,\n hasSelectedWallet: readHasSelectedWallet(),\n async signMessage(message: Uint8Array): Promise<Uint8Array> {\n if (signMessage == null) {\n throw new Error(\n \"@reifydb/auth-solana: connected wallet does not support signMessage\",\n );\n }\n return signMessage(message);\n },\n encodeSignature(bytes: Uint8Array): string {\n return encodeBase58(bytes);\n },\n };\n }, [connected, connecting, publicKey, signMessage]);\n}\n","// SPDX-License-Identifier: Apache-2.0\n// Copyright (c) 2026 ReifyDB\n\nexport { encodeBase58, isBase58 } from \"./base58\";\nexport { useSolanaWalletConnector } from \"./solana-connector\";\n\nexport * from \"@reifydb/auth\";\n"],"mappings":";AAIA,IAAM,WAAW;AACjB,IAAM,eAAe,IAAI,IAAI,QAAQ;AAE9B,SAAS,aAAa,OAA2B;AACtD,MAAI,MAAM,WAAW,EAAG,QAAO;AAG/B,MAAI,eAAe;AACnB,SAAO,eAAe,MAAM,UAAU,MAAM,YAAY,MAAM,GAAG;AAC/D,oBAAgB;AAAA,EAClB;AAGA,QAAM,SAAmB,CAAC;AAC1B,WAAS,IAAI,cAAc,IAAI,MAAM,QAAQ,KAAK,GAAG;AACnD,QAAI,QAAQ,MAAM,CAAC;AACnB,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK,GAAG;AACzC,eAAS,OAAO,CAAC,IAAI;AACrB,aAAO,CAAC,IAAI,QAAQ;AACpB,cAAQ,KAAK,MAAM,QAAQ,EAAE;AAAA,IAC/B;AACA,WAAO,QAAQ,GAAG;AAChB,aAAO,KAAK,QAAQ,EAAE;AACtB,cAAQ,KAAK,MAAM,QAAQ,EAAE;AAAA,IAC/B;AAAA,EACF;AAEA,MAAI,MAAM;AACV,WAAS,IAAI,GAAG,IAAI,cAAc,KAAK,EAAG,QAAO,SAAS,CAAC;AAC3D,WAAS,IAAI,OAAO,SAAS,GAAG,KAAK,GAAG,KAAK,EAAG,QAAO,SAAS,OAAO,CAAC,CAAC;AACzE,SAAO;AACT;AAEO,SAAS,SAAS,OAAwB;AAC/C,MAAI,MAAM,WAAW,EAAG,QAAO;AAC/B,WAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK,GAAG;AACxC,QAAI,CAAC,aAAa,IAAI,MAAM,CAAC,CAAC,EAAG,QAAO;AAAA,EAC1C;AACA,SAAO;AACT;;;ACxCA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAO1B,IAAM,yBAAyB;AAE/B,SAAS,wBAAiC;AACxC,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,MAAI;AACF,WAAO,aAAa,QAAQ,sBAAsB,KAAK;AAAA,EACzD,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,SAAS,2BAA4C;AAC1D,QAAM,EAAE,WAAW,YAAY,WAAW,YAAY,IAAI,UAAU;AAEpE,SAAO,QAAyB,MAAM;AACpC,UAAM,KAAK,aAAa,OAAO,UAAU,SAAS,IAAI;AACtD,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,WAAW;AAAA,MACX,mBAAmB,sBAAsB;AAAA,MACzC,MAAM,YAAY,SAA0C;AAC1D,YAAI,eAAe,MAAM;AACvB,gBAAM,IAAI;AAAA,YACR;AAAA,UACF;AAAA,QACF;AACA,eAAO,YAAY,OAAO;AAAA,MAC5B;AAAA,MACA,gBAAgB,OAA2B;AACzC,eAAO,aAAa,KAAK;AAAA,MAC3B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,WAAW,YAAY,WAAW,WAAW,CAAC;AACpD;;;ACvCA,cAAc;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reifydb/auth-solana",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@reifydb/auth": "0.
|
|
8
|
+
"@reifydb/auth": "0.9.1"
|
|
9
9
|
},
|
|
10
10
|
"peerDependencies": {
|
|
11
11
|
"react": ">=16.8.0",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"tweetnacl": "^1.0.3",
|
|
25
25
|
"typescript": "^5.9.2",
|
|
26
26
|
"vitest": "^3.2.4",
|
|
27
|
-
"@reifydb/core": "0.
|
|
27
|
+
"@reifydb/core": "0.9.1"
|
|
28
28
|
},
|
|
29
29
|
"engines": {
|
|
30
30
|
"node": ">=16.0.0"
|