@suilend/sui-fe-next 0.1.71 → 0.1.74
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/contexts/WalletContext.d.ts +1 -1
- package/contexts/WalletContext.jsx +58 -27
- package/lib/connector.d.ts +1 -1
- package/lib/connector.js +23 -17
- package/package.json +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -7,7 +7,7 @@ export declare enum WalletType {
|
|
|
7
7
|
EXTENSION = "extension",
|
|
8
8
|
WEB = "web"
|
|
9
9
|
}
|
|
10
|
-
export type WalletAccount = Omit<WalletStandardWalletAccount,
|
|
10
|
+
export type WalletAccount = Omit<WalletStandardWalletAccount, "publicKey"> & {
|
|
11
11
|
publicKey?: ReadonlyUint8Array;
|
|
12
12
|
};
|
|
13
13
|
type WalletPlatform = "iOS" | "android" | "extension";
|
|
@@ -159,8 +159,8 @@ var WALLET_DOWNLOAD_URLS_MAP = (_b = {},
|
|
|
159
159
|
},
|
|
160
160
|
_b);
|
|
161
161
|
export var WALLET_CONNECT_WALLET = {
|
|
162
|
-
name:
|
|
163
|
-
iconUrl:
|
|
162
|
+
name: "WalletConnect",
|
|
163
|
+
iconUrl: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAALVBMVEVHcEwIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAIiPAkn9m4AAAAD3RSTlMA/1LKYuq+M906IhIJrYixCTN5AAAAqElEQVQokdWRSRbDIAxDg23m4f7HjQyBFtoLxBv0/DFIcF1vrUQilP6RTM70cpRP5qtZVf3OYkAz1NZqF3GDgk6LOC/HBkz7aGMq83Ju5QMIG0uaCq7LVFiDncpOJTZ0ldWnjI4xVh4LpvZEXgPSVZTBFyhp3CdPdDohcMmsVHe5lVVnLTrsIw/lvt6hn2wcsivdGdzzYIPy8fqeeTrgkyHR6qSfX3lH3W4KBAaKxKsVAAAAAElFTkSuQmCC",
|
|
164
164
|
type: WalletType.WEB,
|
|
165
165
|
isInstalled: true,
|
|
166
166
|
walletConnect: true,
|
|
@@ -224,7 +224,9 @@ function Inner(_a) {
|
|
|
224
224
|
var _h = useState(), universalConnector = _h[0], setUniversalConnector = _h[1];
|
|
225
225
|
var _j = useState(), session = _j[0], setSession = _j[1];
|
|
226
226
|
var sessionAddressWithout0x = (_e = (_d = (_c = session === null || session === void 0 ? void 0 : session.namespaces) === null || _c === void 0 ? void 0 : _c.sui) === null || _d === void 0 ? void 0 : _d.accounts) === null || _e === void 0 ? void 0 : _e[0];
|
|
227
|
-
var sessionAddress = sessionAddressWithout0x
|
|
227
|
+
var sessionAddress = sessionAddressWithout0x
|
|
228
|
+
? sessionAddressWithout0x.split(":").pop()
|
|
229
|
+
: undefined;
|
|
228
230
|
useEffect(function () {
|
|
229
231
|
(function () { return __awaiter(_this, void 0, void 0, function () {
|
|
230
232
|
var connector;
|
|
@@ -233,14 +235,12 @@ function Inner(_a) {
|
|
|
233
235
|
case 0: return [4 /*yield*/, getUniversalConnector(rpc.url)];
|
|
234
236
|
case 1:
|
|
235
237
|
connector = _a.sent();
|
|
236
|
-
console.log('connector', connector, rpc.url);
|
|
237
238
|
setUniversalConnector(connector);
|
|
238
239
|
return [2 /*return*/];
|
|
239
240
|
}
|
|
240
241
|
});
|
|
241
242
|
}); })();
|
|
242
243
|
}, [rpc.url]);
|
|
243
|
-
console.log('connector', universalConnector);
|
|
244
244
|
// Impersonated address
|
|
245
245
|
var impersonatedAddress = queryParams[WalletContextQueryParams.WALLET];
|
|
246
246
|
// Wallets
|
|
@@ -305,15 +305,18 @@ function Inner(_a) {
|
|
|
305
305
|
type: WalletType.EXTENSION,
|
|
306
306
|
downloadUrls: WALLET_DOWNLOAD_URLS_MAP[WalletName.BACKPACK],
|
|
307
307
|
},
|
|
308
|
+
WALLET_CONNECT_WALLET,
|
|
308
309
|
msafeWallet,
|
|
309
310
|
];
|
|
310
311
|
}, [getInstalledWallet]);
|
|
311
312
|
var wallets__extension_installed_default = useMemo(function () {
|
|
312
313
|
return wallets__extension_default
|
|
313
314
|
.filter(function (w) {
|
|
314
|
-
return w.name ===
|
|
315
|
-
?
|
|
316
|
-
:
|
|
315
|
+
return w.name === WALLET_CONNECT_WALLET.name
|
|
316
|
+
? true
|
|
317
|
+
: w.name === WalletName.MSAFE_WALLET
|
|
318
|
+
? isInMsafeApp()
|
|
319
|
+
: !!getInstalledWallet(w.name);
|
|
317
320
|
})
|
|
318
321
|
.map(function (w) { return (__assign(__assign({}, w), { isInstalled: true, raw: getInstalledWallet(w.name) })); });
|
|
319
322
|
}, [wallets__extension_default, getInstalledWallet]);
|
|
@@ -358,7 +361,9 @@ function Inner(_a) {
|
|
|
358
361
|
if (sessionAddress) {
|
|
359
362
|
return WALLET_CONNECT_WALLET;
|
|
360
363
|
}
|
|
361
|
-
return rawWallet
|
|
364
|
+
return rawWallet
|
|
365
|
+
? wallets.find(function (w) { return w.name === rawWallet.name; })
|
|
366
|
+
: undefined;
|
|
362
367
|
}, [rawWallet, wallets, sessionAddress]);
|
|
363
368
|
var connectWallet = useConnectWallet().mutate;
|
|
364
369
|
var disconnectWallet = useDisconnectWallet().mutate;
|
|
@@ -383,7 +388,9 @@ function Inner(_a) {
|
|
|
383
388
|
}
|
|
384
389
|
});
|
|
385
390
|
}); }, [sessionAddress, universalConnector]);
|
|
386
|
-
var signPersonalMessage = sessionAddress
|
|
391
|
+
var signPersonalMessage = sessionAddress
|
|
392
|
+
? walletConnectSignPersonalMessage
|
|
393
|
+
: function (message) { return signPersonalMessageRaw({ message: message, account: account }); };
|
|
387
394
|
var connectWalletWrapper = useCallback(function (_wallet) {
|
|
388
395
|
try {
|
|
389
396
|
if (_wallet === null || _wallet === void 0 ? void 0 : _wallet.walletConnect) {
|
|
@@ -415,34 +422,58 @@ function Inner(_a) {
|
|
|
415
422
|
}, [connectWallet, disconnectWallet, universalConnector]);
|
|
416
423
|
var disconnectWalletWrapper = useCallback(function () {
|
|
417
424
|
try {
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
425
|
+
if (sessionAddress) {
|
|
426
|
+
universalConnector.disconnect();
|
|
427
|
+
setSession(null);
|
|
428
|
+
}
|
|
429
|
+
else {
|
|
430
|
+
disconnectWallet(undefined, {
|
|
431
|
+
onSuccess: function () {
|
|
432
|
+
showInfoToast("Disconnected wallet");
|
|
433
|
+
},
|
|
434
|
+
onError: function (err) {
|
|
435
|
+
showErrorToast("Failed to disconnect wallet", err);
|
|
436
|
+
console.error(err);
|
|
437
|
+
},
|
|
438
|
+
});
|
|
439
|
+
}
|
|
427
440
|
}
|
|
428
441
|
catch (err) {
|
|
429
442
|
showErrorToast("Failed to disconnect wallet", err);
|
|
430
443
|
console.error(err);
|
|
431
444
|
}
|
|
432
|
-
}, [disconnectWallet]);
|
|
445
|
+
}, [disconnectWallet, sessionAddress]);
|
|
433
446
|
// Accounts
|
|
434
447
|
var accountsRes = useAccounts();
|
|
435
448
|
var accountRes = (_f = useCurrentAccount()) !== null && _f !== void 0 ? _f : undefined;
|
|
436
449
|
var switchAccount = useSwitchAccount().mutate;
|
|
437
|
-
var account = sessionAddress
|
|
438
|
-
|
|
450
|
+
var account = sessionAddress
|
|
451
|
+
? {
|
|
452
|
+
address: sessionAddress,
|
|
453
|
+
publicKey: new Uint8Array(),
|
|
454
|
+
chains: ["sui:mainnet"],
|
|
455
|
+
features: [],
|
|
456
|
+
}
|
|
457
|
+
: accountRes;
|
|
458
|
+
var accounts = sessionAddress
|
|
459
|
+
? [
|
|
460
|
+
{
|
|
461
|
+
address: sessionAddress,
|
|
462
|
+
publicKey: new Uint8Array(),
|
|
463
|
+
chains: ["sui:mainnet"],
|
|
464
|
+
features: [],
|
|
465
|
+
},
|
|
466
|
+
]
|
|
467
|
+
: accountsRes;
|
|
439
468
|
var switchAccountWrapper = useCallback(function (_account, addressNameServiceName) {
|
|
440
469
|
var _a, _b, _c;
|
|
441
470
|
var accountLabel = (_b = (_a = _account === null || _account === void 0 ? void 0 : _account.label) !== null && _a !== void 0 ? _a : addressNameServiceName) !== null && _b !== void 0 ? _b : formatAddress(_account.address);
|
|
442
471
|
try {
|
|
443
472
|
switchAccount(
|
|
444
473
|
// only address needed here. rest for type compatibility
|
|
445
|
-
{
|
|
474
|
+
{
|
|
475
|
+
account: __assign(__assign({}, _account), { publicKey: (_c = _account.publicKey) !== null && _c !== void 0 ? _c : new Uint8Array() }),
|
|
476
|
+
}, {
|
|
446
477
|
onSuccess: function () {
|
|
447
478
|
showInfoToast("Switched to ".concat(accountLabel), {
|
|
448
479
|
description: (_account === null || _account === void 0 ? void 0 : _account.label)
|
|
@@ -686,7 +717,7 @@ function Inner(_a) {
|
|
|
686
717
|
var _l = useLocalStorage("isUsingLedger-".concat(impersonatedAddress !== null && impersonatedAddress !== void 0 ? impersonatedAddress : account === null || account === void 0 ? void 0 : account.address), false), isUsingLedger = _l[0], setIsUsingLedger = _l[1];
|
|
687
718
|
// Context
|
|
688
719
|
var contextValue = useMemo(function () {
|
|
689
|
-
return
|
|
720
|
+
return {
|
|
690
721
|
isImpersonating: !!impersonatedAddress,
|
|
691
722
|
isConnectWalletDropdownOpen: isConnectWalletDropdownOpen,
|
|
692
723
|
setIsConnectWalletDropdownOpen: setIsConnectWalletDropdownOpen,
|
|
@@ -702,8 +733,8 @@ function Inner(_a) {
|
|
|
702
733
|
signExecuteAndWaitForTransaction: signExecuteAndWaitForTransaction,
|
|
703
734
|
isUsingLedger: isUsingLedger,
|
|
704
735
|
setIsUsingLedger: setIsUsingLedger,
|
|
705
|
-
signPersonalMessage: signPersonalMessage
|
|
706
|
-
}
|
|
736
|
+
signPersonalMessage: signPersonalMessage,
|
|
737
|
+
};
|
|
707
738
|
}, [
|
|
708
739
|
session,
|
|
709
740
|
impersonatedAddress,
|
|
@@ -719,7 +750,7 @@ function Inner(_a) {
|
|
|
719
750
|
signExecuteAndWaitForTransaction,
|
|
720
751
|
isUsingLedger,
|
|
721
752
|
setIsUsingLedger,
|
|
722
|
-
signPersonalMessage
|
|
753
|
+
signPersonalMessage,
|
|
723
754
|
]);
|
|
724
755
|
return (<WalletContext.Provider value={contextValue}>
|
|
725
756
|
{children}
|
package/lib/connector.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { UniversalConnector } from
|
|
1
|
+
import { UniversalConnector } from "@reown/appkit-universal-connector";
|
|
2
2
|
export declare const projectId = "8bd21cb34c6a79f37b99768f8f607a99";
|
|
3
3
|
export declare function getUniversalConnector(rpcUrl: string): Promise<UniversalConnector>;
|
package/lib/connector.js
CHANGED
|
@@ -34,11 +34,11 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
34
34
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
|
-
import { UniversalConnector } from
|
|
37
|
+
import { UniversalConnector } from "@reown/appkit-universal-connector";
|
|
38
38
|
// Get projectId from https://dashboard.reown.com
|
|
39
39
|
export var projectId = "8bd21cb34c6a79f37b99768f8f607a99";
|
|
40
40
|
if (!projectId) {
|
|
41
|
-
throw new Error(
|
|
41
|
+
throw new Error("Project ID is not defined");
|
|
42
42
|
}
|
|
43
43
|
export function getUniversalConnector(rpcUrl) {
|
|
44
44
|
return __awaiter(this, void 0, void 0, function () {
|
|
@@ -48,26 +48,32 @@ export function getUniversalConnector(rpcUrl) {
|
|
|
48
48
|
case 0: return [4 /*yield*/, UniversalConnector.init({
|
|
49
49
|
projectId: projectId,
|
|
50
50
|
metadata: {
|
|
51
|
-
name:
|
|
52
|
-
description:
|
|
53
|
-
url:
|
|
54
|
-
icons: [
|
|
51
|
+
name: "Universal Connector",
|
|
52
|
+
description: "Universal Connector",
|
|
53
|
+
url: "http://localhost:3000",
|
|
54
|
+
icons: ["https://appkit.reown.com/icon.png"],
|
|
55
55
|
},
|
|
56
56
|
networks: [
|
|
57
57
|
{
|
|
58
|
-
methods: [
|
|
59
|
-
|
|
58
|
+
methods: [
|
|
59
|
+
"sui_signPersonalMessage",
|
|
60
|
+
"sui_signTransaction",
|
|
61
|
+
"sui_signAndExecuteTransaction",
|
|
62
|
+
],
|
|
63
|
+
chains: [
|
|
64
|
+
{
|
|
60
65
|
id: 784,
|
|
61
|
-
chainNamespace:
|
|
62
|
-
caipNetworkId:
|
|
63
|
-
name:
|
|
64
|
-
nativeCurrency: { name:
|
|
65
|
-
rpcUrls: { default: { http: [rpcUrl] } }
|
|
66
|
-
}
|
|
66
|
+
chainNamespace: "sui",
|
|
67
|
+
caipNetworkId: "sui:mainnet",
|
|
68
|
+
name: "Sui",
|
|
69
|
+
nativeCurrency: { name: "SUI", symbol: "SUI", decimals: 9 },
|
|
70
|
+
rpcUrls: { default: { http: [rpcUrl] } },
|
|
71
|
+
},
|
|
72
|
+
],
|
|
67
73
|
events: [],
|
|
68
|
-
namespace:
|
|
69
|
-
}
|
|
70
|
-
]
|
|
74
|
+
namespace: "sui",
|
|
75
|
+
},
|
|
76
|
+
],
|
|
71
77
|
})];
|
|
72
78
|
case 1:
|
|
73
79
|
universalConnector = _a.sent();
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@suilend/sui-fe-next","version":"0.1.
|
|
1
|
+
{"name":"@suilend/sui-fe-next","version":"0.1.74","private":false,"description":"A collection of TypeScript frontend components and hooks","author":"Suilend","license":"MIT","main":"./index.js","exports":{".":"./index.js","./contexts/SettingsContext":"./contexts/SettingsContext.jsx","./contexts/WalletContext":"./contexts/WalletContext.jsx","./contexts":"./contexts/index.js","./fetchers":"./fetchers/index.js","./fetchers/useFetchBalances":"./fetchers/useFetchBalances.js","./hooks":"./hooks/index.js","./hooks/keypair":"./hooks/keypair.js","./hooks/useCoinMetadataMap":"./hooks/useCoinMetadataMap.js","./hooks/useIsAndroid":"./hooks/useIsAndroid.jsx","./hooks/useIsTouchscreen":"./hooks/useIsTouchscreen.jsx","./hooks/useIsiOS":"./hooks/useIsiOS.jsx","./hooks/useLedgerHashDialog":"./hooks/useLedgerHashDialog.js","./hooks/useRefreshOnBalancesChange":"./hooks/useRefreshOnBalancesChange.js","./lib/connector":"./lib/connector.js","./lib":"./lib/index.js","./lib/router":"./lib/router.js","./lib/toasts":"./lib/toasts.jsx"},"types":"./index.js","scripts":{"build":"rm -rf ./dist && bun tsc","eslint":"eslint --fix \"./src/**/*.ts\"","prettier":"prettier --write \"./src/**/*\"","lint":"bun eslint && bun prettier && bun tsc --noEmit","release":"bun run build && bun ts-node ./release.ts && cd ./dist && npm publish --access public"},"repository":{"type":"git","url":"git+https://github.com/suilend/sui-fe.git"},"bugs":{"url":"https://github.com/suilend/sui-fe/issues"},"dependencies":{"@reown/appkit":"^1.8.10","@reown/appkit-common":"^1.8.10","@reown/appkit-universal-connector":"^1.8.10","@sentry/nextjs":"^8.38.0","@tanstack/react-query":"^5.60.2","bignumber.js":"^9.1.2","launchdarkly-react-client-sdk":"^3.6.0","lodash":"^4.17.21","next":"^15.0.3","react":"18.3.1","react-dom":"18.3.1","react-responsive":"^10.0.0","shio-sdk":"^1.0.8","sonner":"1.4.41","swr":"^2.2.5","tailwind-merge":"^2.5.4","usehooks-ts":"^3.1.1"},"devDependencies":{"@tsconfig/next":"^2.0.3","@types/lodash":"^4.17.13","@types/node":"^22.9.0","@types/react":"^18.3.12","@types/react-dom":"^18.3.1","@typescript-eslint/eslint-plugin":"^8.14.0","@typescript-eslint/parser":"^8.14.0","eslint":"^9.14.0","eslint-config-next":"^15.0.3","eslint-config-prettier":"^9.1.0","eslint-plugin-import":"^2.31.0","eslint-plugin-prettier":"^5.2.1","prettier":"^3.3.3","ts-node":"^10.9.2","typescript":"^5.6.3"},"peerDependencies":{"@mysten/dapp-kit":"0.16.0","@mysten/sui":"1.28.2","@mysten/wallet-standard":"0.14.7","@suilend/sui-fe":"^0.3.31"}}
|