@mysten-incubation/dev-wallet 0.0.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.
- package/README.md +250 -0
- package/dist/_virtual/_@oxc-project_runtime@0.107.0/helpers/decorate.mjs +10 -0
- package/dist/adapters/base-adapter.d.mts +33 -0
- package/dist/adapters/base-adapter.d.mts.map +1 -0
- package/dist/adapters/base-adapter.mjs +77 -0
- package/dist/adapters/base-adapter.mjs.map +1 -0
- package/dist/adapters/browser.d.mts +8 -0
- package/dist/adapters/browser.mjs +8 -0
- package/dist/adapters/build-managed-account.d.mts +12 -0
- package/dist/adapters/build-managed-account.d.mts.map +1 -0
- package/dist/adapters/build-managed-account.mjs +30 -0
- package/dist/adapters/build-managed-account.mjs.map +1 -0
- package/dist/adapters/idb-store.mjs +73 -0
- package/dist/adapters/idb-store.mjs.map +1 -0
- package/dist/adapters/in-memory-adapter.d.mts +16 -0
- package/dist/adapters/in-memory-adapter.d.mts.map +1 -0
- package/dist/adapters/in-memory-adapter.mjs +44 -0
- package/dist/adapters/in-memory-adapter.mjs.map +1 -0
- package/dist/adapters/passkey-adapter.d.mts +31 -0
- package/dist/adapters/passkey-adapter.d.mts.map +1 -0
- package/dist/adapters/passkey-adapter.mjs +87 -0
- package/dist/adapters/passkey-adapter.mjs.map +1 -0
- package/dist/adapters/remote-cli-adapter.d.mts +65 -0
- package/dist/adapters/remote-cli-adapter.d.mts.map +1 -0
- package/dist/adapters/remote-cli-adapter.mjs +299 -0
- package/dist/adapters/remote-cli-adapter.mjs.map +1 -0
- package/dist/adapters/webcrypto-adapter.d.mts +20 -0
- package/dist/adapters/webcrypto-adapter.d.mts.map +1 -0
- package/dist/adapters/webcrypto-adapter.mjs +68 -0
- package/dist/adapters/webcrypto-adapter.mjs.map +1 -0
- package/dist/bin/cli.d.mts +1 -0
- package/dist/bin/cli.mjs +183 -0
- package/dist/bin/cli.mjs.map +1 -0
- package/dist/client/dev-wallet-client.d.mts +57 -0
- package/dist/client/dev-wallet-client.d.mts.map +1 -0
- package/dist/client/dev-wallet-client.mjs +223 -0
- package/dist/client/dev-wallet-client.mjs.map +1 -0
- package/dist/client/index.d.mts +3 -0
- package/dist/client/index.mjs +4 -0
- package/dist/client/request-handler.d.mts +42 -0
- package/dist/client/request-handler.d.mts.map +1 -0
- package/dist/client/request-handler.mjs +115 -0
- package/dist/client/request-handler.mjs.map +1 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.mjs +4 -0
- package/dist/react/components.d.mts +32 -0
- package/dist/react/components.d.mts.map +1 -0
- package/dist/react/components.mjs +53 -0
- package/dist/react/components.mjs.map +1 -0
- package/dist/react/context.d.mts +22 -0
- package/dist/react/context.d.mts.map +1 -0
- package/dist/react/context.mjs +25 -0
- package/dist/react/context.mjs.map +1 -0
- package/dist/react/index.d.mts +4 -0
- package/dist/react/index.mjs +5 -0
- package/dist/react/useDevWallet.d.mts +38 -0
- package/dist/react/useDevWallet.d.mts.map +1 -0
- package/dist/react/useDevWallet.mjs +89 -0
- package/dist/react/useDevWallet.mjs.map +1 -0
- package/dist/server/cli-signing-middleware.d.mts +22 -0
- package/dist/server/cli-signing-middleware.d.mts.map +1 -0
- package/dist/server/cli-signing-middleware.mjs +117 -0
- package/dist/server/cli-signing-middleware.mjs.map +1 -0
- package/dist/server/index.d.mts +2 -0
- package/dist/server/index.mjs +3 -0
- package/dist/standalone/assets/in-memory-adapter-CBF4h2KD.js +1 -0
- package/dist/standalone/assets/main-VE4olb-Q.js +2841 -0
- package/dist/standalone/assets/webcrypto-adapter-DysAubFb.js +1 -0
- package/dist/standalone/bookmarklet.js +5 -0
- package/dist/standalone/index.html +48 -0
- package/dist/types.d.mts +55 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/ui/copy-controller.mjs +43 -0
- package/dist/ui/copy-controller.mjs.map +1 -0
- package/dist/ui/dev-wallet-account-selector.d.mts +24 -0
- package/dist/ui/dev-wallet-account-selector.d.mts.map +1 -0
- package/dist/ui/dev-wallet-account-selector.mjs +268 -0
- package/dist/ui/dev-wallet-account-selector.mjs.map +1 -0
- package/dist/ui/dev-wallet-accounts.d.mts +29 -0
- package/dist/ui/dev-wallet-accounts.d.mts.map +1 -0
- package/dist/ui/dev-wallet-accounts.mjs +524 -0
- package/dist/ui/dev-wallet-accounts.mjs.map +1 -0
- package/dist/ui/dev-wallet-balances.d.mts +26 -0
- package/dist/ui/dev-wallet-balances.d.mts.map +1 -0
- package/dist/ui/dev-wallet-balances.mjs +130 -0
- package/dist/ui/dev-wallet-balances.mjs.map +1 -0
- package/dist/ui/dev-wallet-connect.d.mts +31 -0
- package/dist/ui/dev-wallet-connect.d.mts.map +1 -0
- package/dist/ui/dev-wallet-connect.mjs +225 -0
- package/dist/ui/dev-wallet-connect.mjs.map +1 -0
- package/dist/ui/dev-wallet-dropdown.d.mts +27 -0
- package/dist/ui/dev-wallet-dropdown.d.mts.map +1 -0
- package/dist/ui/dev-wallet-dropdown.mjs +121 -0
- package/dist/ui/dev-wallet-dropdown.mjs.map +1 -0
- package/dist/ui/dev-wallet-network-badge.d.mts +21 -0
- package/dist/ui/dev-wallet-network-badge.d.mts.map +1 -0
- package/dist/ui/dev-wallet-network-badge.mjs +121 -0
- package/dist/ui/dev-wallet-network-badge.mjs.map +1 -0
- package/dist/ui/dev-wallet-new-account.d.mts +31 -0
- package/dist/ui/dev-wallet-new-account.d.mts.map +1 -0
- package/dist/ui/dev-wallet-new-account.mjs +577 -0
- package/dist/ui/dev-wallet-new-account.mjs.map +1 -0
- package/dist/ui/dev-wallet-objects.d.mts +26 -0
- package/dist/ui/dev-wallet-objects.d.mts.map +1 -0
- package/dist/ui/dev-wallet-objects.mjs +276 -0
- package/dist/ui/dev-wallet-objects.mjs.map +1 -0
- package/dist/ui/dev-wallet-panel.d.mts +22 -0
- package/dist/ui/dev-wallet-panel.d.mts.map +1 -0
- package/dist/ui/dev-wallet-panel.mjs +192 -0
- package/dist/ui/dev-wallet-panel.mjs.map +1 -0
- package/dist/ui/dev-wallet-popup.d.mts +36 -0
- package/dist/ui/dev-wallet-popup.d.mts.map +1 -0
- package/dist/ui/dev-wallet-popup.mjs +137 -0
- package/dist/ui/dev-wallet-popup.mjs.map +1 -0
- package/dist/ui/dev-wallet-settings.d.mts +33 -0
- package/dist/ui/dev-wallet-settings.d.mts.map +1 -0
- package/dist/ui/dev-wallet-settings.mjs +635 -0
- package/dist/ui/dev-wallet-settings.mjs.map +1 -0
- package/dist/ui/dev-wallet-signing-modal.d.mts +32 -0
- package/dist/ui/dev-wallet-signing-modal.d.mts.map +1 -0
- package/dist/ui/dev-wallet-signing-modal.mjs +115 -0
- package/dist/ui/dev-wallet-signing-modal.mjs.map +1 -0
- package/dist/ui/dev-wallet-signing.d.mts +25 -0
- package/dist/ui/dev-wallet-signing.d.mts.map +1 -0
- package/dist/ui/dev-wallet-signing.mjs +544 -0
- package/dist/ui/dev-wallet-signing.mjs.map +1 -0
- package/dist/ui/dev-wallet-standalone.d.mts +23 -0
- package/dist/ui/dev-wallet-standalone.d.mts.map +1 -0
- package/dist/ui/dev-wallet-standalone.mjs +129 -0
- package/dist/ui/dev-wallet-standalone.mjs.map +1 -0
- package/dist/ui/dev-wallet-tab-bar.d.mts +19 -0
- package/dist/ui/dev-wallet-tab-bar.d.mts.map +1 -0
- package/dist/ui/dev-wallet-tab-bar.mjs +143 -0
- package/dist/ui/dev-wallet-tab-bar.mjs.map +1 -0
- package/dist/ui/index.d.mts +17 -0
- package/dist/ui/index.mjs +18 -0
- package/dist/ui/mount.d.mts +11 -0
- package/dist/ui/mount.d.mts.map +1 -0
- package/dist/ui/mount.mjs +17 -0
- package/dist/ui/mount.mjs.map +1 -0
- package/dist/ui/styles.mjs +250 -0
- package/dist/ui/styles.mjs.map +1 -0
- package/dist/ui/transaction-analyzer.mjs +58 -0
- package/dist/ui/transaction-analyzer.mjs.map +1 -0
- package/dist/ui/utils.mjs +98 -0
- package/dist/ui/utils.mjs.map +1 -0
- package/dist/ui/wallet-controller.mjs +275 -0
- package/dist/ui/wallet-controller.mjs.map +1 -0
- package/dist/wallet/constants.mjs +11 -0
- package/dist/wallet/constants.mjs.map +1 -0
- package/dist/wallet/dev-wallet.d.mts +118 -0
- package/dist/wallet/dev-wallet.d.mts.map +1 -0
- package/dist/wallet/dev-wallet.mjs +424 -0
- package/dist/wallet/dev-wallet.mjs.map +1 -0
- package/dist/wallet/initializer.d.mts +63 -0
- package/dist/wallet/initializer.d.mts.map +1 -0
- package/dist/wallet/initializer.mjs +75 -0
- package/dist/wallet/initializer.mjs.map +1 -0
- package/dist/wallet/signing.d.mts +35 -0
- package/dist/wallet/signing.d.mts.map +1 -0
- package/dist/wallet/signing.mjs +69 -0
- package/dist/wallet/signing.mjs.map +1 -0
- package/package.json +124 -0
- package/src/adapters/base-adapter.ts +93 -0
- package/src/adapters/browser.ts +15 -0
- package/src/adapters/build-managed-account.ts +33 -0
- package/src/adapters/idb-store.ts +87 -0
- package/src/adapters/in-memory-adapter.ts +51 -0
- package/src/adapters/passkey-adapter.ts +120 -0
- package/src/adapters/remote-cli-adapter.ts +388 -0
- package/src/adapters/webcrypto-adapter.ts +96 -0
- package/src/app/bookmarklet-entry.ts +77 -0
- package/src/app/index.html +48 -0
- package/src/app/main.ts +245 -0
- package/src/app/tsconfig.json +3 -0
- package/src/bin/cli.ts +214 -0
- package/src/client/dev-wallet-client.ts +280 -0
- package/src/client/index.ts +7 -0
- package/src/client/request-handler.ts +161 -0
- package/src/index.ts +19 -0
- package/src/react/components.ts +64 -0
- package/src/react/context.ts +38 -0
- package/src/react/index.ts +16 -0
- package/src/react/useDevWallet.ts +118 -0
- package/src/server/cli-signing-middleware.ts +146 -0
- package/src/server/index.ts +8 -0
- package/src/types.ts +58 -0
- package/src/ui/copy-controller.ts +49 -0
- package/src/ui/dev-wallet-account-selector.ts +283 -0
- package/src/ui/dev-wallet-accounts.ts +578 -0
- package/src/ui/dev-wallet-balances.ts +171 -0
- package/src/ui/dev-wallet-connect.ts +259 -0
- package/src/ui/dev-wallet-dropdown.ts +138 -0
- package/src/ui/dev-wallet-network-badge.ts +128 -0
- package/src/ui/dev-wallet-new-account.ts +662 -0
- package/src/ui/dev-wallet-objects.ts +336 -0
- package/src/ui/dev-wallet-panel.ts +207 -0
- package/src/ui/dev-wallet-popup.ts +169 -0
- package/src/ui/dev-wallet-settings.ts +692 -0
- package/src/ui/dev-wallet-signing-modal.ts +137 -0
- package/src/ui/dev-wallet-signing.ts +624 -0
- package/src/ui/dev-wallet-standalone.ts +136 -0
- package/src/ui/dev-wallet-tab-bar.ts +151 -0
- package/src/ui/index.ts +26 -0
- package/src/ui/mount.ts +21 -0
- package/src/ui/styles.ts +252 -0
- package/src/ui/transaction-analyzer.ts +60 -0
- package/src/ui/utils.ts +118 -0
- package/src/ui/wallet-controller.ts +340 -0
- package/src/wallet/constants.ts +17 -0
- package/src/wallet/dev-wallet.ts +597 -0
- package/src/wallet/initializer.ts +124 -0
- package/src/wallet/signing.ts +85 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ClientWithCoreApi } from '@mysten/sui/client';
|
|
5
|
+
import type { WalletIcon } from '@mysten/wallet-standard';
|
|
6
|
+
|
|
7
|
+
import type { SignerAdapter } from '../types.js';
|
|
8
|
+
import { DevWallet, type AutoApprovePolicy } from './dev-wallet.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Configuration for the dev wallet initializer.
|
|
12
|
+
* Unlike {@link DevWalletConfig}, `networks` and `clientFactory` are omitted — they come
|
|
13
|
+
* from the dApp Kit context at initialization time.
|
|
14
|
+
*/
|
|
15
|
+
export interface DevWalletInitializerConfig {
|
|
16
|
+
adapters: SignerAdapter[];
|
|
17
|
+
name?: string;
|
|
18
|
+
icon?: WalletIcon;
|
|
19
|
+
autoApprove?: AutoApprovePolicy;
|
|
20
|
+
autoConnect?: boolean;
|
|
21
|
+
/** Call `adapter.initialize()` automatically. Defaults to true. */
|
|
22
|
+
autoInitialize?: boolean;
|
|
23
|
+
/** Create an initial account after initialization if no accounts exist. Defaults to true. */
|
|
24
|
+
createInitialAccount?: boolean;
|
|
25
|
+
/** Mount the floating wallet drawer UI. Defaults to false. */
|
|
26
|
+
mountUI?: boolean;
|
|
27
|
+
/** Container element for the UI drawer. Defaults to document.body. */
|
|
28
|
+
container?: HTMLElement;
|
|
29
|
+
/** Called with the DevWallet instance after creation. */
|
|
30
|
+
onWalletCreated?: (wallet: DevWallet) => void;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Creates a wallet initializer for `createDAppKit({ walletInitializers: [...] })`.
|
|
35
|
+
* The wallet uses dApp Kit's networks and client factory and is unregistered when dApp Kit tears down.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts
|
|
39
|
+
* import { createDAppKit } from '@mysten/dapp-kit-react';
|
|
40
|
+
* import { devWalletInitializer } from '@mysten-incubation/dev-wallet';
|
|
41
|
+
* import { WebCryptoSignerAdapter } from '@mysten-incubation/dev-wallet/adapters';
|
|
42
|
+
*
|
|
43
|
+
* const dAppKit = createDAppKit({
|
|
44
|
+
* networks: ['devnet', 'testnet'],
|
|
45
|
+
* createClient(network) { ... },
|
|
46
|
+
* walletInitializers: [
|
|
47
|
+
* devWalletInitializer({
|
|
48
|
+
* adapters: [new WebCryptoSignerAdapter()],
|
|
49
|
+
* autoConnect: true,
|
|
50
|
+
* mountUI: true,
|
|
51
|
+
* }),
|
|
52
|
+
* ],
|
|
53
|
+
* });
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export function devWalletInitializer(config: DevWalletInitializerConfig): {
|
|
57
|
+
id: string;
|
|
58
|
+
initialize(input: {
|
|
59
|
+
networks: readonly string[];
|
|
60
|
+
getClient: (network?: string) => ClientWithCoreApi;
|
|
61
|
+
}): Promise<{ unregister: () => void }>;
|
|
62
|
+
} {
|
|
63
|
+
return {
|
|
64
|
+
id: 'dev-wallet-initializer',
|
|
65
|
+
async initialize({ networks, getClient }) {
|
|
66
|
+
const { autoInitialize = true, createInitialAccount = true, mountUI = false } = config;
|
|
67
|
+
|
|
68
|
+
// Initialize adapters
|
|
69
|
+
if (autoInitialize) {
|
|
70
|
+
await Promise.all(config.adapters.map((a) => a.initialize()));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Create initial account if needed
|
|
74
|
+
if (createInitialAccount) {
|
|
75
|
+
const hasAccounts = config.adapters.some((a) => a.getAccounts().length > 0);
|
|
76
|
+
if (!hasAccounts) {
|
|
77
|
+
const creatableAdapter = config.adapters.find(
|
|
78
|
+
(a) => a.createAccount && a.getAccounts().length === 0,
|
|
79
|
+
);
|
|
80
|
+
if (creatableAdapter?.createAccount) {
|
|
81
|
+
await creatableAdapter.createAccount({ label: 'Dev Account' });
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Map dApp Kit networks to DevWallet format.
|
|
87
|
+
// DevWallet needs a Record<string, string> of network name → URL, but
|
|
88
|
+
// the clientFactory we provide delegates to getClient, so the URLs are
|
|
89
|
+
// never actually used. We use placeholder values.
|
|
90
|
+
const networkUrls: Record<string, string> = {};
|
|
91
|
+
for (const network of networks) {
|
|
92
|
+
networkUrls[network] = `dapp-kit://${network}`;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const wallet = new DevWallet({
|
|
96
|
+
adapters: config.adapters,
|
|
97
|
+
networks: networkUrls,
|
|
98
|
+
name: config.name,
|
|
99
|
+
icon: config.icon,
|
|
100
|
+
autoApprove: config.autoApprove,
|
|
101
|
+
autoConnect: config.autoConnect,
|
|
102
|
+
clientFactory: (network) => getClient(network),
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
config.onWalletCreated?.(wallet);
|
|
106
|
+
|
|
107
|
+
// Mount UI if requested
|
|
108
|
+
let unmountUI: (() => void) | undefined;
|
|
109
|
+
if (mountUI && typeof document !== 'undefined') {
|
|
110
|
+
const { mountDevWallet } = await import('../ui/mount.js');
|
|
111
|
+
unmountUI = mountDevWallet(wallet, { container: config.container });
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
const unregister = wallet.register();
|
|
115
|
+
return {
|
|
116
|
+
unregister() {
|
|
117
|
+
unmountUI?.();
|
|
118
|
+
unregister();
|
|
119
|
+
wallet.destroy();
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
},
|
|
123
|
+
};
|
|
124
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
// Copyright (c) Mysten Labs, Inc.
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
|
|
4
|
+
import type { ClientWithCoreApi } from '@mysten/sui/client';
|
|
5
|
+
import type { Signer } from '@mysten/sui/cryptography';
|
|
6
|
+
import { Transaction } from '@mysten/sui/transactions';
|
|
7
|
+
import { fromBase64, toBase64 } from '@mysten/sui/utils';
|
|
8
|
+
|
|
9
|
+
type SigningRequestType =
|
|
10
|
+
| 'sign-personal-message'
|
|
11
|
+
| 'sign-transaction'
|
|
12
|
+
| 'sign-and-execute-transaction';
|
|
13
|
+
|
|
14
|
+
interface ExecuteSigningOptions {
|
|
15
|
+
type: SigningRequestType;
|
|
16
|
+
signer: Signer;
|
|
17
|
+
data: string | Uint8Array;
|
|
18
|
+
client?: ClientWithCoreApi;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type SigningResult =
|
|
22
|
+
| { type: 'sign-personal-message'; bytes: string; signature: string }
|
|
23
|
+
| { type: 'sign-transaction'; bytes: string; signature: string }
|
|
24
|
+
| {
|
|
25
|
+
type: 'sign-and-execute-transaction';
|
|
26
|
+
bytes: string;
|
|
27
|
+
signature: string;
|
|
28
|
+
digest: string;
|
|
29
|
+
effects: string;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
// Shared between the embedded DevWallet and the standalone popup request-handler.
|
|
33
|
+
export async function executeSigning({
|
|
34
|
+
type,
|
|
35
|
+
signer,
|
|
36
|
+
data,
|
|
37
|
+
client,
|
|
38
|
+
}: ExecuteSigningOptions): Promise<SigningResult> {
|
|
39
|
+
switch (type) {
|
|
40
|
+
case 'sign-personal-message': {
|
|
41
|
+
if (!(data instanceof Uint8Array)) {
|
|
42
|
+
throw new Error('sign-personal-message expects data to be a Uint8Array');
|
|
43
|
+
}
|
|
44
|
+
const { bytes, signature } = await signer.signPersonalMessage(data);
|
|
45
|
+
return { type, bytes, signature };
|
|
46
|
+
}
|
|
47
|
+
case 'sign-transaction': {
|
|
48
|
+
if (!client) throw new Error('No client provided for sign-transaction');
|
|
49
|
+
if (typeof data !== 'string') {
|
|
50
|
+
throw new Error('sign-transaction expects data to be a JSON string');
|
|
51
|
+
}
|
|
52
|
+
const tx = Transaction.from(data);
|
|
53
|
+
const { bytes, signature } = await tx.sign({ client, signer });
|
|
54
|
+
return { type, bytes, signature };
|
|
55
|
+
}
|
|
56
|
+
case 'sign-and-execute-transaction': {
|
|
57
|
+
if (!client) throw new Error('No client provided for sign-and-execute-transaction');
|
|
58
|
+
if (typeof data !== 'string') {
|
|
59
|
+
throw new Error('sign-and-execute-transaction expects data to be a JSON string');
|
|
60
|
+
}
|
|
61
|
+
const tx = Transaction.from(data);
|
|
62
|
+
const { bytes, signature } = await tx.sign({ client, signer });
|
|
63
|
+
const result = await client.core.executeTransaction({
|
|
64
|
+
transaction: fromBase64(bytes),
|
|
65
|
+
signatures: [signature],
|
|
66
|
+
include: { effects: true },
|
|
67
|
+
});
|
|
68
|
+
const txResult = result.Transaction ?? result.FailedTransaction;
|
|
69
|
+
if (!txResult) {
|
|
70
|
+
throw new Error('Transaction execution returned empty result');
|
|
71
|
+
}
|
|
72
|
+
if (!txResult.status.success) {
|
|
73
|
+
throw new Error(txResult.status.error?.message ?? 'Transaction execution failed');
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
type,
|
|
77
|
+
bytes,
|
|
78
|
+
signature,
|
|
79
|
+
digest: txResult.digest,
|
|
80
|
+
// Empty string when effects BCS is unavailable — the wallet-standard protocol requires a string
|
|
81
|
+
effects: txResult.effects?.bcs ? toBase64(txResult.effects.bcs) : '',
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|