@xylabs/aries 0.1.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/README.md +693 -0
- package/dist/actions/audit/auditPaths.mjs +22 -0
- package/dist/actions/audit/auditPaths.mjs.map +1 -0
- package/dist/actions/audit/index.mjs +739 -0
- package/dist/actions/audit/index.mjs.map +1 -0
- package/dist/actions/audit/installPlugin.mjs +298 -0
- package/dist/actions/audit/installPlugin.mjs.map +1 -0
- package/dist/actions/audit/listSessions.mjs +93 -0
- package/dist/actions/audit/listSessions.mjs.map +1 -0
- package/dist/actions/audit/openAuditDir.mjs +44 -0
- package/dist/actions/audit/openAuditDir.mjs.map +1 -0
- package/dist/actions/audit/searchAudit.mjs +77 -0
- package/dist/actions/audit/searchAudit.mjs.map +1 -0
- package/dist/actions/audit/showAiMeta.mjs +105 -0
- package/dist/actions/audit/showAiMeta.mjs.map +1 -0
- package/dist/actions/audit/showSession.mjs +105 -0
- package/dist/actions/audit/showSession.mjs.map +1 -0
- package/dist/actions/audit/statusAudit.mjs +98 -0
- package/dist/actions/audit/statusAudit.mjs.map +1 -0
- package/dist/actions/clamp/clampAudit.mjs +53 -0
- package/dist/actions/clamp/clampAudit.mjs.map +1 -0
- package/dist/actions/clamp/index.mjs +2258 -0
- package/dist/actions/clamp/index.mjs.map +1 -0
- package/dist/actions/clamp/ipcServer.mjs +55 -0
- package/dist/actions/clamp/ipcServer.mjs.map +1 -0
- package/dist/actions/clamp/policyManagement.mjs +144 -0
- package/dist/actions/clamp/policyManagement.mjs.map +1 -0
- package/dist/actions/clamp/promptUser.mjs +91 -0
- package/dist/actions/clamp/promptUser.mjs.map +1 -0
- package/dist/actions/clamp/runClamped.mjs +2107 -0
- package/dist/actions/clamp/runClamped.mjs.map +1 -0
- package/dist/actions/clamp/sandboxExec.mjs +1612 -0
- package/dist/actions/clamp/sandboxExec.mjs.map +1 -0
- package/dist/actions/clamp/shellEnvSetup.mjs +59 -0
- package/dist/actions/clamp/shellEnvSetup.mjs.map +1 -0
- package/dist/actions/clamp/shimGenerator.mjs +68 -0
- package/dist/actions/clamp/shimGenerator.mjs.map +1 -0
- package/dist/actions/clamp/terminalRenderer.mjs +145 -0
- package/dist/actions/clamp/terminalRenderer.mjs.map +1 -0
- package/dist/actions/datalake/audit/auditLog.mjs +191 -0
- package/dist/actions/datalake/audit/auditLog.mjs.map +1 -0
- package/dist/actions/datalake/createDatalake.mjs +127 -0
- package/dist/actions/datalake/createDatalake.mjs.map +1 -0
- package/dist/actions/datalake/describeDatalake.mjs +159 -0
- package/dist/actions/datalake/describeDatalake.mjs.map +1 -0
- package/dist/actions/datalake/destroyDatalake.mjs +34 -0
- package/dist/actions/datalake/destroyDatalake.mjs.map +1 -0
- package/dist/actions/datalake/dev/downDevServer.mjs +102 -0
- package/dist/actions/datalake/dev/downDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/index.mjs +369 -0
- package/dist/actions/datalake/dev/index.mjs.map +1 -0
- package/dist/actions/datalake/dev/logsDevServer.mjs +44 -0
- package/dist/actions/datalake/dev/logsDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/paths.mjs +25 -0
- package/dist/actions/datalake/dev/paths.mjs.map +1 -0
- package/dist/actions/datalake/dev/resetDevServer.mjs +118 -0
- package/dist/actions/datalake/dev/resetDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/resolveServerBin.mjs +26 -0
- package/dist/actions/datalake/dev/resolveServerBin.mjs.map +1 -0
- package/dist/actions/datalake/dev/state.mjs +62 -0
- package/dist/actions/datalake/dev/state.mjs.map +1 -0
- package/dist/actions/datalake/dev/statusDevServer.mjs +101 -0
- package/dist/actions/datalake/dev/statusDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/upDevServer.mjs +221 -0
- package/dist/actions/datalake/dev/upDevServer.mjs.map +1 -0
- package/dist/actions/datalake/dev/waitForHealth.mjs +22 -0
- package/dist/actions/datalake/dev/waitForHealth.mjs.map +1 -0
- package/dist/actions/datalake/formatters.mjs +90 -0
- package/dist/actions/datalake/formatters.mjs.map +1 -0
- package/dist/actions/datalake/grantAccess.mjs +116 -0
- package/dist/actions/datalake/grantAccess.mjs.map +1 -0
- package/dist/actions/datalake/index.mjs +361 -0
- package/dist/actions/datalake/index.mjs.map +1 -0
- package/dist/actions/datalake/listDatalakes.mjs +54 -0
- package/dist/actions/datalake/listDatalakes.mjs.map +1 -0
- package/dist/actions/datalake/login.mjs +20 -0
- package/dist/actions/datalake/login.mjs.map +1 -0
- package/dist/actions/datalake/logout.mjs +11 -0
- package/dist/actions/datalake/logout.mjs.map +1 -0
- package/dist/actions/datalake/mintToken.mjs +37 -0
- package/dist/actions/datalake/mintToken.mjs.map +1 -0
- package/dist/actions/datalake/parseSize.mjs +21 -0
- package/dist/actions/datalake/parseSize.mjs.map +1 -0
- package/dist/actions/datalake/payloads/fetchPayload.mjs +76 -0
- package/dist/actions/datalake/payloads/fetchPayload.mjs.map +1 -0
- package/dist/actions/datalake/payloads/index.mjs +271 -0
- package/dist/actions/datalake/payloads/index.mjs.map +1 -0
- package/dist/actions/datalake/payloads/mintAndConnect.mjs +46 -0
- package/dist/actions/datalake/payloads/mintAndConnect.mjs.map +1 -0
- package/dist/actions/datalake/payloads/parsePayloadsFile.mjs +71 -0
- package/dist/actions/datalake/payloads/parsePayloadsFile.mjs.map +1 -0
- package/dist/actions/datalake/payloads/pushPayloads.mjs +181 -0
- package/dist/actions/datalake/payloads/pushPayloads.mjs.map +1 -0
- package/dist/actions/datalake/payloads/tailPayloads.mjs +106 -0
- package/dist/actions/datalake/payloads/tailPayloads.mjs.map +1 -0
- package/dist/actions/datalake/resolveTarget.mjs +15 -0
- package/dist/actions/datalake/resolveTarget.mjs.map +1 -0
- package/dist/actions/datalake/revokeAccess.mjs +108 -0
- package/dist/actions/datalake/revokeAccess.mjs.map +1 -0
- package/dist/actions/datalake/useDatalake.mjs +22 -0
- package/dist/actions/datalake/useDatalake.mjs.map +1 -0
- package/dist/actions/detect/detectAiClients.mjs +405 -0
- package/dist/actions/detect/detectAiClients.mjs.map +1 -0
- package/dist/actions/detect/index.mjs +405 -0
- package/dist/actions/detect/index.mjs.map +1 -0
- package/dist/actions/hash/algorithms/blockhash.mjs +61 -0
- package/dist/actions/hash/algorithms/blockhash.mjs.map +1 -0
- package/dist/actions/hash/algorithms/chromaprint.mjs +205 -0
- package/dist/actions/hash/algorithms/chromaprint.mjs.map +1 -0
- package/dist/actions/hash/algorithms/dhash.mjs +75 -0
- package/dist/actions/hash/algorithms/dhash.mjs.map +1 -0
- package/dist/actions/hash/algorithms/index.mjs +818 -0
- package/dist/actions/hash/algorithms/index.mjs.map +1 -0
- package/dist/actions/hash/algorithms/nilsimsa.mjs +27 -0
- package/dist/actions/hash/algorithms/nilsimsa.mjs.map +1 -0
- package/dist/actions/hash/algorithms/pdq.mjs +83 -0
- package/dist/actions/hash/algorithms/pdq.mjs.map +1 -0
- package/dist/actions/hash/algorithms/phash.mjs +71 -0
- package/dist/actions/hash/algorithms/phash.mjs.map +1 -0
- package/dist/actions/hash/algorithms/sha256.mjs +24 -0
- package/dist/actions/hash/algorithms/sha256.mjs.map +1 -0
- package/dist/actions/hash/algorithms/ssdeep.mjs +203 -0
- package/dist/actions/hash/algorithms/ssdeep.mjs.map +1 -0
- package/dist/actions/hash/algorithms/tlsh.mjs +66 -0
- package/dist/actions/hash/algorithms/tlsh.mjs.map +1 -0
- package/dist/actions/hash/algorithms/types.mjs +1 -0
- package/dist/actions/hash/algorithms/types.mjs.map +1 -0
- package/dist/actions/hash/algorithms/videoFrames.mjs +404 -0
- package/dist/actions/hash/algorithms/videoFrames.mjs.map +1 -0
- package/dist/actions/hash/algorithms/xyo.mjs +30 -0
- package/dist/actions/hash/algorithms/xyo.mjs.map +1 -0
- package/dist/actions/hash/compareHashes.mjs +823 -0
- package/dist/actions/hash/compareHashes.mjs.map +1 -0
- package/dist/actions/hash/hashInput.mjs +868 -0
- package/dist/actions/hash/hashInput.mjs.map +1 -0
- package/dist/actions/hash/index.mjs +881 -0
- package/dist/actions/hash/index.mjs.map +1 -0
- package/dist/actions/hash/lib/hamming.mjs +44 -0
- package/dist/actions/hash/lib/hamming.mjs.map +1 -0
- package/dist/actions/hash/lib/levenshtein.mjs +36 -0
- package/dist/actions/hash/lib/levenshtein.mjs.map +1 -0
- package/dist/actions/hash/lib/runBinary.mjs +54 -0
- package/dist/actions/hash/lib/runBinary.mjs.map +1 -0
- package/dist/actions/hash/lib/which.mjs +36 -0
- package/dist/actions/hash/lib/which.mjs.map +1 -0
- package/dist/actions/hash/lib/withTempfile.mjs +19 -0
- package/dist/actions/hash/lib/withTempfile.mjs.map +1 -0
- package/dist/actions/index.mjs +4615 -0
- package/dist/actions/index.mjs.map +1 -0
- package/dist/actions/printVersion.mjs +12 -0
- package/dist/actions/printVersion.mjs.map +1 -0
- package/dist/actions/sync/index.mjs +51 -0
- package/dist/actions/sync/index.mjs.map +1 -0
- package/dist/actions/sync/syncAiConfig.mjs +51 -0
- package/dist/actions/sync/syncAiConfig.mjs.map +1 -0
- package/dist/actions/wallet/account/deriveAndAdd.mjs +394 -0
- package/dist/actions/wallet/account/deriveAndAdd.mjs.map +1 -0
- package/dist/actions/wallet/account/getActiveWallet.mjs +338 -0
- package/dist/actions/wallet/account/getActiveWallet.mjs.map +1 -0
- package/dist/actions/wallet/account/labelAccount.mjs +389 -0
- package/dist/actions/wallet/account/labelAccount.mjs.map +1 -0
- package/dist/actions/wallet/account/listAccounts.mjs +374 -0
- package/dist/actions/wallet/account/listAccounts.mjs.map +1 -0
- package/dist/actions/wallet/account/removeAccount.mjs +384 -0
- package/dist/actions/wallet/account/removeAccount.mjs.map +1 -0
- package/dist/actions/wallet/account/showAccount.mjs +368 -0
- package/dist/actions/wallet/account/showAccount.mjs.map +1 -0
- package/dist/actions/wallet/addressBook/storage.mjs +110 -0
- package/dist/actions/wallet/addressBook/storage.mjs.map +1 -0
- package/dist/actions/wallet/backup/exportBackup.mjs +93 -0
- package/dist/actions/wallet/backup/exportBackup.mjs.map +1 -0
- package/dist/actions/wallet/backup/importBackup.mjs +142 -0
- package/dist/actions/wallet/backup/importBackup.mjs.map +1 -0
- package/dist/actions/wallet/balance/getBalance.mjs +434 -0
- package/dist/actions/wallet/balance/getBalance.mjs.map +1 -0
- package/dist/actions/wallet/client/walletClient.mjs +64 -0
- package/dist/actions/wallet/client/walletClient.mjs.map +1 -0
- package/dist/actions/wallet/contact/contactActions.mjs +120 -0
- package/dist/actions/wallet/contact/contactActions.mjs.map +1 -0
- package/dist/actions/wallet/contact/storage.mjs +69 -0
- package/dist/actions/wallet/contact/storage.mjs.map +1 -0
- package/dist/actions/wallet/index.mjs +1439 -0
- package/dist/actions/wallet/index.mjs.map +1 -0
- package/dist/actions/wallet/network/networkActions.mjs +137 -0
- package/dist/actions/wallet/network/networkActions.mjs.map +1 -0
- package/dist/actions/wallet/network/storage.mjs +93 -0
- package/dist/actions/wallet/network/storage.mjs.map +1 -0
- package/dist/actions/wallet/password/changePassword.mjs +282 -0
- package/dist/actions/wallet/password/changePassword.mjs.map +1 -0
- package/dist/actions/wallet/password/getActiveKey.mjs +297 -0
- package/dist/actions/wallet/password/getActiveKey.mjs.map +1 -0
- package/dist/actions/wallet/password/initOrUnlock.mjs +337 -0
- package/dist/actions/wallet/password/initOrUnlock.mjs.map +1 -0
- package/dist/actions/wallet/password/passwordStorage.mjs +69 -0
- package/dist/actions/wallet/password/passwordStorage.mjs.map +1 -0
- package/dist/actions/wallet/password/setPassword.mjs +138 -0
- package/dist/actions/wallet/password/setPassword.mjs.map +1 -0
- package/dist/actions/wallet/password/validatePassword.mjs +123 -0
- package/dist/actions/wallet/password/validatePassword.mjs.map +1 -0
- package/dist/actions/wallet/passwordKey.mjs +87 -0
- package/dist/actions/wallet/passwordKey.mjs.map +1 -0
- package/dist/actions/wallet/paths.mjs +26 -0
- package/dist/actions/wallet/paths.mjs.map +1 -0
- package/dist/actions/wallet/prompt.mjs +93 -0
- package/dist/actions/wallet/prompt.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/createPhrase.mjs +392 -0
- package/dist/actions/wallet/seedPhrase/createPhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/exportPhrase.mjs +334 -0
- package/dist/actions/wallet/seedPhrase/exportPhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/idGen.mjs +11 -0
- package/dist/actions/wallet/seedPhrase/idGen.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/importPhrase.mjs +393 -0
- package/dist/actions/wallet/seedPhrase/importPhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/listPhrases.mjs +62 -0
- package/dist/actions/wallet/seedPhrase/listPhrases.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/phraseStorage.mjs +89 -0
- package/dist/actions/wallet/seedPhrase/phraseStorage.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/removePhrase.mjs +366 -0
- package/dist/actions/wallet/seedPhrase/removePhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/renamePhrase.mjs +78 -0
- package/dist/actions/wallet/seedPhrase/renamePhrase.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/types.mjs +1 -0
- package/dist/actions/wallet/seedPhrase/types.mjs.map +1 -0
- package/dist/actions/wallet/seedPhrase/usePhrase.mjs +83 -0
- package/dist/actions/wallet/seedPhrase/usePhrase.mjs.map +1 -0
- package/dist/actions/wallet/session/machineId.mjs +145 -0
- package/dist/actions/wallet/session/machineId.mjs.map +1 -0
- package/dist/actions/wallet/session/sessionCache.mjs +221 -0
- package/dist/actions/wallet/session/sessionCache.mjs.map +1 -0
- package/dist/actions/wallet/session/unlock.mjs +307 -0
- package/dist/actions/wallet/session/unlock.mjs.map +1 -0
- package/dist/actions/wallet/sign/signPayload.mjs +637 -0
- package/dist/actions/wallet/sign/signPayload.mjs.map +1 -0
- package/dist/actions/wallet/storage.mjs +51 -0
- package/dist/actions/wallet/storage.mjs.map +1 -0
- package/dist/actions/wallet/transaction/broadcastTransaction.mjs +453 -0
- package/dist/actions/wallet/transaction/broadcastTransaction.mjs.map +1 -0
- package/dist/actions/wallet/transaction/sendTransaction.mjs +457 -0
- package/dist/actions/wallet/transaction/sendTransaction.mjs.map +1 -0
- package/dist/actions/wallet/transaction/signTransactionFile.mjs +378 -0
- package/dist/actions/wallet/transaction/signTransactionFile.mjs.map +1 -0
- package/dist/actions/xyo/index.mjs +138 -0
- package/dist/actions/xyo/index.mjs.map +1 -0
- package/dist/actions/xyo/transaction/index.mjs +138 -0
- package/dist/actions/xyo/transaction/index.mjs.map +1 -0
- package/dist/actions/xyo/transaction/validateTransactions.mjs +138 -0
- package/dist/actions/xyo/transaction/validateTransactions.mjs.map +1 -0
- package/dist/aries.mjs +8466 -0
- package/dist/aries.mjs.map +1 -0
- package/dist/bin/aries.mjs +8472 -0
- package/dist/bin/aries.mjs.map +1 -0
- package/dist/commands/aiCommand.mjs +492 -0
- package/dist/commands/aiCommand.mjs.map +1 -0
- package/dist/commands/auditAiCommand.mjs +119 -0
- package/dist/commands/auditAiCommand.mjs.map +1 -0
- package/dist/commands/auditCommand.mjs +857 -0
- package/dist/commands/auditCommand.mjs.map +1 -0
- package/dist/commands/auditInstallCommand.mjs +324 -0
- package/dist/commands/auditInstallCommand.mjs.map +1 -0
- package/dist/commands/auditListCommand.mjs +107 -0
- package/dist/commands/auditListCommand.mjs.map +1 -0
- package/dist/commands/auditOpenCommand.mjs +51 -0
- package/dist/commands/auditOpenCommand.mjs.map +1 -0
- package/dist/commands/auditSearchCommand.mjs +98 -0
- package/dist/commands/auditSearchCommand.mjs.map +1 -0
- package/dist/commands/auditShowCommand.mjs +123 -0
- package/dist/commands/auditShowCommand.mjs.map +1 -0
- package/dist/commands/auditStatusCommand.mjs +105 -0
- package/dist/commands/auditStatusCommand.mjs.map +1 -0
- package/dist/commands/clampCommand.mjs +2328 -0
- package/dist/commands/clampCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyCommand.mjs +184 -0
- package/dist/commands/clampPolicyCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyInitCommand.mjs +63 -0
- package/dist/commands/clampPolicyInitCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyListCommand.mjs +56 -0
- package/dist/commands/clampPolicyListCommand.mjs.map +1 -0
- package/dist/commands/clampPolicyShowCommand.mjs +83 -0
- package/dist/commands/clampPolicyShowCommand.mjs.map +1 -0
- package/dist/commands/clampRunCommand.mjs +2137 -0
- package/dist/commands/clampRunCommand.mjs.map +1 -0
- package/dist/commands/datalakeAuditCommand.mjs +273 -0
- package/dist/commands/datalakeAuditCommand.mjs.map +1 -0
- package/dist/commands/datalakeCommand.mjs +1637 -0
- package/dist/commands/datalakeCommand.mjs.map +1 -0
- package/dist/commands/datalakeCreateCommand.mjs +189 -0
- package/dist/commands/datalakeCreateCommand.mjs.map +1 -0
- package/dist/commands/datalakeDescribeCommand.mjs +172 -0
- package/dist/commands/datalakeDescribeCommand.mjs.map +1 -0
- package/dist/commands/datalakeDestroyCommand.mjs +53 -0
- package/dist/commands/datalakeDestroyCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevCommand.mjs +470 -0
- package/dist/commands/datalakeDevCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevDownCommand.mjs +111 -0
- package/dist/commands/datalakeDevDownCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevLogsCommand.mjs +65 -0
- package/dist/commands/datalakeDevLogsCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevResetCommand.mjs +125 -0
- package/dist/commands/datalakeDevResetCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevStatusCommand.mjs +110 -0
- package/dist/commands/datalakeDevStatusCommand.mjs.map +1 -0
- package/dist/commands/datalakeDevUpCommand.mjs +268 -0
- package/dist/commands/datalakeDevUpCommand.mjs.map +1 -0
- package/dist/commands/datalakeFetchCommand.mjs +106 -0
- package/dist/commands/datalakeFetchCommand.mjs.map +1 -0
- package/dist/commands/datalakeGrantCommand.mjs +147 -0
- package/dist/commands/datalakeGrantCommand.mjs.map +1 -0
- package/dist/commands/datalakeListCommand.mjs +61 -0
- package/dist/commands/datalakeListCommand.mjs.map +1 -0
- package/dist/commands/datalakeLoginCommand.mjs +39 -0
- package/dist/commands/datalakeLoginCommand.mjs.map +1 -0
- package/dist/commands/datalakeLogoutCommand.mjs +20 -0
- package/dist/commands/datalakeLogoutCommand.mjs.map +1 -0
- package/dist/commands/datalakePushCommand.mjs +214 -0
- package/dist/commands/datalakePushCommand.mjs.map +1 -0
- package/dist/commands/datalakeRevokeCommand.mjs +127 -0
- package/dist/commands/datalakeRevokeCommand.mjs.map +1 -0
- package/dist/commands/datalakeTailCommand.mjs +144 -0
- package/dist/commands/datalakeTailCommand.mjs.map +1 -0
- package/dist/commands/datalakeTokenCommand.mjs +61 -0
- package/dist/commands/datalakeTokenCommand.mjs.map +1 -0
- package/dist/commands/datalakeUseCommand.mjs +35 -0
- package/dist/commands/datalakeUseCommand.mjs.map +1 -0
- package/dist/commands/detectCommand.mjs +419 -0
- package/dist/commands/detectCommand.mjs.map +1 -0
- package/dist/commands/hashCommand.mjs +976 -0
- package/dist/commands/hashCommand.mjs.map +1 -0
- package/dist/commands/hashCompareCommand.mjs +865 -0
- package/dist/commands/hashCompareCommand.mjs.map +1 -0
- package/dist/commands/index.mjs +8461 -0
- package/dist/commands/index.mjs.map +1 -0
- package/dist/commands/syncCommand.mjs +66 -0
- package/dist/commands/syncCommand.mjs.map +1 -0
- package/dist/commands/versionCommand.mjs +24 -0
- package/dist/commands/versionCommand.mjs.map +1 -0
- package/dist/commands/walletAccountCommand.mjs +536 -0
- package/dist/commands/walletAccountCommand.mjs.map +1 -0
- package/dist/commands/walletAccountDeriveCommand.mjs +415 -0
- package/dist/commands/walletAccountDeriveCommand.mjs.map +1 -0
- package/dist/commands/walletAccountLabelCommand.mjs +405 -0
- package/dist/commands/walletAccountLabelCommand.mjs.map +1 -0
- package/dist/commands/walletAccountListCommand.mjs +381 -0
- package/dist/commands/walletAccountListCommand.mjs.map +1 -0
- package/dist/commands/walletAccountRemoveCommand.mjs +396 -0
- package/dist/commands/walletAccountRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletAccountShowCommand.mjs +380 -0
- package/dist/commands/walletAccountShowCommand.mjs.map +1 -0
- package/dist/commands/walletBackupCommand.mjs +222 -0
- package/dist/commands/walletBackupCommand.mjs.map +1 -0
- package/dist/commands/walletBackupExportCommand.mjs +107 -0
- package/dist/commands/walletBackupExportCommand.mjs.map +1 -0
- package/dist/commands/walletBackupImportCommand.mjs +154 -0
- package/dist/commands/walletBackupImportCommand.mjs.map +1 -0
- package/dist/commands/walletBalanceCommand.mjs +448 -0
- package/dist/commands/walletBalanceCommand.mjs.map +1 -0
- package/dist/commands/walletCommand.mjs +1968 -0
- package/dist/commands/walletCommand.mjs.map +1 -0
- package/dist/commands/walletContactAddCommand.mjs +111 -0
- package/dist/commands/walletContactAddCommand.mjs.map +1 -0
- package/dist/commands/walletContactCommand.mjs +184 -0
- package/dist/commands/walletContactCommand.mjs.map +1 -0
- package/dist/commands/walletContactListCommand.mjs +66 -0
- package/dist/commands/walletContactListCommand.mjs.map +1 -0
- package/dist/commands/walletContactRemoveCommand.mjs +97 -0
- package/dist/commands/walletContactRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletContactRenameCommand.mjs +114 -0
- package/dist/commands/walletContactRenameCommand.mjs.map +1 -0
- package/dist/commands/walletCreateCommand.mjs +407 -0
- package/dist/commands/walletCreateCommand.mjs.map +1 -0
- package/dist/commands/walletExportCommand.mjs +345 -0
- package/dist/commands/walletExportCommand.mjs.map +1 -0
- package/dist/commands/walletImportCommand.mjs +413 -0
- package/dist/commands/walletImportCommand.mjs.map +1 -0
- package/dist/commands/walletListCommand.mjs +69 -0
- package/dist/commands/walletListCommand.mjs.map +1 -0
- package/dist/commands/walletLockCommand.mjs +56 -0
- package/dist/commands/walletLockCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkAddCommand.mjs +131 -0
- package/dist/commands/walletNetworkAddCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkCommand.mjs +206 -0
- package/dist/commands/walletNetworkCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkListCommand.mjs +104 -0
- package/dist/commands/walletNetworkListCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkRemoveCommand.mjs +112 -0
- package/dist/commands/walletNetworkRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletNetworkUseCommand.mjs +110 -0
- package/dist/commands/walletNetworkUseCommand.mjs.map +1 -0
- package/dist/commands/walletPasswordChangeCommand.mjs +291 -0
- package/dist/commands/walletPasswordChangeCommand.mjs.map +1 -0
- package/dist/commands/walletPasswordCommand.mjs +301 -0
- package/dist/commands/walletPasswordCommand.mjs.map +1 -0
- package/dist/commands/walletRemoveCommand.mjs +378 -0
- package/dist/commands/walletRemoveCommand.mjs.map +1 -0
- package/dist/commands/walletRenameCommand.mjs +94 -0
- package/dist/commands/walletRenameCommand.mjs.map +1 -0
- package/dist/commands/walletSignCommand.mjs +662 -0
- package/dist/commands/walletSignCommand.mjs.map +1 -0
- package/dist/commands/walletTxBroadcastCommand.mjs +473 -0
- package/dist/commands/walletTxBroadcastCommand.mjs.map +1 -0
- package/dist/commands/walletTxCommand.mjs +612 -0
- package/dist/commands/walletTxCommand.mjs.map +1 -0
- package/dist/commands/walletTxSendCommand.mjs +492 -0
- package/dist/commands/walletTxSendCommand.mjs.map +1 -0
- package/dist/commands/walletTxSignCommand.mjs +403 -0
- package/dist/commands/walletTxSignCommand.mjs.map +1 -0
- package/dist/commands/walletUnlockCommand.mjs +308 -0
- package/dist/commands/walletUnlockCommand.mjs.map +1 -0
- package/dist/commands/walletUseCommand.mjs +95 -0
- package/dist/commands/walletUseCommand.mjs.map +1 -0
- package/dist/commands/xyoCommand.mjs +188 -0
- package/dist/commands/xyoCommand.mjs.map +1 -0
- package/dist/commands/xyoTxCommand.mjs +178 -0
- package/dist/commands/xyoTxCommand.mjs.map +1 -0
- package/dist/commands/xyoTxValidateCommand.mjs +168 -0
- package/dist/commands/xyoTxValidateCommand.mjs.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.mjs +8466 -0
- package/dist/index.mjs.map +1 -0
- package/dist/types/modules.d.mjs +1 -0
- package/dist/types/modules.d.mjs.map +1 -0
- package/package.json +197 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
// src/actions/wallet/paths.ts
|
|
2
|
+
import OS from "os";
|
|
3
|
+
import PATH from "path";
|
|
4
|
+
function walletRoot() {
|
|
5
|
+
const override = process.env.ARIES_WALLET_HOME;
|
|
6
|
+
if (override) return override;
|
|
7
|
+
return PATH.join(OS.homedir(), ".aries", "wallet");
|
|
8
|
+
}
|
|
9
|
+
function walletPaths(root = walletRoot()) {
|
|
10
|
+
return {
|
|
11
|
+
root,
|
|
12
|
+
password: PATH.join(root, "password.json"),
|
|
13
|
+
phrases: PATH.join(root, "phrases.json"),
|
|
14
|
+
active: PATH.join(root, "active.json"),
|
|
15
|
+
addressBooks: PATH.join(root, "address-books.json"),
|
|
16
|
+
contacts: PATH.join(root, "contacts.json"),
|
|
17
|
+
networks: PATH.join(root, "networks.json"),
|
|
18
|
+
session: PATH.join(root, "session.json"),
|
|
19
|
+
machineId: PATH.join(root, ".machine-id")
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// src/actions/wallet/storage.ts
|
|
24
|
+
import FS from "fs";
|
|
25
|
+
import PATH2 from "path";
|
|
26
|
+
function ensureWalletDir(root = walletRoot()) {
|
|
27
|
+
if (!FS.existsSync(root)) {
|
|
28
|
+
FS.mkdirSync(root, { recursive: true, mode: 448 });
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
FS.chmodSync(root, 448);
|
|
33
|
+
} catch {
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function readJsonFile(file) {
|
|
37
|
+
if (!FS.existsSync(file)) return void 0;
|
|
38
|
+
const raw = FS.readFileSync(file, "utf8");
|
|
39
|
+
if (raw.trim().length === 0) return void 0;
|
|
40
|
+
return JSON.parse(raw);
|
|
41
|
+
}
|
|
42
|
+
function writeJsonFile(file, value) {
|
|
43
|
+
ensureWalletDir(PATH2.dirname(file));
|
|
44
|
+
const tmp = `${file}.tmp`;
|
|
45
|
+
FS.writeFileSync(tmp, `${JSON.stringify(value, null, 2)}
|
|
46
|
+
`, { mode: 384 });
|
|
47
|
+
FS.renameSync(tmp, file);
|
|
48
|
+
try {
|
|
49
|
+
FS.chmodSync(file, 384);
|
|
50
|
+
} catch {
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// src/actions/wallet/contact/storage.ts
|
|
55
|
+
var CONTACTS_VERSION = 1;
|
|
56
|
+
function readContacts() {
|
|
57
|
+
return readJsonFile(walletPaths().contacts) ?? {
|
|
58
|
+
entries: [],
|
|
59
|
+
version: CONTACTS_VERSION
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function writeContacts(file) {
|
|
63
|
+
writeJsonFile(walletPaths().contacts, file);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// src/actions/wallet/contact/contactActions.ts
|
|
67
|
+
import chalk from "chalk";
|
|
68
|
+
function normalize(address) {
|
|
69
|
+
return address.toLowerCase();
|
|
70
|
+
}
|
|
71
|
+
function listContacts() {
|
|
72
|
+
const file = readContacts();
|
|
73
|
+
if (file.entries.length === 0) {
|
|
74
|
+
console.log(chalk.gray("No contacts. Run `aries wallet contact add <address> <label>` to add one."));
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
for (const entry of file.entries) {
|
|
78
|
+
console.log(` ${chalk.white(entry.label.padEnd(20))} ${entry.address}`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function addContact(address, label) {
|
|
82
|
+
const file = readContacts();
|
|
83
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
84
|
+
const normalized = normalize(address);
|
|
85
|
+
const existing = file.entries.find((e) => normalize(e.address) === normalized);
|
|
86
|
+
if (existing) {
|
|
87
|
+
existing.label = label;
|
|
88
|
+
existing.updatedAt = now;
|
|
89
|
+
} else {
|
|
90
|
+
file.entries.push({
|
|
91
|
+
address: normalized,
|
|
92
|
+
label,
|
|
93
|
+
createdAt: now,
|
|
94
|
+
updatedAt: now
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
writeContacts(file);
|
|
98
|
+
console.log(chalk.green(`Saved contact ${chalk.cyan(label)} (${normalized})`));
|
|
99
|
+
}
|
|
100
|
+
function renameContact(address, label) {
|
|
101
|
+
addContact(address, label);
|
|
102
|
+
}
|
|
103
|
+
function removeContact(address) {
|
|
104
|
+
const file = readContacts();
|
|
105
|
+
const normalized = normalize(address);
|
|
106
|
+
const before = file.entries.length;
|
|
107
|
+
file.entries = file.entries.filter((e) => normalize(e.address) !== normalized);
|
|
108
|
+
if (file.entries.length === before) throw new Error(`Contact not found: ${address}`);
|
|
109
|
+
writeContacts(file);
|
|
110
|
+
console.log(chalk.green(`Removed contact ${normalized}`));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// src/commands/walletContactAddCommand.ts
|
|
114
|
+
var walletContactAddCommand = {
|
|
115
|
+
command: "add <address> <label>",
|
|
116
|
+
describe: "Add or update a contact",
|
|
117
|
+
builder: (yargs) => yargs.positional("address", {
|
|
118
|
+
type: "string",
|
|
119
|
+
demandOption: true,
|
|
120
|
+
describe: "Address (0x...)"
|
|
121
|
+
}).positional("label", {
|
|
122
|
+
type: "string",
|
|
123
|
+
demandOption: true,
|
|
124
|
+
describe: "Friendly label"
|
|
125
|
+
}),
|
|
126
|
+
handler: (argv) => {
|
|
127
|
+
addContact(argv.address, argv.label);
|
|
128
|
+
}
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
// src/commands/walletContactListCommand.ts
|
|
132
|
+
var walletContactListCommand = {
|
|
133
|
+
command: "list",
|
|
134
|
+
describe: "List address-book contacts",
|
|
135
|
+
handler: () => {
|
|
136
|
+
listContacts();
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
// src/commands/walletContactRemoveCommand.ts
|
|
141
|
+
var walletContactRemoveCommand = {
|
|
142
|
+
command: "remove <address>",
|
|
143
|
+
describe: "Remove a contact",
|
|
144
|
+
builder: (yargs) => yargs.positional("address", {
|
|
145
|
+
type: "string",
|
|
146
|
+
demandOption: true,
|
|
147
|
+
describe: "Address (0x...)"
|
|
148
|
+
}),
|
|
149
|
+
handler: (argv) => {
|
|
150
|
+
removeContact(argv.address);
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
// src/commands/walletContactRenameCommand.ts
|
|
155
|
+
var walletContactRenameCommand = {
|
|
156
|
+
command: "rename <address> <label>",
|
|
157
|
+
describe: "Rename an existing contact",
|
|
158
|
+
builder: (yargs) => yargs.positional("address", {
|
|
159
|
+
type: "string",
|
|
160
|
+
demandOption: true,
|
|
161
|
+
describe: "Address (0x...)"
|
|
162
|
+
}).positional("label", {
|
|
163
|
+
type: "string",
|
|
164
|
+
demandOption: true,
|
|
165
|
+
describe: "New label"
|
|
166
|
+
}),
|
|
167
|
+
handler: (argv) => {
|
|
168
|
+
renameContact(argv.address, argv.label);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
// src/commands/walletContactCommand.ts
|
|
173
|
+
var walletContactCommand = {
|
|
174
|
+
command: "contact",
|
|
175
|
+
describe: "Manage external address-book contacts",
|
|
176
|
+
builder: (yargs) => yargs.command(walletContactListCommand).command(walletContactAddCommand).command(walletContactRenameCommand).command(walletContactRemoveCommand).demandCommand(1).strictCommands(),
|
|
177
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
178
|
+
handler: () => {
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
export {
|
|
182
|
+
walletContactCommand
|
|
183
|
+
};
|
|
184
|
+
//# sourceMappingURL=walletContactCommand.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/actions/wallet/paths.ts","../../src/actions/wallet/storage.ts","../../src/actions/wallet/contact/storage.ts","../../src/actions/wallet/contact/contactActions.ts","../../src/commands/walletContactAddCommand.ts","../../src/commands/walletContactListCommand.ts","../../src/commands/walletContactRemoveCommand.ts","../../src/commands/walletContactRenameCommand.ts","../../src/commands/walletContactCommand.ts"],"sourcesContent":["import OS from 'node:os'\nimport PATH from 'node:path'\n\nexport interface WalletPaths {\n root: string\n password: string\n phrases: string\n active: string\n addressBooks: string\n contacts: string\n networks: string\n session: string\n machineId: string\n}\n\nexport function walletRoot(): string {\n const override = process.env.ARIES_WALLET_HOME\n if (override) return override\n return PATH.join(OS.homedir(), '.aries', 'wallet')\n}\n\nexport function walletPaths(root: string = walletRoot()): WalletPaths {\n return {\n root,\n password: PATH.join(root, 'password.json'),\n phrases: PATH.join(root, 'phrases.json'),\n active: PATH.join(root, 'active.json'),\n addressBooks: PATH.join(root, 'address-books.json'),\n contacts: PATH.join(root, 'contacts.json'),\n networks: PATH.join(root, 'networks.json'),\n session: PATH.join(root, 'session.json'),\n machineId: PATH.join(root, '.machine-id'),\n }\n}\n","import FS from 'node:fs'\nimport PATH from 'node:path'\n\nimport { walletRoot } from './paths.ts'\n\nexport function ensureWalletDir(root: string = walletRoot()): void {\n if (!FS.existsSync(root)) {\n FS.mkdirSync(root, { recursive: true, mode: 0o700 })\n return\n }\n try {\n FS.chmodSync(root, 0o700)\n } catch {\n // best-effort on platforms without chmod\n }\n}\n\nexport function readJsonFile<T>(file: string): T | undefined {\n if (!FS.existsSync(file)) return undefined\n const raw = FS.readFileSync(file, 'utf8')\n if (raw.trim().length === 0) return undefined\n return JSON.parse(raw) as T\n}\n\nexport function writeJsonFile(file: string, value: unknown): void {\n ensureWalletDir(PATH.dirname(file))\n const tmp = `${file}.tmp`\n FS.writeFileSync(tmp, `${JSON.stringify(value, null, 2)}\\n`, { mode: 0o600 })\n FS.renameSync(tmp, file)\n try {\n FS.chmodSync(file, 0o600)\n } catch {\n // best-effort\n }\n}\n\nexport function deleteFile(file: string): void {\n if (FS.existsSync(file)) FS.unlinkSync(file)\n}\n","import { walletPaths } from '../paths.ts'\nimport { readJsonFile, writeJsonFile } from '../storage.ts'\n\nexport interface ContactEntry {\n address: string\n label: string\n createdAt: string\n updatedAt: string\n}\n\nexport interface ContactsFile {\n entries: ContactEntry[]\n version: number\n}\n\nconst CONTACTS_VERSION = 1\n\nexport function readContacts(): ContactsFile {\n return readJsonFile<ContactsFile>(walletPaths().contacts) ?? {\n entries: [],\n version: CONTACTS_VERSION,\n }\n}\n\nexport function writeContacts(file: ContactsFile): void {\n writeJsonFile(walletPaths().contacts, file)\n}\n","import chalk from 'chalk'\n\nimport { readContacts, writeContacts } from './storage.ts'\n\nfunction normalize(address: string): string {\n return address.toLowerCase()\n}\n\nexport function listContacts(): void {\n const file = readContacts()\n if (file.entries.length === 0) {\n console.log(chalk.gray('No contacts. Run `aries wallet contact add <address> <label>` to add one.'))\n return\n }\n for (const entry of file.entries) {\n console.log(` ${chalk.white(entry.label.padEnd(20))} ${entry.address}`)\n }\n}\n\nexport function addContact(address: string, label: string): void {\n const file = readContacts()\n const now = new Date().toISOString()\n const normalized = normalize(address)\n const existing = file.entries.find(e => normalize(e.address) === normalized)\n if (existing) {\n existing.label = label\n existing.updatedAt = now\n } else {\n file.entries.push({\n address: normalized, label, createdAt: now, updatedAt: now,\n })\n }\n writeContacts(file)\n console.log(chalk.green(`Saved contact ${chalk.cyan(label)} (${normalized})`))\n}\n\nexport function renameContact(address: string, label: string): void {\n addContact(address, label)\n}\n\nexport function removeContact(address: string): void {\n const file = readContacts()\n const normalized = normalize(address)\n const before = file.entries.length\n file.entries = file.entries.filter(e => normalize(e.address) !== normalized)\n if (file.entries.length === before) throw new Error(`Contact not found: ${address}`)\n writeContacts(file)\n console.log(chalk.green(`Removed contact ${normalized}`))\n}\n","import type { CommandModule } from 'yargs'\n\nimport { addContact } from '../actions/wallet/index.ts'\n\nexport const walletContactAddCommand: CommandModule = {\n command: 'add <address> <label>',\n describe: 'Add or update a contact',\n builder: yargs =>\n yargs\n .positional('address', {\n type: 'string', demandOption: true, describe: 'Address (0x...)',\n })\n .positional('label', {\n type: 'string', demandOption: true, describe: 'Friendly label',\n }),\n handler: (argv) => {\n addContact(argv.address as string, argv.label as string)\n },\n}\n","import type { CommandModule } from 'yargs'\n\nimport { listContacts } from '../actions/wallet/index.ts'\n\nexport const walletContactListCommand: CommandModule = {\n command: 'list',\n describe: 'List address-book contacts',\n handler: () => {\n listContacts()\n },\n}\n","import type { CommandModule } from 'yargs'\n\nimport { removeContact } from '../actions/wallet/index.ts'\n\nexport const walletContactRemoveCommand: CommandModule = {\n command: 'remove <address>',\n describe: 'Remove a contact',\n builder: yargs =>\n yargs.positional('address', {\n type: 'string', demandOption: true, describe: 'Address (0x...)',\n }),\n handler: (argv) => {\n removeContact(argv.address as string)\n },\n}\n","import type { CommandModule } from 'yargs'\n\nimport { renameContact } from '../actions/wallet/index.ts'\n\nexport const walletContactRenameCommand: CommandModule = {\n command: 'rename <address> <label>',\n describe: 'Rename an existing contact',\n builder: yargs =>\n yargs\n .positional('address', {\n type: 'string', demandOption: true, describe: 'Address (0x...)',\n })\n .positional('label', {\n type: 'string', demandOption: true, describe: 'New label',\n }),\n handler: (argv) => {\n renameContact(argv.address as string, argv.label as string)\n },\n}\n","import type { CommandModule } from 'yargs'\n\nimport { walletContactAddCommand } from './walletContactAddCommand.ts'\nimport { walletContactListCommand } from './walletContactListCommand.ts'\nimport { walletContactRemoveCommand } from './walletContactRemoveCommand.ts'\nimport { walletContactRenameCommand } from './walletContactRenameCommand.ts'\n\nexport const walletContactCommand: CommandModule = {\n command: 'contact',\n describe: 'Manage external address-book contacts',\n builder: yargs =>\n yargs\n .command(walletContactListCommand)\n .command(walletContactAddCommand)\n .command(walletContactRenameCommand)\n .command(walletContactRemoveCommand)\n .demandCommand(1)\n .strictCommands(),\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n handler: () => {},\n}\n"],"mappings":";AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AAcV,SAAS,aAAqB;AACnC,QAAM,WAAW,QAAQ,IAAI;AAC7B,MAAI,SAAU,QAAO;AACrB,SAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,UAAU,QAAQ;AACnD;AAEO,SAAS,YAAY,OAAe,WAAW,GAAgB;AACpE,SAAO;AAAA,IACL;AAAA,IACA,UAAU,KAAK,KAAK,MAAM,eAAe;AAAA,IACzC,SAAS,KAAK,KAAK,MAAM,cAAc;AAAA,IACvC,QAAQ,KAAK,KAAK,MAAM,aAAa;AAAA,IACrC,cAAc,KAAK,KAAK,MAAM,oBAAoB;AAAA,IAClD,UAAU,KAAK,KAAK,MAAM,eAAe;AAAA,IACzC,UAAU,KAAK,KAAK,MAAM,eAAe;AAAA,IACzC,SAAS,KAAK,KAAK,MAAM,cAAc;AAAA,IACvC,WAAW,KAAK,KAAK,MAAM,aAAa;AAAA,EAC1C;AACF;;;ACjCA,OAAO,QAAQ;AACf,OAAOA,WAAU;AAIV,SAAS,gBAAgB,OAAe,WAAW,GAAS;AACjE,MAAI,CAAC,GAAG,WAAW,IAAI,GAAG;AACxB,OAAG,UAAU,MAAM,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AACnD;AAAA,EACF;AACA,MAAI;AACF,OAAG,UAAU,MAAM,GAAK;AAAA,EAC1B,QAAQ;AAAA,EAER;AACF;AAEO,SAAS,aAAgB,MAA6B;AAC3D,MAAI,CAAC,GAAG,WAAW,IAAI,EAAG,QAAO;AACjC,QAAM,MAAM,GAAG,aAAa,MAAM,MAAM;AACxC,MAAI,IAAI,KAAK,EAAE,WAAW,EAAG,QAAO;AACpC,SAAO,KAAK,MAAM,GAAG;AACvB;AAEO,SAAS,cAAc,MAAc,OAAsB;AAChE,kBAAgBC,MAAK,QAAQ,IAAI,CAAC;AAClC,QAAM,MAAM,GAAG,IAAI;AACnB,KAAG,cAAc,KAAK,GAAG,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AAAA,GAAM,EAAE,MAAM,IAAM,CAAC;AAC5E,KAAG,WAAW,KAAK,IAAI;AACvB,MAAI;AACF,OAAG,UAAU,MAAM,GAAK;AAAA,EAC1B,QAAQ;AAAA,EAER;AACF;;;ACnBA,IAAM,mBAAmB;AAElB,SAAS,eAA6B;AAC3C,SAAO,aAA2B,YAAY,EAAE,QAAQ,KAAK;AAAA,IAC3D,SAAS,CAAC;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAEO,SAAS,cAAc,MAA0B;AACtD,gBAAc,YAAY,EAAE,UAAU,IAAI;AAC5C;;;AC1BA,OAAO,WAAW;AAIlB,SAAS,UAAU,SAAyB;AAC1C,SAAO,QAAQ,YAAY;AAC7B;AAEO,SAAS,eAAqB;AACnC,QAAM,OAAO,aAAa;AAC1B,MAAI,KAAK,QAAQ,WAAW,GAAG;AAC7B,YAAQ,IAAI,MAAM,KAAK,2EAA2E,CAAC;AACnG;AAAA,EACF;AACA,aAAW,SAAS,KAAK,SAAS;AAChC,YAAQ,IAAI,KAAK,MAAM,MAAM,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM,OAAO,EAAE;AAAA,EACzE;AACF;AAEO,SAAS,WAAW,SAAiB,OAAqB;AAC/D,QAAM,OAAO,aAAa;AAC1B,QAAM,OAAM,oBAAI,KAAK,GAAE,YAAY;AACnC,QAAM,aAAa,UAAU,OAAO;AACpC,QAAM,WAAW,KAAK,QAAQ,KAAK,OAAK,UAAU,EAAE,OAAO,MAAM,UAAU;AAC3E,MAAI,UAAU;AACZ,aAAS,QAAQ;AACjB,aAAS,YAAY;AAAA,EACvB,OAAO;AACL,SAAK,QAAQ,KAAK;AAAA,MAChB,SAAS;AAAA,MAAY;AAAA,MAAO,WAAW;AAAA,MAAK,WAAW;AAAA,IACzD,CAAC;AAAA,EACH;AACA,gBAAc,IAAI;AAClB,UAAQ,IAAI,MAAM,MAAM,iBAAiB,MAAM,KAAK,KAAK,CAAC,KAAK,UAAU,GAAG,CAAC;AAC/E;AAEO,SAAS,cAAc,SAAiB,OAAqB;AAClE,aAAW,SAAS,KAAK;AAC3B;AAEO,SAAS,cAAc,SAAuB;AACnD,QAAM,OAAO,aAAa;AAC1B,QAAM,aAAa,UAAU,OAAO;AACpC,QAAM,SAAS,KAAK,QAAQ;AAC5B,OAAK,UAAU,KAAK,QAAQ,OAAO,OAAK,UAAU,EAAE,OAAO,MAAM,UAAU;AAC3E,MAAI,KAAK,QAAQ,WAAW,OAAQ,OAAM,IAAI,MAAM,sBAAsB,OAAO,EAAE;AACnF,gBAAc,IAAI;AAClB,UAAQ,IAAI,MAAM,MAAM,mBAAmB,UAAU,EAAE,CAAC;AAC1D;;;AC5CO,IAAM,0BAAyC;AAAA,EACpD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS,WACP,MACG,WAAW,WAAW;AAAA,IACrB,MAAM;AAAA,IAAU,cAAc;AAAA,IAAM,UAAU;AAAA,EAChD,CAAC,EACA,WAAW,SAAS;AAAA,IACnB,MAAM;AAAA,IAAU,cAAc;AAAA,IAAM,UAAU;AAAA,EAChD,CAAC;AAAA,EACL,SAAS,CAAC,SAAS;AACjB,eAAW,KAAK,SAAmB,KAAK,KAAe;AAAA,EACzD;AACF;;;ACdO,IAAM,2BAA0C;AAAA,EACrD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS,MAAM;AACb,iBAAa;AAAA,EACf;AACF;;;ACNO,IAAM,6BAA4C;AAAA,EACvD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS,WACP,MAAM,WAAW,WAAW;AAAA,IAC1B,MAAM;AAAA,IAAU,cAAc;AAAA,IAAM,UAAU;AAAA,EAChD,CAAC;AAAA,EACH,SAAS,CAAC,SAAS;AACjB,kBAAc,KAAK,OAAiB;AAAA,EACtC;AACF;;;ACVO,IAAM,6BAA4C;AAAA,EACvD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS,WACP,MACG,WAAW,WAAW;AAAA,IACrB,MAAM;AAAA,IAAU,cAAc;AAAA,IAAM,UAAU;AAAA,EAChD,CAAC,EACA,WAAW,SAAS;AAAA,IACnB,MAAM;AAAA,IAAU,cAAc;AAAA,IAAM,UAAU;AAAA,EAChD,CAAC;AAAA,EACL,SAAS,CAAC,SAAS;AACjB,kBAAc,KAAK,SAAmB,KAAK,KAAe;AAAA,EAC5D;AACF;;;ACXO,IAAM,uBAAsC;AAAA,EACjD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS,WACP,MACG,QAAQ,wBAAwB,EAChC,QAAQ,uBAAuB,EAC/B,QAAQ,0BAA0B,EAClC,QAAQ,0BAA0B,EAClC,cAAc,CAAC,EACf,eAAe;AAAA;AAAA,EAEpB,SAAS,MAAM;AAAA,EAAC;AAClB;","names":["PATH","PATH"]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// src/actions/wallet/paths.ts
|
|
2
|
+
import OS from "os";
|
|
3
|
+
import PATH from "path";
|
|
4
|
+
function walletRoot() {
|
|
5
|
+
const override = process.env.ARIES_WALLET_HOME;
|
|
6
|
+
if (override) return override;
|
|
7
|
+
return PATH.join(OS.homedir(), ".aries", "wallet");
|
|
8
|
+
}
|
|
9
|
+
function walletPaths(root = walletRoot()) {
|
|
10
|
+
return {
|
|
11
|
+
root,
|
|
12
|
+
password: PATH.join(root, "password.json"),
|
|
13
|
+
phrases: PATH.join(root, "phrases.json"),
|
|
14
|
+
active: PATH.join(root, "active.json"),
|
|
15
|
+
addressBooks: PATH.join(root, "address-books.json"),
|
|
16
|
+
contacts: PATH.join(root, "contacts.json"),
|
|
17
|
+
networks: PATH.join(root, "networks.json"),
|
|
18
|
+
session: PATH.join(root, "session.json"),
|
|
19
|
+
machineId: PATH.join(root, ".machine-id")
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// src/actions/wallet/storage.ts
|
|
24
|
+
import FS from "fs";
|
|
25
|
+
import PATH2 from "path";
|
|
26
|
+
function readJsonFile(file) {
|
|
27
|
+
if (!FS.existsSync(file)) return void 0;
|
|
28
|
+
const raw = FS.readFileSync(file, "utf8");
|
|
29
|
+
if (raw.trim().length === 0) return void 0;
|
|
30
|
+
return JSON.parse(raw);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// src/actions/wallet/contact/storage.ts
|
|
34
|
+
var CONTACTS_VERSION = 1;
|
|
35
|
+
function readContacts() {
|
|
36
|
+
return readJsonFile(walletPaths().contacts) ?? {
|
|
37
|
+
entries: [],
|
|
38
|
+
version: CONTACTS_VERSION
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
// src/actions/wallet/contact/contactActions.ts
|
|
43
|
+
import chalk from "chalk";
|
|
44
|
+
function listContacts() {
|
|
45
|
+
const file = readContacts();
|
|
46
|
+
if (file.entries.length === 0) {
|
|
47
|
+
console.log(chalk.gray("No contacts. Run `aries wallet contact add <address> <label>` to add one."));
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
for (const entry of file.entries) {
|
|
51
|
+
console.log(` ${chalk.white(entry.label.padEnd(20))} ${entry.address}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// src/commands/walletContactListCommand.ts
|
|
56
|
+
var walletContactListCommand = {
|
|
57
|
+
command: "list",
|
|
58
|
+
describe: "List address-book contacts",
|
|
59
|
+
handler: () => {
|
|
60
|
+
listContacts();
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
export {
|
|
64
|
+
walletContactListCommand
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=walletContactListCommand.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/actions/wallet/paths.ts","../../src/actions/wallet/storage.ts","../../src/actions/wallet/contact/storage.ts","../../src/actions/wallet/contact/contactActions.ts","../../src/commands/walletContactListCommand.ts"],"sourcesContent":["import OS from 'node:os'\nimport PATH from 'node:path'\n\nexport interface WalletPaths {\n root: string\n password: string\n phrases: string\n active: string\n addressBooks: string\n contacts: string\n networks: string\n session: string\n machineId: string\n}\n\nexport function walletRoot(): string {\n const override = process.env.ARIES_WALLET_HOME\n if (override) return override\n return PATH.join(OS.homedir(), '.aries', 'wallet')\n}\n\nexport function walletPaths(root: string = walletRoot()): WalletPaths {\n return {\n root,\n password: PATH.join(root, 'password.json'),\n phrases: PATH.join(root, 'phrases.json'),\n active: PATH.join(root, 'active.json'),\n addressBooks: PATH.join(root, 'address-books.json'),\n contacts: PATH.join(root, 'contacts.json'),\n networks: PATH.join(root, 'networks.json'),\n session: PATH.join(root, 'session.json'),\n machineId: PATH.join(root, '.machine-id'),\n }\n}\n","import FS from 'node:fs'\nimport PATH from 'node:path'\n\nimport { walletRoot } from './paths.ts'\n\nexport function ensureWalletDir(root: string = walletRoot()): void {\n if (!FS.existsSync(root)) {\n FS.mkdirSync(root, { recursive: true, mode: 0o700 })\n return\n }\n try {\n FS.chmodSync(root, 0o700)\n } catch {\n // best-effort on platforms without chmod\n }\n}\n\nexport function readJsonFile<T>(file: string): T | undefined {\n if (!FS.existsSync(file)) return undefined\n const raw = FS.readFileSync(file, 'utf8')\n if (raw.trim().length === 0) return undefined\n return JSON.parse(raw) as T\n}\n\nexport function writeJsonFile(file: string, value: unknown): void {\n ensureWalletDir(PATH.dirname(file))\n const tmp = `${file}.tmp`\n FS.writeFileSync(tmp, `${JSON.stringify(value, null, 2)}\\n`, { mode: 0o600 })\n FS.renameSync(tmp, file)\n try {\n FS.chmodSync(file, 0o600)\n } catch {\n // best-effort\n }\n}\n\nexport function deleteFile(file: string): void {\n if (FS.existsSync(file)) FS.unlinkSync(file)\n}\n","import { walletPaths } from '../paths.ts'\nimport { readJsonFile, writeJsonFile } from '../storage.ts'\n\nexport interface ContactEntry {\n address: string\n label: string\n createdAt: string\n updatedAt: string\n}\n\nexport interface ContactsFile {\n entries: ContactEntry[]\n version: number\n}\n\nconst CONTACTS_VERSION = 1\n\nexport function readContacts(): ContactsFile {\n return readJsonFile<ContactsFile>(walletPaths().contacts) ?? {\n entries: [],\n version: CONTACTS_VERSION,\n }\n}\n\nexport function writeContacts(file: ContactsFile): void {\n writeJsonFile(walletPaths().contacts, file)\n}\n","import chalk from 'chalk'\n\nimport { readContacts, writeContacts } from './storage.ts'\n\nfunction normalize(address: string): string {\n return address.toLowerCase()\n}\n\nexport function listContacts(): void {\n const file = readContacts()\n if (file.entries.length === 0) {\n console.log(chalk.gray('No contacts. Run `aries wallet contact add <address> <label>` to add one.'))\n return\n }\n for (const entry of file.entries) {\n console.log(` ${chalk.white(entry.label.padEnd(20))} ${entry.address}`)\n }\n}\n\nexport function addContact(address: string, label: string): void {\n const file = readContacts()\n const now = new Date().toISOString()\n const normalized = normalize(address)\n const existing = file.entries.find(e => normalize(e.address) === normalized)\n if (existing) {\n existing.label = label\n existing.updatedAt = now\n } else {\n file.entries.push({\n address: normalized, label, createdAt: now, updatedAt: now,\n })\n }\n writeContacts(file)\n console.log(chalk.green(`Saved contact ${chalk.cyan(label)} (${normalized})`))\n}\n\nexport function renameContact(address: string, label: string): void {\n addContact(address, label)\n}\n\nexport function removeContact(address: string): void {\n const file = readContacts()\n const normalized = normalize(address)\n const before = file.entries.length\n file.entries = file.entries.filter(e => normalize(e.address) !== normalized)\n if (file.entries.length === before) throw new Error(`Contact not found: ${address}`)\n writeContacts(file)\n console.log(chalk.green(`Removed contact ${normalized}`))\n}\n","import type { CommandModule } from 'yargs'\n\nimport { listContacts } from '../actions/wallet/index.ts'\n\nexport const walletContactListCommand: CommandModule = {\n command: 'list',\n describe: 'List address-book contacts',\n handler: () => {\n listContacts()\n },\n}\n"],"mappings":";AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AAcV,SAAS,aAAqB;AACnC,QAAM,WAAW,QAAQ,IAAI;AAC7B,MAAI,SAAU,QAAO;AACrB,SAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,UAAU,QAAQ;AACnD;AAEO,SAAS,YAAY,OAAe,WAAW,GAAgB;AACpE,SAAO;AAAA,IACL;AAAA,IACA,UAAU,KAAK,KAAK,MAAM,eAAe;AAAA,IACzC,SAAS,KAAK,KAAK,MAAM,cAAc;AAAA,IACvC,QAAQ,KAAK,KAAK,MAAM,aAAa;AAAA,IACrC,cAAc,KAAK,KAAK,MAAM,oBAAoB;AAAA,IAClD,UAAU,KAAK,KAAK,MAAM,eAAe;AAAA,IACzC,UAAU,KAAK,KAAK,MAAM,eAAe;AAAA,IACzC,SAAS,KAAK,KAAK,MAAM,cAAc;AAAA,IACvC,WAAW,KAAK,KAAK,MAAM,aAAa;AAAA,EAC1C;AACF;;;ACjCA,OAAO,QAAQ;AACf,OAAOA,WAAU;AAgBV,SAAS,aAAgB,MAA6B;AAC3D,MAAI,CAAC,GAAG,WAAW,IAAI,EAAG,QAAO;AACjC,QAAM,MAAM,GAAG,aAAa,MAAM,MAAM;AACxC,MAAI,IAAI,KAAK,EAAE,WAAW,EAAG,QAAO;AACpC,SAAO,KAAK,MAAM,GAAG;AACvB;;;ACPA,IAAM,mBAAmB;AAElB,SAAS,eAA6B;AAC3C,SAAO,aAA2B,YAAY,EAAE,QAAQ,KAAK;AAAA,IAC3D,SAAS,CAAC;AAAA,IACV,SAAS;AAAA,EACX;AACF;;;ACtBA,OAAO,WAAW;AAQX,SAAS,eAAqB;AACnC,QAAM,OAAO,aAAa;AAC1B,MAAI,KAAK,QAAQ,WAAW,GAAG;AAC7B,YAAQ,IAAI,MAAM,KAAK,2EAA2E,CAAC;AACnG;AAAA,EACF;AACA,aAAW,SAAS,KAAK,SAAS;AAChC,YAAQ,IAAI,KAAK,MAAM,MAAM,MAAM,MAAM,OAAO,EAAE,CAAC,CAAC,IAAI,MAAM,OAAO,EAAE;AAAA,EACzE;AACF;;;ACbO,IAAM,2BAA0C;AAAA,EACrD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS,MAAM;AACb,iBAAa;AAAA,EACf;AACF;","names":["PATH"]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
// src/actions/wallet/paths.ts
|
|
2
|
+
import OS from "os";
|
|
3
|
+
import PATH from "path";
|
|
4
|
+
function walletRoot() {
|
|
5
|
+
const override = process.env.ARIES_WALLET_HOME;
|
|
6
|
+
if (override) return override;
|
|
7
|
+
return PATH.join(OS.homedir(), ".aries", "wallet");
|
|
8
|
+
}
|
|
9
|
+
function walletPaths(root = walletRoot()) {
|
|
10
|
+
return {
|
|
11
|
+
root,
|
|
12
|
+
password: PATH.join(root, "password.json"),
|
|
13
|
+
phrases: PATH.join(root, "phrases.json"),
|
|
14
|
+
active: PATH.join(root, "active.json"),
|
|
15
|
+
addressBooks: PATH.join(root, "address-books.json"),
|
|
16
|
+
contacts: PATH.join(root, "contacts.json"),
|
|
17
|
+
networks: PATH.join(root, "networks.json"),
|
|
18
|
+
session: PATH.join(root, "session.json"),
|
|
19
|
+
machineId: PATH.join(root, ".machine-id")
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// src/actions/wallet/storage.ts
|
|
24
|
+
import FS from "fs";
|
|
25
|
+
import PATH2 from "path";
|
|
26
|
+
function ensureWalletDir(root = walletRoot()) {
|
|
27
|
+
if (!FS.existsSync(root)) {
|
|
28
|
+
FS.mkdirSync(root, { recursive: true, mode: 448 });
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
FS.chmodSync(root, 448);
|
|
33
|
+
} catch {
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function readJsonFile(file) {
|
|
37
|
+
if (!FS.existsSync(file)) return void 0;
|
|
38
|
+
const raw = FS.readFileSync(file, "utf8");
|
|
39
|
+
if (raw.trim().length === 0) return void 0;
|
|
40
|
+
return JSON.parse(raw);
|
|
41
|
+
}
|
|
42
|
+
function writeJsonFile(file, value) {
|
|
43
|
+
ensureWalletDir(PATH2.dirname(file));
|
|
44
|
+
const tmp = `${file}.tmp`;
|
|
45
|
+
FS.writeFileSync(tmp, `${JSON.stringify(value, null, 2)}
|
|
46
|
+
`, { mode: 384 });
|
|
47
|
+
FS.renameSync(tmp, file);
|
|
48
|
+
try {
|
|
49
|
+
FS.chmodSync(file, 384);
|
|
50
|
+
} catch {
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// src/actions/wallet/contact/storage.ts
|
|
55
|
+
var CONTACTS_VERSION = 1;
|
|
56
|
+
function readContacts() {
|
|
57
|
+
return readJsonFile(walletPaths().contacts) ?? {
|
|
58
|
+
entries: [],
|
|
59
|
+
version: CONTACTS_VERSION
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function writeContacts(file) {
|
|
63
|
+
writeJsonFile(walletPaths().contacts, file);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// src/actions/wallet/contact/contactActions.ts
|
|
67
|
+
import chalk from "chalk";
|
|
68
|
+
function normalize(address) {
|
|
69
|
+
return address.toLowerCase();
|
|
70
|
+
}
|
|
71
|
+
function removeContact(address) {
|
|
72
|
+
const file = readContacts();
|
|
73
|
+
const normalized = normalize(address);
|
|
74
|
+
const before = file.entries.length;
|
|
75
|
+
file.entries = file.entries.filter((e) => normalize(e.address) !== normalized);
|
|
76
|
+
if (file.entries.length === before) throw new Error(`Contact not found: ${address}`);
|
|
77
|
+
writeContacts(file);
|
|
78
|
+
console.log(chalk.green(`Removed contact ${normalized}`));
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// src/commands/walletContactRemoveCommand.ts
|
|
82
|
+
var walletContactRemoveCommand = {
|
|
83
|
+
command: "remove <address>",
|
|
84
|
+
describe: "Remove a contact",
|
|
85
|
+
builder: (yargs) => yargs.positional("address", {
|
|
86
|
+
type: "string",
|
|
87
|
+
demandOption: true,
|
|
88
|
+
describe: "Address (0x...)"
|
|
89
|
+
}),
|
|
90
|
+
handler: (argv) => {
|
|
91
|
+
removeContact(argv.address);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
export {
|
|
95
|
+
walletContactRemoveCommand
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=walletContactRemoveCommand.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/actions/wallet/paths.ts","../../src/actions/wallet/storage.ts","../../src/actions/wallet/contact/storage.ts","../../src/actions/wallet/contact/contactActions.ts","../../src/commands/walletContactRemoveCommand.ts"],"sourcesContent":["import OS from 'node:os'\nimport PATH from 'node:path'\n\nexport interface WalletPaths {\n root: string\n password: string\n phrases: string\n active: string\n addressBooks: string\n contacts: string\n networks: string\n session: string\n machineId: string\n}\n\nexport function walletRoot(): string {\n const override = process.env.ARIES_WALLET_HOME\n if (override) return override\n return PATH.join(OS.homedir(), '.aries', 'wallet')\n}\n\nexport function walletPaths(root: string = walletRoot()): WalletPaths {\n return {\n root,\n password: PATH.join(root, 'password.json'),\n phrases: PATH.join(root, 'phrases.json'),\n active: PATH.join(root, 'active.json'),\n addressBooks: PATH.join(root, 'address-books.json'),\n contacts: PATH.join(root, 'contacts.json'),\n networks: PATH.join(root, 'networks.json'),\n session: PATH.join(root, 'session.json'),\n machineId: PATH.join(root, '.machine-id'),\n }\n}\n","import FS from 'node:fs'\nimport PATH from 'node:path'\n\nimport { walletRoot } from './paths.ts'\n\nexport function ensureWalletDir(root: string = walletRoot()): void {\n if (!FS.existsSync(root)) {\n FS.mkdirSync(root, { recursive: true, mode: 0o700 })\n return\n }\n try {\n FS.chmodSync(root, 0o700)\n } catch {\n // best-effort on platforms without chmod\n }\n}\n\nexport function readJsonFile<T>(file: string): T | undefined {\n if (!FS.existsSync(file)) return undefined\n const raw = FS.readFileSync(file, 'utf8')\n if (raw.trim().length === 0) return undefined\n return JSON.parse(raw) as T\n}\n\nexport function writeJsonFile(file: string, value: unknown): void {\n ensureWalletDir(PATH.dirname(file))\n const tmp = `${file}.tmp`\n FS.writeFileSync(tmp, `${JSON.stringify(value, null, 2)}\\n`, { mode: 0o600 })\n FS.renameSync(tmp, file)\n try {\n FS.chmodSync(file, 0o600)\n } catch {\n // best-effort\n }\n}\n\nexport function deleteFile(file: string): void {\n if (FS.existsSync(file)) FS.unlinkSync(file)\n}\n","import { walletPaths } from '../paths.ts'\nimport { readJsonFile, writeJsonFile } from '../storage.ts'\n\nexport interface ContactEntry {\n address: string\n label: string\n createdAt: string\n updatedAt: string\n}\n\nexport interface ContactsFile {\n entries: ContactEntry[]\n version: number\n}\n\nconst CONTACTS_VERSION = 1\n\nexport function readContacts(): ContactsFile {\n return readJsonFile<ContactsFile>(walletPaths().contacts) ?? {\n entries: [],\n version: CONTACTS_VERSION,\n }\n}\n\nexport function writeContacts(file: ContactsFile): void {\n writeJsonFile(walletPaths().contacts, file)\n}\n","import chalk from 'chalk'\n\nimport { readContacts, writeContacts } from './storage.ts'\n\nfunction normalize(address: string): string {\n return address.toLowerCase()\n}\n\nexport function listContacts(): void {\n const file = readContacts()\n if (file.entries.length === 0) {\n console.log(chalk.gray('No contacts. Run `aries wallet contact add <address> <label>` to add one.'))\n return\n }\n for (const entry of file.entries) {\n console.log(` ${chalk.white(entry.label.padEnd(20))} ${entry.address}`)\n }\n}\n\nexport function addContact(address: string, label: string): void {\n const file = readContacts()\n const now = new Date().toISOString()\n const normalized = normalize(address)\n const existing = file.entries.find(e => normalize(e.address) === normalized)\n if (existing) {\n existing.label = label\n existing.updatedAt = now\n } else {\n file.entries.push({\n address: normalized, label, createdAt: now, updatedAt: now,\n })\n }\n writeContacts(file)\n console.log(chalk.green(`Saved contact ${chalk.cyan(label)} (${normalized})`))\n}\n\nexport function renameContact(address: string, label: string): void {\n addContact(address, label)\n}\n\nexport function removeContact(address: string): void {\n const file = readContacts()\n const normalized = normalize(address)\n const before = file.entries.length\n file.entries = file.entries.filter(e => normalize(e.address) !== normalized)\n if (file.entries.length === before) throw new Error(`Contact not found: ${address}`)\n writeContacts(file)\n console.log(chalk.green(`Removed contact ${normalized}`))\n}\n","import type { CommandModule } from 'yargs'\n\nimport { removeContact } from '../actions/wallet/index.ts'\n\nexport const walletContactRemoveCommand: CommandModule = {\n command: 'remove <address>',\n describe: 'Remove a contact',\n builder: yargs =>\n yargs.positional('address', {\n type: 'string', demandOption: true, describe: 'Address (0x...)',\n }),\n handler: (argv) => {\n removeContact(argv.address as string)\n },\n}\n"],"mappings":";AAAA,OAAO,QAAQ;AACf,OAAO,UAAU;AAcV,SAAS,aAAqB;AACnC,QAAM,WAAW,QAAQ,IAAI;AAC7B,MAAI,SAAU,QAAO;AACrB,SAAO,KAAK,KAAK,GAAG,QAAQ,GAAG,UAAU,QAAQ;AACnD;AAEO,SAAS,YAAY,OAAe,WAAW,GAAgB;AACpE,SAAO;AAAA,IACL;AAAA,IACA,UAAU,KAAK,KAAK,MAAM,eAAe;AAAA,IACzC,SAAS,KAAK,KAAK,MAAM,cAAc;AAAA,IACvC,QAAQ,KAAK,KAAK,MAAM,aAAa;AAAA,IACrC,cAAc,KAAK,KAAK,MAAM,oBAAoB;AAAA,IAClD,UAAU,KAAK,KAAK,MAAM,eAAe;AAAA,IACzC,UAAU,KAAK,KAAK,MAAM,eAAe;AAAA,IACzC,SAAS,KAAK,KAAK,MAAM,cAAc;AAAA,IACvC,WAAW,KAAK,KAAK,MAAM,aAAa;AAAA,EAC1C;AACF;;;ACjCA,OAAO,QAAQ;AACf,OAAOA,WAAU;AAIV,SAAS,gBAAgB,OAAe,WAAW,GAAS;AACjE,MAAI,CAAC,GAAG,WAAW,IAAI,GAAG;AACxB,OAAG,UAAU,MAAM,EAAE,WAAW,MAAM,MAAM,IAAM,CAAC;AACnD;AAAA,EACF;AACA,MAAI;AACF,OAAG,UAAU,MAAM,GAAK;AAAA,EAC1B,QAAQ;AAAA,EAER;AACF;AAEO,SAAS,aAAgB,MAA6B;AAC3D,MAAI,CAAC,GAAG,WAAW,IAAI,EAAG,QAAO;AACjC,QAAM,MAAM,GAAG,aAAa,MAAM,MAAM;AACxC,MAAI,IAAI,KAAK,EAAE,WAAW,EAAG,QAAO;AACpC,SAAO,KAAK,MAAM,GAAG;AACvB;AAEO,SAAS,cAAc,MAAc,OAAsB;AAChE,kBAAgBC,MAAK,QAAQ,IAAI,CAAC;AAClC,QAAM,MAAM,GAAG,IAAI;AACnB,KAAG,cAAc,KAAK,GAAG,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AAAA,GAAM,EAAE,MAAM,IAAM,CAAC;AAC5E,KAAG,WAAW,KAAK,IAAI;AACvB,MAAI;AACF,OAAG,UAAU,MAAM,GAAK;AAAA,EAC1B,QAAQ;AAAA,EAER;AACF;;;ACnBA,IAAM,mBAAmB;AAElB,SAAS,eAA6B;AAC3C,SAAO,aAA2B,YAAY,EAAE,QAAQ,KAAK;AAAA,IAC3D,SAAS,CAAC;AAAA,IACV,SAAS;AAAA,EACX;AACF;AAEO,SAAS,cAAc,MAA0B;AACtD,gBAAc,YAAY,EAAE,UAAU,IAAI;AAC5C;;;AC1BA,OAAO,WAAW;AAIlB,SAAS,UAAU,SAAyB;AAC1C,SAAO,QAAQ,YAAY;AAC7B;AAkCO,SAAS,cAAc,SAAuB;AACnD,QAAM,OAAO,aAAa;AAC1B,QAAM,aAAa,UAAU,OAAO;AACpC,QAAM,SAAS,KAAK,QAAQ;AAC5B,OAAK,UAAU,KAAK,QAAQ,OAAO,OAAK,UAAU,EAAE,OAAO,MAAM,UAAU;AAC3E,MAAI,KAAK,QAAQ,WAAW,OAAQ,OAAM,IAAI,MAAM,sBAAsB,OAAO,EAAE;AACnF,gBAAc,IAAI;AAClB,UAAQ,IAAI,MAAM,MAAM,mBAAmB,UAAU,EAAE,CAAC;AAC1D;;;AC5CO,IAAM,6BAA4C;AAAA,EACvD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,SAAS,WACP,MAAM,WAAW,WAAW;AAAA,IAC1B,MAAM;AAAA,IAAU,cAAc;AAAA,IAAM,UAAU;AAAA,EAChD,CAAC;AAAA,EACH,SAAS,CAAC,SAAS;AACjB,kBAAc,KAAK,OAAiB;AAAA,EACtC;AACF;","names":["PATH","PATH"]}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// src/actions/wallet/paths.ts
|
|
2
|
+
import OS from "os";
|
|
3
|
+
import PATH from "path";
|
|
4
|
+
function walletRoot() {
|
|
5
|
+
const override = process.env.ARIES_WALLET_HOME;
|
|
6
|
+
if (override) return override;
|
|
7
|
+
return PATH.join(OS.homedir(), ".aries", "wallet");
|
|
8
|
+
}
|
|
9
|
+
function walletPaths(root = walletRoot()) {
|
|
10
|
+
return {
|
|
11
|
+
root,
|
|
12
|
+
password: PATH.join(root, "password.json"),
|
|
13
|
+
phrases: PATH.join(root, "phrases.json"),
|
|
14
|
+
active: PATH.join(root, "active.json"),
|
|
15
|
+
addressBooks: PATH.join(root, "address-books.json"),
|
|
16
|
+
contacts: PATH.join(root, "contacts.json"),
|
|
17
|
+
networks: PATH.join(root, "networks.json"),
|
|
18
|
+
session: PATH.join(root, "session.json"),
|
|
19
|
+
machineId: PATH.join(root, ".machine-id")
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// src/actions/wallet/storage.ts
|
|
24
|
+
import FS from "fs";
|
|
25
|
+
import PATH2 from "path";
|
|
26
|
+
function ensureWalletDir(root = walletRoot()) {
|
|
27
|
+
if (!FS.existsSync(root)) {
|
|
28
|
+
FS.mkdirSync(root, { recursive: true, mode: 448 });
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
FS.chmodSync(root, 448);
|
|
33
|
+
} catch {
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function readJsonFile(file) {
|
|
37
|
+
if (!FS.existsSync(file)) return void 0;
|
|
38
|
+
const raw = FS.readFileSync(file, "utf8");
|
|
39
|
+
if (raw.trim().length === 0) return void 0;
|
|
40
|
+
return JSON.parse(raw);
|
|
41
|
+
}
|
|
42
|
+
function writeJsonFile(file, value) {
|
|
43
|
+
ensureWalletDir(PATH2.dirname(file));
|
|
44
|
+
const tmp = `${file}.tmp`;
|
|
45
|
+
FS.writeFileSync(tmp, `${JSON.stringify(value, null, 2)}
|
|
46
|
+
`, { mode: 384 });
|
|
47
|
+
FS.renameSync(tmp, file);
|
|
48
|
+
try {
|
|
49
|
+
FS.chmodSync(file, 384);
|
|
50
|
+
} catch {
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// src/actions/wallet/contact/storage.ts
|
|
55
|
+
var CONTACTS_VERSION = 1;
|
|
56
|
+
function readContacts() {
|
|
57
|
+
return readJsonFile(walletPaths().contacts) ?? {
|
|
58
|
+
entries: [],
|
|
59
|
+
version: CONTACTS_VERSION
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function writeContacts(file) {
|
|
63
|
+
writeJsonFile(walletPaths().contacts, file);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// src/actions/wallet/contact/contactActions.ts
|
|
67
|
+
import chalk from "chalk";
|
|
68
|
+
function normalize(address) {
|
|
69
|
+
return address.toLowerCase();
|
|
70
|
+
}
|
|
71
|
+
function addContact(address, label) {
|
|
72
|
+
const file = readContacts();
|
|
73
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
74
|
+
const normalized = normalize(address);
|
|
75
|
+
const existing = file.entries.find((e) => normalize(e.address) === normalized);
|
|
76
|
+
if (existing) {
|
|
77
|
+
existing.label = label;
|
|
78
|
+
existing.updatedAt = now;
|
|
79
|
+
} else {
|
|
80
|
+
file.entries.push({
|
|
81
|
+
address: normalized,
|
|
82
|
+
label,
|
|
83
|
+
createdAt: now,
|
|
84
|
+
updatedAt: now
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
writeContacts(file);
|
|
88
|
+
console.log(chalk.green(`Saved contact ${chalk.cyan(label)} (${normalized})`));
|
|
89
|
+
}
|
|
90
|
+
function renameContact(address, label) {
|
|
91
|
+
addContact(address, label);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// src/commands/walletContactRenameCommand.ts
|
|
95
|
+
var walletContactRenameCommand = {
|
|
96
|
+
command: "rename <address> <label>",
|
|
97
|
+
describe: "Rename an existing contact",
|
|
98
|
+
builder: (yargs) => yargs.positional("address", {
|
|
99
|
+
type: "string",
|
|
100
|
+
demandOption: true,
|
|
101
|
+
describe: "Address (0x...)"
|
|
102
|
+
}).positional("label", {
|
|
103
|
+
type: "string",
|
|
104
|
+
demandOption: true,
|
|
105
|
+
describe: "New label"
|
|
106
|
+
}),
|
|
107
|
+
handler: (argv) => {
|
|
108
|
+
renameContact(argv.address, argv.label);
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
export {
|
|
112
|
+
walletContactRenameCommand
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=walletContactRenameCommand.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/actions/wallet/paths.ts","../../src/actions/wallet/storage.ts","../../src/actions/wallet/contact/storage.ts","../../src/actions/wallet/contact/contactActions.ts","../../src/commands/walletContactRenameCommand.ts"],"sourcesContent":["import OS from 'node:os'\nimport PATH from 'node:path'\n\nexport interface WalletPaths {\n root: string\n password: string\n phrases: string\n active: string\n addressBooks: string\n contacts: string\n networks: string\n session: string\n machineId: string\n}\n\nexport function walletRoot(): string {\n const override = process.env.ARIES_WALLET_HOME\n if (override) return override\n return PATH.join(OS.homedir(), '.aries', 'wallet')\n}\n\nexport function walletPaths(root: string = walletRoot()): WalletPaths {\n return {\n root,\n password: PATH.join(root, 'password.json'),\n phrases: PATH.join(root, 'phrases.json'),\n active: PATH.join(root, 'active.json'),\n addressBooks: PATH.join(root, 'address-books.json'),\n contacts: PATH.join(root, 'contacts.json'),\n networks: PATH.join(root, 'networks.json'),\n session: PATH.join(root, 'session.json'),\n machineId: PATH.join(root, '.machine-id'),\n }\n}\n","import FS from 'node:fs'\nimport PATH from 'node:path'\n\nimport { walletRoot } from './paths.ts'\n\nexport function ensureWalletDir(root: string = walletRoot()): void {\n if (!FS.existsSync(root)) {\n FS.mkdirSync(root, { recursive: true, mode: 0o700 })\n return\n }\n try {\n FS.chmodSync(root, 0o700)\n } catch {\n // best-effort on platforms without chmod\n }\n}\n\nexport function readJsonFile<T>(file: string): T | undefined {\n if (!FS.existsSync(file)) return undefined\n const raw = FS.readFileSync(file, 'utf8')\n if (raw.trim().length === 0) return undefined\n return JSON.parse(raw) as T\n}\n\nexport function writeJsonFile(file: string, value: unknown): void {\n ensureWalletDir(PATH.dirname(file))\n const tmp = `${file}.tmp`\n FS.writeFileSync(tmp, `${JSON.stringify(value, null, 2)}\\n`, { mode: 0o600 })\n FS.renameSync(tmp, file)\n try {\n FS.chmodSync(file, 0o600)\n } catch {\n // best-effort\n }\n}\n\nexport function deleteFile(file: string): void {\n if (FS.existsSync(file)) FS.unlinkSync(file)\n}\n","import { walletPaths } from '../paths.ts'\nimport { readJsonFile, writeJsonFile } from '../storage.ts'\n\nexport interface ContactEntry {\n address: string\n label: string\n createdAt: string\n updatedAt: string\n}\n\nexport interface ContactsFile {\n entries: ContactEntry[]\n version: number\n}\n\nconst CONTACTS_VERSION = 1\n\nexport function readContacts(): ContactsFile {\n return readJsonFile<ContactsFile>(walletPaths().contacts) ?? {\n entries: [],\n version: CONTACTS_VERSION,\n }\n}\n\nexport function writeContacts(file: ContactsFile): void {\n writeJsonFile(walletPaths().contacts, file)\n}\n","import chalk from 'chalk'\n\nimport { readContacts, writeContacts } from './storage.ts'\n\nfunction normalize(address: string): string {\n return address.toLowerCase()\n}\n\nexport function listContacts(): void {\n const file = readContacts()\n if (file.entries.length === 0) {\n console.log(chalk.gray('No contacts. Run `aries wallet contact add <address> <label>` to add one.'))\n return\n }\n for (const entry of file.entries) {\n console.log(` ${chalk.white(entry.label.padEnd(20))} ${entry.address}`)\n }\n}\n\nexport function addContact(address: string, label: string): void {\n const file = readContacts()\n const now = new Date().toISOString()\n const normalized = normalize(address)\n const existing = file.entries.find(e => normalize(e.address) === normalized)\n if (existing) {\n existing.label = label\n existing.updatedAt = now\n } else {\n file.entries.push({\n address: normalized, label, createdAt: now, updatedAt: now,\n })\n }\n writeContacts(file)\n console.log(chalk.green(`Saved contact ${chalk.cyan(label)} (${normalized})`))\n}\n\nexport function renameContact(address: string, label: string): void {\n addContact(address, label)\n}\n\nexport function removeContact(address: string): void {\n const file = readContacts()\n const normalized = normalize(address)\n const before = file.entries.length\n file.entries = file.entries.filter(e => normalize(e.address) !== normalized)\n if (file.entries.length === before) throw new Error(`Contact not found: ${address}`)\n writeContacts(file)\n console.log(chalk.green(`Removed contact ${normalized}`))\n}\n","import type { CommandModule } from 'yargs'\n\nimport { renameContact } from '../actions/wallet/index.ts'\n\nexport const walletContactRenameCommand: CommandModule = {\n command: 'rename <address> <label>',\n describe: 'Rename an existing contact',\n builder: yargs =>\n yargs\n .positional('address', {\n type: 'string', demandOption: true, describe: 'Address (0x...)',\n })\n .positional('label', {\n type: 'string', demandOption: true, describe: 'New label',\n }),\n handler: (argv) => {\n renameContact(argv.address as string, argv.label as string)\n },\n}\n"],"mappings":"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","names":["PATH","PATH"]}
|