This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import { storeJson } from '../fileModels/storeJson'
|
||||
import { i18n } from '../i18n'
|
||||
import { sdk } from '../sdk'
|
||||
import { dataDir, SPACED_CHAIN } from '../utils'
|
||||
@@ -7,7 +8,6 @@ const { InputSpec, Value } = sdk
|
||||
const BACKUP_DIR = `${dataDir}/${SPACED_CHAIN}/wallets_backup`
|
||||
const BACKUP_PATH = `${BACKUP_DIR}/default.json`
|
||||
const WALLET_DIR = `${dataDir}/${SPACED_CHAIN}/wallets/default`
|
||||
const COOKIE_PATH = `${dataDir}/${SPACED_CHAIN}/.cookie`
|
||||
|
||||
const inputSpec = InputSpec.of({
|
||||
walletJson: Value.textarea({
|
||||
@@ -63,9 +63,23 @@ export const importWallet = sdk.Action.withInput(
|
||||
}
|
||||
}
|
||||
|
||||
const spacedAuth = await storeJson.read((s) => s.spacedAuth).once()
|
||||
if (!spacedAuth) {
|
||||
return {
|
||||
version: '1',
|
||||
title: i18n('Failure'),
|
||||
message: i18n('Could not import wallet: ${error}', {
|
||||
error: 'spacedAuth missing from store.json',
|
||||
}),
|
||||
result: null,
|
||||
}
|
||||
}
|
||||
|
||||
// base64-encode so shell quoting can never break on user content.
|
||||
const b64 = Buffer.from(input.walletJson, 'utf8').toString('base64')
|
||||
|
||||
const cliAuth = `--rpc-user '${spacedAuth.username}' --rpc-password '${spacedAuth.password}'`
|
||||
|
||||
const script = `set -e
|
||||
mkdir -p '${BACKUP_DIR}'
|
||||
|
||||
@@ -93,8 +107,8 @@ if [ -d "$WDIR" ]; then
|
||||
fi
|
||||
|
||||
# Import + load via spaced RPC.
|
||||
/root/.cargo/bin/space-cli --chain ${SPACED_CHAIN} --rpc-cookie '${COOKIE_PATH}' importwallet "$BACKUP"
|
||||
/root/.cargo/bin/space-cli --chain ${SPACED_CHAIN} --rpc-cookie '${COOKIE_PATH}' loadwallet
|
||||
/root/.cargo/bin/space-cli --chain ${SPACED_CHAIN} ${cliAuth} importwallet "$BACKUP"
|
||||
/root/.cargo/bin/space-cli --chain ${SPACED_CHAIN} ${cliAuth} loadwallet
|
||||
`
|
||||
|
||||
const res = await sdk.SubContainer.withTemp(
|
||||
|
||||
Reference in New Issue
Block a user