@bsv/wallet-toolbox 1.1.61 → 1.2.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/docs/client.md +2339 -182
- package/docs/wallet.md +2339 -182
- package/out/src/CWIStyleWalletManager.d.ts +417 -0
- package/out/src/CWIStyleWalletManager.d.ts.map +1 -0
- package/out/src/CWIStyleWalletManager.js +1153 -0
- package/out/src/CWIStyleWalletManager.js.map +1 -0
- package/out/src/SimpleWalletManager.d.ts +169 -0
- package/out/src/SimpleWalletManager.d.ts.map +1 -0
- package/out/src/SimpleWalletManager.js +315 -0
- package/out/src/SimpleWalletManager.js.map +1 -0
- package/out/src/Wallet.d.ts +6 -1
- package/out/src/Wallet.d.ts.map +1 -1
- package/out/src/Wallet.js +39 -7
- package/out/src/Wallet.js.map +1 -1
- package/out/src/WalletAuthenticationManager.d.ts +33 -0
- package/out/src/WalletAuthenticationManager.d.ts.map +1 -0
- package/out/src/WalletAuthenticationManager.js +110 -0
- package/out/src/WalletAuthenticationManager.js.map +1 -0
- package/out/src/WalletPermissionsManager.d.ts +575 -0
- package/out/src/WalletPermissionsManager.d.ts.map +1 -0
- package/out/src/WalletPermissionsManager.js +1789 -0
- package/out/src/WalletPermissionsManager.js.map +1 -0
- package/out/src/WalletSettingsManager.d.ts +59 -0
- package/out/src/WalletSettingsManager.d.ts.map +1 -0
- package/out/src/WalletSettingsManager.js +189 -0
- package/out/src/WalletSettingsManager.js.map +1 -0
- package/out/src/__tests/CWIStyleWalletManager.test.d.ts +2 -0
- package/out/src/__tests/CWIStyleWalletManager.test.d.ts.map +1 -0
- package/out/src/__tests/CWIStyleWalletManager.test.js +471 -0
- package/out/src/__tests/CWIStyleWalletManager.test.js.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts +2 -0
- package/out/src/__tests/WalletPermissionsManager.callbacks.test.d.ts.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.callbacks.test.js +239 -0
- package/out/src/__tests/WalletPermissionsManager.callbacks.test.js.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts +2 -0
- package/out/src/__tests/WalletPermissionsManager.checks.test.d.ts.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.checks.test.js +637 -0
- package/out/src/__tests/WalletPermissionsManager.checks.test.js.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts +2 -0
- package/out/src/__tests/WalletPermissionsManager.encryption.test.d.ts.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.encryption.test.js +295 -0
- package/out/src/__tests/WalletPermissionsManager.encryption.test.js.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts +83 -0
- package/out/src/__tests/WalletPermissionsManager.fixtures.d.ts.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.fixtures.js +261 -0
- package/out/src/__tests/WalletPermissionsManager.fixtures.js.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts +2 -0
- package/out/src/__tests/WalletPermissionsManager.flows.test.d.ts.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.flows.test.js +377 -0
- package/out/src/__tests/WalletPermissionsManager.flows.test.js.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts +2 -0
- package/out/src/__tests/WalletPermissionsManager.initialization.test.d.ts.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.initialization.test.js +227 -0
- package/out/src/__tests/WalletPermissionsManager.initialization.test.js.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts +2 -0
- package/out/src/__tests/WalletPermissionsManager.proxying.test.d.ts.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.proxying.test.js +566 -0
- package/out/src/__tests/WalletPermissionsManager.proxying.test.js.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts +2 -0
- package/out/src/__tests/WalletPermissionsManager.tokens.test.d.ts.map +1 -0
- package/out/src/__tests/WalletPermissionsManager.tokens.test.js +454 -0
- package/out/src/__tests/WalletPermissionsManager.tokens.test.js.map +1 -0
- package/out/src/index.all.d.ts +9 -0
- package/out/src/index.all.d.ts.map +1 -1
- package/out/src/index.all.js +9 -0
- package/out/src/index.all.js.map +1 -1
- package/out/src/index.client.d.ts +9 -0
- package/out/src/index.client.d.ts.map +1 -1
- package/out/src/index.client.js +9 -0
- package/out/src/index.client.js.map +1 -1
- package/out/src/sdk/CertOpsWallet.d.ts +7 -0
- package/out/src/sdk/CertOpsWallet.d.ts.map +1 -0
- package/out/src/sdk/CertOpsWallet.js +3 -0
- package/out/src/sdk/CertOpsWallet.js.map +1 -0
- package/out/src/sdk/__test/CertificateLifeCycle.test.js +19 -82
- package/out/src/sdk/__test/CertificateLifeCycle.test.js.map +1 -1
- package/out/src/sdk/index.d.ts +1 -1
- package/out/src/sdk/index.d.ts.map +1 -1
- package/out/src/sdk/index.js +1 -1
- package/out/src/sdk/index.js.map +1 -1
- package/out/src/sdk/validationHelpers.d.ts.map +1 -1
- package/out/src/sdk/validationHelpers.js +13 -12
- package/out/src/sdk/validationHelpers.js.map +1 -1
- package/out/src/services/__tests/ARC.test.js +9 -0
- package/out/src/services/__tests/ARC.test.js.map +1 -1
- package/out/src/services/__tests/bitrails.test.js +7 -2
- package/out/src/services/__tests/bitrails.test.js.map +1 -1
- package/out/src/services/providers/ARC.js +1 -1
- package/out/src/services/providers/ARC.js.map +1 -1
- package/out/src/services/providers/__tests/WhatsOnChain.test.js +3 -3
- package/out/src/services/providers/__tests/WhatsOnChain.test.js.map +1 -1
- package/out/src/signer/methods/proveCertificate.d.ts.map +1 -1
- package/out/src/signer/methods/proveCertificate.js +3 -19
- package/out/src/signer/methods/proveCertificate.js.map +1 -1
- package/out/src/storage/__test/WalletStorageManager.test.js +1 -1
- package/out/src/storage/__test/WalletStorageManager.test.js.map +1 -1
- package/out/src/storage/methods/listOutputs.js +1 -1
- package/out/src/storage/methods/listOutputs.js.map +1 -1
- package/out/src/storage/remoting/StorageClient.d.ts +2 -2
- package/out/src/storage/remoting/StorageClient.d.ts.map +1 -1
- package/out/src/storage/remoting/StorageClient.js +1 -1
- package/out/src/storage/remoting/StorageClient.js.map +1 -1
- package/out/src/utility/identityUtils.d.ts +31 -0
- package/out/src/utility/identityUtils.d.ts.map +1 -0
- package/out/src/utility/identityUtils.js +116 -0
- package/out/src/utility/identityUtils.js.map +1 -0
- package/out/src/wab-client/WABClient.d.ts +49 -0
- package/out/src/wab-client/WABClient.d.ts.map +1 -0
- package/out/src/wab-client/WABClient.js +83 -0
- package/out/src/wab-client/WABClient.js.map +1 -0
- package/out/src/wab-client/__tests/WABClient.man.test.d.ts +2 -0
- package/out/src/wab-client/__tests/WABClient.man.test.d.ts.map +1 -0
- package/out/src/wab-client/__tests/WABClient.man.test.js +52 -0
- package/out/src/wab-client/__tests/WABClient.man.test.js.map +1 -0
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts +34 -0
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.d.ts.map +1 -0
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js +16 -0
- package/out/src/wab-client/auth-method-interactors/AuthMethodInteractor.js.map +1 -0
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts +7 -0
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.d.ts.map +1 -0
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js +36 -0
- package/out/src/wab-client/auth-method-interactors/PersonaIDInteractor.js.map +1 -0
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts +28 -0
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.d.ts.map +1 -0
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js +69 -0
- package/out/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.js.map +1 -0
- package/out/test/Wallet/action/internalizeAction.a.test.js +1 -1
- package/out/test/Wallet/action/internalizeAction.a.test.js.map +1 -1
- package/out/test/Wallet/certificate/acquireCertificate.test.js +26 -29
- package/out/test/Wallet/certificate/acquireCertificate.test.js.map +1 -1
- package/out/test/Wallet/local/localWallet.man.test.d.ts.map +1 -1
- package/out/test/Wallet/local/localWallet.man.test.js +25 -10
- package/out/test/Wallet/local/localWallet.man.test.js.map +1 -1
- package/out/test/storage/KnexMigrations.test.js +1 -1
- package/out/test/storage/KnexMigrations.test.js.map +1 -1
- package/out/test/storage/update.test.js +1 -1
- package/out/test/storage/update.test.js.map +1 -1
- package/out/test/utils/TestUtilsWalletStorage.d.ts +9 -5
- package/out/test/utils/TestUtilsWalletStorage.d.ts.map +1 -1
- package/out/test/utils/TestUtilsWalletStorage.js +15 -9
- package/out/test/utils/TestUtilsWalletStorage.js.map +1 -1
- package/out/test/wallet/action/internalizeAction.test.js +1 -1
- package/out/test/wallet/action/internalizeAction.test.js.map +1 -1
- package/out/test/wallet/list/listActions2.test.js +1 -1
- package/out/test/wallet/list/listActions2.test.js.map +1 -1
- package/out/test/wallet/sync/Wallet.sync.test.js +1 -1
- package/out/test/wallet/sync/Wallet.sync.test.js.map +1 -1
- package/out/tsconfig.all.tsbuildinfo +1 -1
- package/package.json +3 -4
- package/src/CWIStyleWalletManager.ts +1738 -0
- package/src/SimpleWalletManager.ts +526 -0
- package/src/Wallet.ts +70 -7
- package/src/WalletAuthenticationManager.ts +150 -0
- package/src/WalletPermissionsManager.ts +2424 -0
- package/src/WalletSettingsManager.ts +243 -0
- package/src/__tests/CWIStyleWalletManager.test.ts +604 -0
- package/src/__tests/WalletPermissionsManager.callbacks.test.ts +323 -0
- package/src/__tests/WalletPermissionsManager.checks.test.ts +839 -0
- package/src/__tests/WalletPermissionsManager.encryption.test.ts +370 -0
- package/src/__tests/WalletPermissionsManager.fixtures.ts +284 -0
- package/src/__tests/WalletPermissionsManager.flows.test.ts +457 -0
- package/src/__tests/WalletPermissionsManager.initialization.test.ts +300 -0
- package/src/__tests/WalletPermissionsManager.proxying.test.ts +706 -0
- package/src/__tests/WalletPermissionsManager.tokens.test.ts +546 -0
- package/src/index.all.ts +9 -0
- package/src/index.client.ts +9 -0
- package/src/sdk/CertOpsWallet.ts +18 -0
- package/src/sdk/__test/CertificateLifeCycle.test.ts +66 -113
- package/src/sdk/index.ts +1 -1
- package/src/sdk/validationHelpers.ts +12 -11
- package/src/services/__tests/ARC.test.ts +14 -1
- package/src/services/__tests/bitrails.test.ts +7 -2
- package/src/services/processingErrors/arcSuccessError.json +76 -0
- package/src/services/providers/ARC.ts +1 -1
- package/src/services/providers/__tests/WhatsOnChain.test.ts +3 -3
- package/src/signer/methods/proveCertificate.ts +14 -21
- package/src/storage/__test/WalletStorageManager.test.ts +1 -1
- package/src/storage/methods/listOutputs.ts +1 -1
- package/src/storage/remoting/StorageClient.ts +4 -4
- package/src/utility/identityUtils.ts +159 -0
- package/src/wab-client/WABClient.ts +94 -0
- package/src/wab-client/__tests/WABClient.man.test.ts +59 -0
- package/src/wab-client/auth-method-interactors/AuthMethodInteractor.ts +47 -0
- package/src/wab-client/auth-method-interactors/PersonaIDInteractor.ts +35 -0
- package/src/wab-client/auth-method-interactors/TwilioPhoneInteractor.ts +72 -0
- package/test/Wallet/action/internalizeAction.a.test.ts +1 -1
- package/test/Wallet/certificate/acquireCertificate.test.ts +89 -30
- package/test/Wallet/local/localWallet.man.test.ts +20 -4
- package/test/storage/KnexMigrations.test.ts +1 -1
- package/test/storage/update.test.ts +1 -1
- package/test/utils/TestUtilsWalletStorage.ts +24 -13
- package/test/wallet/action/internalizeAction.test.ts +1 -1
- package/test/wallet/list/listActions2.test.ts +1 -1
- package/test/wallet/sync/Wallet.sync.test.ts +1 -1
- package/out/src/sdk/CertOps.d.ts +0 -66
- package/out/src/sdk/CertOps.d.ts.map +0 -1
- package/out/src/sdk/CertOps.js +0 -190
- package/out/src/sdk/CertOps.js.map +0 -1
- package/src/sdk/CertOps.ts +0 -274
|
@@ -27,7 +27,10 @@ import {
|
|
|
27
27
|
} from '../../../src'
|
|
28
28
|
import { _tu, TestWalletNoSetup } from '../../utils/TestUtilsWalletStorage'
|
|
29
29
|
import { monitorEventLoopDelay } from 'perf_hooks'
|
|
30
|
-
import { validateCreateActionArgs, ValidCreateActionArgs } from '../../../src/sdk'
|
|
30
|
+
import { specOpInvalidChange, validateCreateActionArgs, ValidCreateActionArgs } from '../../../src/sdk'
|
|
31
|
+
|
|
32
|
+
const setActiveClient = true
|
|
33
|
+
const useMySQLConnectionForClient = true
|
|
31
34
|
|
|
32
35
|
describe('localWallet tests', () => {
|
|
33
36
|
jest.setTimeout(99999999)
|
|
@@ -82,16 +85,29 @@ describe('localWallet tests', () => {
|
|
|
82
85
|
|
|
83
86
|
test('4 review change utxos', async () => {
|
|
84
87
|
const setup = await createSetup('test')
|
|
88
|
+
const lor = await setup.wallet.listOutputs({
|
|
89
|
+
basket: specOpInvalidChange,
|
|
90
|
+
limit: 1000
|
|
91
|
+
})
|
|
92
|
+
if (lor.totalOutputs > 0) {
|
|
93
|
+
debugger
|
|
94
|
+
const lor = await setup.wallet.listOutputs({
|
|
95
|
+
basket: specOpInvalidChange,
|
|
96
|
+
tags: ['release']
|
|
97
|
+
})
|
|
98
|
+
}
|
|
99
|
+
/*
|
|
85
100
|
const storage = setup.activeStorage
|
|
86
101
|
const services = setup.services
|
|
87
102
|
const { invalidSpendableOutputs: notUtxos } = await confirmSpendableOutputs(storage, services)
|
|
88
103
|
const outputsToUpdate = notUtxos.map(o => ({ id: o.outputId, satoshis: o.satoshis }))
|
|
89
104
|
const total: number = outputsToUpdate.reduce((t, o) => t + o.satoshis, 0)
|
|
90
105
|
debugger
|
|
91
|
-
// *** About set spendable = false for outputs
|
|
106
|
+
// *** About set spendable = false for outputs ***
|
|
92
107
|
for (const o of outputsToUpdate) {
|
|
93
108
|
await storage.updateOutput(o.id, { spendable: false })
|
|
94
109
|
}
|
|
110
|
+
*/
|
|
95
111
|
await setup.wallet.destroy()
|
|
96
112
|
})
|
|
97
113
|
|
|
@@ -125,9 +141,9 @@ async function createSetup(chain: sdk.Chain): Promise<TestWalletNoSetup> {
|
|
|
125
141
|
chain,
|
|
126
142
|
rootKeyHex: env.devKeys[env.testIdentityKey],
|
|
127
143
|
filePath: env.testFilePath,
|
|
128
|
-
setActiveClient
|
|
144
|
+
setActiveClient,
|
|
129
145
|
addLocalBackup: false,
|
|
130
|
-
useMySQLConnectionForClient
|
|
146
|
+
useMySQLConnectionForClient
|
|
131
147
|
})
|
|
132
148
|
|
|
133
149
|
console.log(`ACTIVE STORAGE: ${setup.storage.getActiveStoreName()}`)
|
|
@@ -6,7 +6,7 @@ describe('KnexMigrations tests', () => {
|
|
|
6
6
|
jest.setTimeout(99999999)
|
|
7
7
|
|
|
8
8
|
const knexs: Knex[] = []
|
|
9
|
-
const env = _tu.
|
|
9
|
+
const env = _tu.getEnvFlags('test')
|
|
10
10
|
|
|
11
11
|
beforeAll(async () => {
|
|
12
12
|
const localSQLiteFile = await _tu.newTmpFile('migratetest.sqlite', false, false, true)
|
|
@@ -25,7 +25,7 @@ describe('update tests', () => {
|
|
|
25
25
|
jest.setTimeout(99999999)
|
|
26
26
|
|
|
27
27
|
const chain: sdk.Chain = 'test'
|
|
28
|
-
const env = _tu.
|
|
28
|
+
const env = _tu.getEnvFlags(chain)
|
|
29
29
|
const testName = () => expect.getState().currentTestName || 'test'
|
|
30
30
|
|
|
31
31
|
let storages: StorageProvider[]
|
|
@@ -63,7 +63,14 @@ dotenv.config()
|
|
|
63
63
|
|
|
64
64
|
const localMySqlConnection = process.env.MYSQL_CONNECTION || ''
|
|
65
65
|
|
|
66
|
-
export interface
|
|
66
|
+
export interface TuEnvFlags {
|
|
67
|
+
chain: sdk.Chain
|
|
68
|
+
runMySQL: boolean
|
|
69
|
+
runSlowTests: boolean
|
|
70
|
+
logTests: boolean
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface TuEnv extends TuEnvFlags {
|
|
67
74
|
chain: sdk.Chain
|
|
68
75
|
identityKey: string
|
|
69
76
|
identityKey2: string
|
|
@@ -71,9 +78,6 @@ export interface TuEnv {
|
|
|
71
78
|
bitailsApiKey: string
|
|
72
79
|
whatsonchainApiKey: string
|
|
73
80
|
devKeys: Record<string, string>
|
|
74
|
-
runMySQL: boolean
|
|
75
|
-
runSlowTests: boolean
|
|
76
|
-
logTests: boolean
|
|
77
81
|
/**
|
|
78
82
|
* file path to local sqlite file for identityKey
|
|
79
83
|
*/
|
|
@@ -92,11 +96,11 @@ export interface TuEnv {
|
|
|
92
96
|
export abstract class TestUtilsWalletStorage {
|
|
93
97
|
/**
|
|
94
98
|
* @param chain
|
|
95
|
-
* @returns true if .env
|
|
99
|
+
* @returns true if .env has truthy idenityKey, idenityKey2 values for chain
|
|
96
100
|
*/
|
|
97
101
|
static noEnv(chain: sdk.Chain): boolean {
|
|
98
102
|
try {
|
|
99
|
-
|
|
103
|
+
Setup.getEnv(chain)
|
|
100
104
|
return false
|
|
101
105
|
} catch {
|
|
102
106
|
return true
|
|
@@ -116,7 +120,20 @@ export abstract class TestUtilsWalletStorage {
|
|
|
116
120
|
}
|
|
117
121
|
}
|
|
118
122
|
|
|
123
|
+
static getEnvFlags(chain: sdk.Chain): TuEnvFlags {
|
|
124
|
+
const logTests = !!process.env.LOGTESTS
|
|
125
|
+
const runMySQL = !!process.env.RUNMYSQL
|
|
126
|
+
const runSlowTests = !!process.env.RUNSLOWTESTS
|
|
127
|
+
return {
|
|
128
|
+
chain,
|
|
129
|
+
runMySQL,
|
|
130
|
+
runSlowTests,
|
|
131
|
+
logTests
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
119
135
|
static getEnv(chain: sdk.Chain): TuEnv {
|
|
136
|
+
const flagsEnv = _tu.getEnvFlags(chain)
|
|
120
137
|
// Identity keys of the lead maintainer of this repo...
|
|
121
138
|
const identityKey = (chain === 'main' ? process.env.MY_MAIN_IDENTITY : process.env.MY_TEST_IDENTITY) || ''
|
|
122
139
|
const filePath = chain === 'main' ? process.env.MY_MAIN_FILEPATH : process.env.MY_TEST_FILEPATH
|
|
@@ -126,24 +143,18 @@ export abstract class TestUtilsWalletStorage {
|
|
|
126
143
|
const cloudMySQLConnection =
|
|
127
144
|
chain === 'main' ? process.env.MAIN_CLOUD_MYSQL_CONNECTION : process.env.TEST_CLOUD_MYSQL_CONNECTION
|
|
128
145
|
const DEV_KEYS = process.env.DEV_KEYS || '{}'
|
|
129
|
-
const logTests = !!process.env.LOGTESTS
|
|
130
|
-
const runMySQL = !!process.env.RUNMYSQL
|
|
131
|
-
const runSlowTests = !!process.env.RUNSLOWTESTS
|
|
132
146
|
const taalApiKey = (chain === 'main' ? process.env.MAIN_TAAL_API_KEY : process.env.TEST_TAAL_API_KEY) || ''
|
|
133
147
|
const bitailsApiKey = (chain === 'main' ? process.env.MAIN_BITAILS_API_KEY : process.env.TEST_BITAILS_API_KEY) || ''
|
|
134
148
|
const whatsonchainApiKey =
|
|
135
149
|
(chain === 'main' ? process.env.MAIN_WHATSONCHAIN_API_KEY : process.env.TEST_WHATSONCHAIN_API_KEY) || ''
|
|
136
150
|
return {
|
|
137
|
-
|
|
151
|
+
...flagsEnv,
|
|
138
152
|
identityKey,
|
|
139
153
|
identityKey2,
|
|
140
154
|
taalApiKey,
|
|
141
155
|
bitailsApiKey,
|
|
142
156
|
whatsonchainApiKey,
|
|
143
157
|
devKeys: JSON.parse(DEV_KEYS) as Record<string, string>,
|
|
144
|
-
runMySQL,
|
|
145
|
-
runSlowTests,
|
|
146
|
-
logTests,
|
|
147
158
|
filePath,
|
|
148
159
|
testIdentityKey,
|
|
149
160
|
testFilePath,
|
|
@@ -5,7 +5,7 @@ import { _tu, expectToThrowWERR, TestWalletNoSetup } from '../../utils/TestUtils
|
|
|
5
5
|
describe('internalizeAction tests', () => {
|
|
6
6
|
jest.setTimeout(99999999)
|
|
7
7
|
|
|
8
|
-
const env = _tu.
|
|
8
|
+
const env = _tu.getEnvFlags('test')
|
|
9
9
|
|
|
10
10
|
const gctxs: TestWalletNoSetup[] = []
|
|
11
11
|
const useSharedCtxs = true
|
|
@@ -2,7 +2,7 @@ import * as bsv from '@bsv/sdk'
|
|
|
2
2
|
import { sdk, StorageProvider } from '../../../src/index.client'
|
|
3
3
|
import { _tu, expectToThrowWERR, MockData, TestWalletNoSetup } from '../../utils/TestUtilsWalletStorage'
|
|
4
4
|
|
|
5
|
-
const env = _tu.
|
|
5
|
+
const env = _tu.getEnvFlags('test')
|
|
6
6
|
const testName = () => expect.getState().currentTestName || 'test'
|
|
7
7
|
|
|
8
8
|
describe('listActions2 single action tests', () => {
|
package/out/src/sdk/CertOps.d.ts
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { Base64String, Certificate as BsvCertificate, CertificateFieldNameUnder50Bytes, GetPublicKeyArgs, GetPublicKeyResult, OriginatorDomainNameStringUnder250Bytes, PubKeyHex, WalletCertificate, WalletDecryptArgs, WalletDecryptResult, WalletEncryptArgs, WalletEncryptResult, WalletProtocol } from '@bsv/sdk';
|
|
2
|
-
export interface CertOpsWallet {
|
|
3
|
-
getPublicKey(args: GetPublicKeyArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<GetPublicKeyResult>;
|
|
4
|
-
encrypt(args: WalletEncryptArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<WalletEncryptResult>;
|
|
5
|
-
decrypt(args: WalletDecryptArgs, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<WalletDecryptResult>;
|
|
6
|
-
}
|
|
7
|
-
export declare class CertOps extends BsvCertificate {
|
|
8
|
-
wallet: CertOpsWallet;
|
|
9
|
-
_keyring?: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
10
|
-
_encryptedFields?: Record<CertificateFieldNameUnder50Bytes, Base64String>;
|
|
11
|
-
_decryptedFields?: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
12
|
-
constructor(wallet: CertOpsWallet, wc: WalletCertificate);
|
|
13
|
-
static fromCounterparty(wallet: CertOpsWallet, e: {
|
|
14
|
-
certificate: WalletCertificate;
|
|
15
|
-
keyring: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
16
|
-
counterparty: PubKeyHex;
|
|
17
|
-
}): Promise<CertOps>;
|
|
18
|
-
static fromCertifier(wallet: CertOpsWallet, e: {
|
|
19
|
-
certificate: WalletCertificate;
|
|
20
|
-
keyring: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
21
|
-
}): Promise<CertOps>;
|
|
22
|
-
static fromEncrypted(wallet: CertOpsWallet, wc: WalletCertificate, keyring: Record<CertificateFieldNameUnder50Bytes, string>): Promise<CertOps>;
|
|
23
|
-
static fromDecrypted(wallet: CertOpsWallet, wc: WalletCertificate): Promise<CertOps>;
|
|
24
|
-
static copyFields<T>(fields: Record<CertificateFieldNameUnder50Bytes, T>): Record<CertificateFieldNameUnder50Bytes, T>;
|
|
25
|
-
static getProtocolForCertificateFieldEncryption(serialNumber: string, fieldName: string): {
|
|
26
|
-
protocolID: WalletProtocol;
|
|
27
|
-
keyID: string;
|
|
28
|
-
};
|
|
29
|
-
exportForSubject(): {
|
|
30
|
-
certificate: WalletCertificate;
|
|
31
|
-
keyring: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
32
|
-
};
|
|
33
|
-
toWalletCertificate(): WalletCertificate;
|
|
34
|
-
encryptFields(counterparty?: 'self' | PubKeyHex): Promise<{
|
|
35
|
-
fields: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
36
|
-
keyring: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
37
|
-
}>;
|
|
38
|
-
decryptFields(counterparty?: PubKeyHex, keyring?: Record<CertificateFieldNameUnder50Bytes, string>): Promise<Record<CertificateFieldNameUnder50Bytes, string>>;
|
|
39
|
-
exportForCounterparty(
|
|
40
|
-
/** The incoming counterparty is who they are to us. */
|
|
41
|
-
counterparty: PubKeyHex, fieldsToReveal: CertificateFieldNameUnder50Bytes[]): Promise<{
|
|
42
|
-
certificate: WalletCertificate;
|
|
43
|
-
keyring: Record<CertificateFieldNameUnder50Bytes, string>;
|
|
44
|
-
counterparty: PubKeyHex;
|
|
45
|
-
}>;
|
|
46
|
-
/**
|
|
47
|
-
* Creates a verifiable certificate structure for a specific verifier, allowing them access to specified fields.
|
|
48
|
-
* This method decrypts the master field keys for each field specified in `fieldsToReveal` and re-encrypts them
|
|
49
|
-
* for the verifier's identity key. The resulting certificate structure includes only the fields intended to be
|
|
50
|
-
* revealed and a verifier-specific keyring for field decryption.
|
|
51
|
-
*
|
|
52
|
-
* @param {PubKeyHex} verifierIdentityKey - The public identity key of the verifier who will receive access to the specified fields.
|
|
53
|
-
* @param {CertificateFieldNameUnder50Bytes[]} fieldsToReveal - An array of field names to be revealed to the verifier. Must be a subset of the certificate's fields.
|
|
54
|
-
* @returns {Promise<Record<CertificateFieldNameUnder50Bytes[], Base64String>} - A new certificate structure containing the original encrypted fields, the verifier-specific field decryption keyring, and essential certificate metadata.
|
|
55
|
-
* @throws {WERR_INVALID_PARAMETER} Throws an error if:
|
|
56
|
-
* - fieldsToReveal is empty or a field in `fieldsToReveal` does not exist in the certificate.
|
|
57
|
-
* - The decrypted master field key fails to decrypt the corresponding field (indicating an invalid key).
|
|
58
|
-
*/
|
|
59
|
-
createKeyringForVerifier(verifierIdentityKey: PubKeyHex, fieldsToReveal: CertificateFieldNameUnder50Bytes[]): Promise<Record<CertificateFieldNameUnder50Bytes, Base64String>>;
|
|
60
|
-
/**
|
|
61
|
-
* encrypt plaintext field values for the subject
|
|
62
|
-
* update the signature using the certifier's private key.
|
|
63
|
-
*/
|
|
64
|
-
encryptAndSignNewCertificate(): Promise<void>;
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=CertOps.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CertOps.d.ts","sourceRoot":"","sources":["../../../src/sdk/CertOps.ts"],"names":[],"mappings":"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"}
|
package/out/src/sdk/CertOps.js
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CertOps = void 0;
|
|
4
|
-
const sdk_1 = require("@bsv/sdk");
|
|
5
|
-
const index_client_1 = require("../index.client");
|
|
6
|
-
const sdk_2 = require("@bsv/sdk");
|
|
7
|
-
const WERR_errors_1 = require("./WERR_errors");
|
|
8
|
-
class CertOps extends sdk_1.Certificate {
|
|
9
|
-
constructor(wallet, wc) {
|
|
10
|
-
super(wc.type, wc.serialNumber, wc.subject, wc.certifier, wc.revocationOutpoint, wc.fields, wc.signature);
|
|
11
|
-
this.wallet = wallet;
|
|
12
|
-
}
|
|
13
|
-
static async fromCounterparty(wallet, e) {
|
|
14
|
-
const c = new CertOps(wallet, e.certificate);
|
|
15
|
-
// confirm cert verifies and decrypts.
|
|
16
|
-
await c.verify();
|
|
17
|
-
await c.decryptFields(e.counterparty, e.keyring);
|
|
18
|
-
// un-decrypt
|
|
19
|
-
c.fields = c._encryptedFields;
|
|
20
|
-
return c;
|
|
21
|
-
}
|
|
22
|
-
static async fromCertifier(wallet, e) {
|
|
23
|
-
return await CertOps.fromCounterparty(wallet, {
|
|
24
|
-
counterparty: e.certificate.certifier,
|
|
25
|
-
...e
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
static async fromEncrypted(wallet, wc, keyring) {
|
|
29
|
-
const c = new CertOps(wallet, wc);
|
|
30
|
-
c._keyring = keyring;
|
|
31
|
-
c._encryptedFields = this.copyFields(c.fields);
|
|
32
|
-
c._decryptedFields = await c.decryptFields();
|
|
33
|
-
await c.verify();
|
|
34
|
-
return c;
|
|
35
|
-
}
|
|
36
|
-
static async fromDecrypted(wallet, wc) {
|
|
37
|
-
const c = new CertOps(wallet, wc);
|
|
38
|
-
({ fields: c._encryptedFields, keyring: c._keyring } = await c.encryptFields());
|
|
39
|
-
c._decryptedFields = await c.decryptFields();
|
|
40
|
-
return c;
|
|
41
|
-
}
|
|
42
|
-
static copyFields(fields) {
|
|
43
|
-
const copy = {};
|
|
44
|
-
for (const [n, v] of Object.entries(fields))
|
|
45
|
-
copy[n] = v;
|
|
46
|
-
return copy;
|
|
47
|
-
}
|
|
48
|
-
static getProtocolForCertificateFieldEncryption(serialNumber, fieldName) {
|
|
49
|
-
return {
|
|
50
|
-
protocolID: [2, 'certificate field encryption'],
|
|
51
|
-
keyID: `${serialNumber} ${fieldName}`
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
exportForSubject() {
|
|
55
|
-
if (!this._keyring || !this._encryptedFields || !this.signature || this.signature.length === 0)
|
|
56
|
-
throw new WERR_errors_1.WERR_INVALID_OPERATION(`Certificate must be encrypted and signed prior to export.`);
|
|
57
|
-
const certificate = this.toWalletCertificate();
|
|
58
|
-
const keyring = this._keyring;
|
|
59
|
-
return { certificate, keyring };
|
|
60
|
-
}
|
|
61
|
-
toWalletCertificate() {
|
|
62
|
-
const wc = {
|
|
63
|
-
signature: '',
|
|
64
|
-
...this
|
|
65
|
-
};
|
|
66
|
-
return wc;
|
|
67
|
-
}
|
|
68
|
-
async encryptFields(counterparty = 'self') {
|
|
69
|
-
const fields = this._decryptedFields || this.fields;
|
|
70
|
-
const encryptedFields = {};
|
|
71
|
-
const keyring = {};
|
|
72
|
-
for (const fieldName of Object.keys(fields)) {
|
|
73
|
-
const fieldSymmetricKey = sdk_2.SymmetricKey.fromRandom();
|
|
74
|
-
const encryptedFieldValue = fieldSymmetricKey.encrypt(sdk_2.Utils.toArray(this.fields[fieldName], 'utf8'));
|
|
75
|
-
encryptedFields[fieldName] = sdk_2.Utils.toBase64(encryptedFieldValue);
|
|
76
|
-
const encryptedFieldKey = await this.wallet.encrypt({
|
|
77
|
-
plaintext: fieldSymmetricKey.toArray(),
|
|
78
|
-
counterparty,
|
|
79
|
-
...CertOps.getProtocolForCertificateFieldEncryption(this.serialNumber, fieldName)
|
|
80
|
-
});
|
|
81
|
-
keyring[fieldName] = sdk_2.Utils.toBase64(encryptedFieldKey.ciphertext);
|
|
82
|
-
}
|
|
83
|
-
this._keyring = keyring;
|
|
84
|
-
this._decryptedFields = fields;
|
|
85
|
-
this.fields = this._encryptedFields = encryptedFields;
|
|
86
|
-
return { fields: encryptedFields, keyring };
|
|
87
|
-
}
|
|
88
|
-
async decryptFields(counterparty, keyring) {
|
|
89
|
-
keyring || (keyring = this._keyring);
|
|
90
|
-
const fields = this._encryptedFields || this.fields;
|
|
91
|
-
const decryptedFields = {};
|
|
92
|
-
if (!keyring)
|
|
93
|
-
throw new index_client_1.sdk.WERR_INVALID_PARAMETER('keyring', 'valid');
|
|
94
|
-
try {
|
|
95
|
-
for (const fieldName of Object.keys(keyring)) {
|
|
96
|
-
const { plaintext: fieldRevelationKey } = await this.wallet.decrypt({
|
|
97
|
-
ciphertext: sdk_2.Utils.toArray(keyring[fieldName], 'base64'),
|
|
98
|
-
counterparty: counterparty || this.subject,
|
|
99
|
-
...CertOps.getProtocolForCertificateFieldEncryption(this.serialNumber, fieldName)
|
|
100
|
-
});
|
|
101
|
-
const fieldValue = new sdk_2.SymmetricKey(fieldRevelationKey).decrypt(sdk_2.Utils.toArray(fields[fieldName], 'base64'));
|
|
102
|
-
decryptedFields[fieldName] = sdk_2.Utils.toUTF8(fieldValue);
|
|
103
|
-
}
|
|
104
|
-
this._keyring = keyring;
|
|
105
|
-
this._encryptedFields = fields;
|
|
106
|
-
this.fields = this._decryptedFields = decryptedFields;
|
|
107
|
-
return decryptedFields;
|
|
108
|
-
}
|
|
109
|
-
catch (eu) {
|
|
110
|
-
const e = index_client_1.sdk.WalletError.fromUnknown(eu);
|
|
111
|
-
throw e;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
async exportForCounterparty(
|
|
115
|
-
/** The incoming counterparty is who they are to us. */
|
|
116
|
-
counterparty, fieldsToReveal) {
|
|
117
|
-
if (!this._keyring || !this._encryptedFields || !this.signature || this.signature.length === 0)
|
|
118
|
-
throw new WERR_errors_1.WERR_INVALID_OPERATION(`Certificate must be encrypted and signed prior to export.`);
|
|
119
|
-
const certificate = this.toWalletCertificate();
|
|
120
|
-
const keyring = await this.createKeyringForVerifier(counterparty, fieldsToReveal);
|
|
121
|
-
// The exported counterparty is who we are to them...
|
|
122
|
-
return {
|
|
123
|
-
certificate,
|
|
124
|
-
keyring,
|
|
125
|
-
counterparty: await (0, index_client_1.getIdentityKey)(this.wallet)
|
|
126
|
-
};
|
|
127
|
-
}
|
|
128
|
-
/**
|
|
129
|
-
* Creates a verifiable certificate structure for a specific verifier, allowing them access to specified fields.
|
|
130
|
-
* This method decrypts the master field keys for each field specified in `fieldsToReveal` and re-encrypts them
|
|
131
|
-
* for the verifier's identity key. The resulting certificate structure includes only the fields intended to be
|
|
132
|
-
* revealed and a verifier-specific keyring for field decryption.
|
|
133
|
-
*
|
|
134
|
-
* @param {PubKeyHex} verifierIdentityKey - The public identity key of the verifier who will receive access to the specified fields.
|
|
135
|
-
* @param {CertificateFieldNameUnder50Bytes[]} fieldsToReveal - An array of field names to be revealed to the verifier. Must be a subset of the certificate's fields.
|
|
136
|
-
* @returns {Promise<Record<CertificateFieldNameUnder50Bytes[], Base64String>} - A new certificate structure containing the original encrypted fields, the verifier-specific field decryption keyring, and essential certificate metadata.
|
|
137
|
-
* @throws {WERR_INVALID_PARAMETER} Throws an error if:
|
|
138
|
-
* - fieldsToReveal is empty or a field in `fieldsToReveal` does not exist in the certificate.
|
|
139
|
-
* - The decrypted master field key fails to decrypt the corresponding field (indicating an invalid key).
|
|
140
|
-
*/
|
|
141
|
-
async createKeyringForVerifier(verifierIdentityKey, fieldsToReveal) {
|
|
142
|
-
if (!this._keyring || !this._encryptedFields)
|
|
143
|
-
throw new index_client_1.sdk.WERR_INVALID_OPERATION(`certificate must be encrypted`);
|
|
144
|
-
if (!Array.isArray(fieldsToReveal) || fieldsToReveal.some(n => this._encryptedFields[n] === undefined))
|
|
145
|
-
throw new index_client_1.sdk.WERR_INVALID_PARAMETER('fieldsToReveal', `an array of certificate field names`);
|
|
146
|
-
const fieldRevelationKeyring = {};
|
|
147
|
-
for (const fieldName of fieldsToReveal) {
|
|
148
|
-
// Create a keyID
|
|
149
|
-
const encryptedFieldKey = this._keyring[fieldName];
|
|
150
|
-
const protocol = CertOps.getProtocolForCertificateFieldEncryption(this.serialNumber, fieldName);
|
|
151
|
-
// Decrypt the master field key
|
|
152
|
-
const { plaintext: fieldKey } = await this.wallet.decrypt({
|
|
153
|
-
ciphertext: sdk_2.Utils.toArray(encryptedFieldKey, 'base64'),
|
|
154
|
-
counterparty: this.certifier,
|
|
155
|
-
...protocol
|
|
156
|
-
});
|
|
157
|
-
// Verify that derived key actually decrypts requested field
|
|
158
|
-
try {
|
|
159
|
-
new sdk_2.SymmetricKey(fieldKey).decrypt(sdk_2.Utils.toArray(this.fields[fieldName], 'base64'));
|
|
160
|
-
}
|
|
161
|
-
catch (_) {
|
|
162
|
-
throw new index_client_1.sdk.WERR_INTERNAL(`unable to decrypt field "${fieldName}" using derived field key.`);
|
|
163
|
-
}
|
|
164
|
-
// Encrypt derived fieldRevelationKey for verifier
|
|
165
|
-
const { ciphertext: encryptedFieldRevelationKey } = await this.wallet.encrypt({
|
|
166
|
-
plaintext: fieldKey,
|
|
167
|
-
counterparty: verifierIdentityKey,
|
|
168
|
-
...protocol
|
|
169
|
-
});
|
|
170
|
-
// Add encryptedFieldRevelationKey to fieldRevelationKeyring
|
|
171
|
-
fieldRevelationKeyring[fieldName] = sdk_2.Utils.toBase64(encryptedFieldRevelationKey);
|
|
172
|
-
}
|
|
173
|
-
// Return the field revelation keyring which can be used to create a verifiable certificate for a verifier.
|
|
174
|
-
return fieldRevelationKeyring;
|
|
175
|
-
}
|
|
176
|
-
/**
|
|
177
|
-
* encrypt plaintext field values for the subject
|
|
178
|
-
* update the signature using the certifier's private key.
|
|
179
|
-
*/
|
|
180
|
-
async encryptAndSignNewCertificate() {
|
|
181
|
-
if ((await (0, index_client_1.getIdentityKey)(this.wallet)) !== this.certifier)
|
|
182
|
-
throw new index_client_1.sdk.WERR_INVALID_PARAMETER('wallet', 'the certifier for new certificate issuance.');
|
|
183
|
-
await this.encryptFields(this.subject);
|
|
184
|
-
await this.sign(this.wallet);
|
|
185
|
-
// Confirm the signed certificate verifies:
|
|
186
|
-
await this.verify();
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
exports.CertOps = CertOps;
|
|
190
|
-
//# sourceMappingURL=CertOps.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CertOps.js","sourceRoot":"","sources":["../../../src/sdk/CertOps.ts"],"names":[],"mappings":"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"}
|