add sweepAll for Monero send-all; add copy buttons for accounts/subaddresses
This commit is contained in:
@@ -16,6 +16,7 @@ export {
|
||||
getFeeEstimate,
|
||||
getDaemonHeight,
|
||||
transfer,
|
||||
sweepAll,
|
||||
isWalletOpen,
|
||||
isConnected,
|
||||
listWallets,
|
||||
|
||||
@@ -423,6 +423,33 @@ export async function getDaemonHeight(
|
||||
}
|
||||
}
|
||||
|
||||
export async function sweepAll(
|
||||
state: MoneroWalletState,
|
||||
address: string,
|
||||
priority: number = 0,
|
||||
accountIndex: number = 0,
|
||||
): Promise<{ txHash: string; fee: string; amount: string }> {
|
||||
if (!state.wallet) throw new Error('Wallet RPC not started')
|
||||
console.log(
|
||||
`[monero] sweepAll: ${address} priority=${priority} account=${accountIndex}`,
|
||||
)
|
||||
const result = await rawRpc(state, 'sweep_all', {
|
||||
address,
|
||||
priority,
|
||||
account_index: accountIndex,
|
||||
get_tx_keys: true,
|
||||
get_tx_hex: false,
|
||||
get_tx_metadata: false,
|
||||
})
|
||||
const txHash = result.tx_hash_list?.[0] ?? ''
|
||||
const fee = result.fee_list?.[0]?.toString() ?? '0'
|
||||
const amount = result.amount_list?.[0]?.toString() ?? '0'
|
||||
console.log(
|
||||
`[monero] sweepAll result: tx_hash=${txHash} fee=${fee} amount=${amount}`,
|
||||
)
|
||||
return { txHash, fee, amount }
|
||||
}
|
||||
|
||||
export async function transfer(
|
||||
state: MoneroWalletState,
|
||||
address: string,
|
||||
|
||||
@@ -17,6 +17,7 @@ import {
|
||||
getDaemonHeight as walletGetDaemonHeight,
|
||||
getFeeEstimate as walletGetFeeEstimate,
|
||||
transfer as walletTransfer,
|
||||
sweepAll as walletSweepAll,
|
||||
isWalletOpen,
|
||||
isConnected,
|
||||
} from '../../lib/monero'
|
||||
@@ -231,6 +232,30 @@ export function createMoneroHandlers(state: {
|
||||
console.log('[rpc] moneroTransfer complete:', result.txHash)
|
||||
return result
|
||||
},
|
||||
moneroSweepAll: async ({
|
||||
address,
|
||||
priority,
|
||||
accountIndex,
|
||||
}: {
|
||||
address: string
|
||||
priority?: number
|
||||
accountIndex?: number
|
||||
}) => {
|
||||
console.log('[rpc] moneroSweepAll:', {
|
||||
address,
|
||||
priority,
|
||||
})
|
||||
if (!state.manager)
|
||||
throw new Error('Monero wallet RPC not started')
|
||||
const result = await walletSweepAll(
|
||||
state.manager,
|
||||
address,
|
||||
priority ?? 0,
|
||||
accountIndex ?? 0,
|
||||
)
|
||||
console.log('[rpc] moneroSweepAll complete:', result.txHash)
|
||||
return result
|
||||
},
|
||||
moneroGetTransferDetails: async ({ txid }: { txid: string }) => {
|
||||
console.log('[rpc] moneroGetTransferDetails:', txid)
|
||||
if (!state.manager)
|
||||
|
||||
Reference in New Issue
Block a user