@bsv/sdk 1.3.8 → 1.3.9
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/dist/cjs/package.json +1 -1
- package/dist/cjs/src/auth/Peer.js +1 -1
- package/dist/cjs/src/auth/Peer.js.map +1 -1
- package/dist/cjs/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/MasterCertificate.js +3 -3
- package/dist/cjs/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js +1 -1
- package/dist/cjs/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js +12 -0
- package/dist/cjs/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/cjs/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/cjs/src/auth/utils/createNonce.js.map +1 -1
- package/dist/cjs/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/cjs/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/cjs/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/cjs/src/script/templates/PushDrop.js +1 -1
- package/dist/cjs/src/script/templates/PushDrop.js.map +1 -1
- package/dist/cjs/src/wallet/ProtoWallet.js +10 -58
- package/dist/cjs/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/cjs/src/wallet/WalletClient.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/cjs/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/auth/Peer.js +1 -1
- package/dist/esm/src/auth/Peer.js.map +1 -1
- package/dist/esm/src/auth/certificates/Certificate.js +1 -1
- package/dist/esm/src/auth/certificates/Certificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/MasterCertificate.js +3 -3
- package/dist/esm/src/auth/certificates/MasterCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js +1 -1
- package/dist/esm/src/auth/certificates/VerifiableCertificate.js.map +1 -1
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js +12 -0
- package/dist/esm/src/auth/certificates/__tests/CompletedProtoWallet.js.map +1 -1
- package/dist/esm/src/auth/clients/AuthFetch.js.map +1 -1
- package/dist/esm/src/auth/utils/createNonce.js.map +1 -1
- package/dist/esm/src/auth/utils/getVerifiableCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/validateCertificates.js.map +1 -1
- package/dist/esm/src/auth/utils/verifyNonce.js.map +1 -1
- package/dist/esm/src/overlay-tools/OverlayAdminTokenTemplate.js.map +1 -1
- package/dist/esm/src/script/templates/PushDrop.js +1 -1
- package/dist/esm/src/script/templates/PushDrop.js.map +1 -1
- package/dist/esm/src/wallet/ProtoWallet.js +10 -58
- package/dist/esm/src/wallet/ProtoWallet.js.map +1 -1
- package/dist/esm/src/wallet/WalletClient.js.map +1 -1
- package/dist/esm/src/wallet/substrates/HTTPWalletJSON.js.map +1 -1
- package/dist/esm/src/wallet/substrates/WalletWireProcessor.js.map +1 -1
- package/dist/esm/src/wallet/substrates/window.CWI.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/auth/Peer.d.ts +3 -3
- package/dist/types/src/auth/Peer.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/Certificate.d.ts +2 -2
- package/dist/types/src/auth/certificates/Certificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts +7 -7
- package/dist/types/src/auth/certificates/MasterCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts +3 -3
- package/dist/types/src/auth/certificates/VerifiableCertificate.d.ts.map +1 -1
- package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts +6 -2
- package/dist/types/src/auth/certificates/__tests/CompletedProtoWallet.d.ts.map +1 -1
- package/dist/types/src/auth/clients/AuthFetch.d.ts +2 -2
- package/dist/types/src/auth/clients/AuthFetch.d.ts.map +1 -1
- package/dist/types/src/auth/utils/createNonce.d.ts +2 -2
- package/dist/types/src/auth/utils/createNonce.d.ts.map +1 -1
- package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts +2 -2
- package/dist/types/src/auth/utils/getVerifiableCertificates.d.ts.map +1 -1
- package/dist/types/src/auth/utils/validateCertificates.d.ts +2 -2
- package/dist/types/src/auth/utils/validateCertificates.d.ts.map +1 -1
- package/dist/types/src/auth/utils/verifyNonce.d.ts +2 -2
- package/dist/types/src/auth/utils/verifyNonce.d.ts.map +1 -1
- package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts +2 -2
- package/dist/types/src/overlay-tools/OverlayAdminTokenTemplate.d.ts.map +1 -1
- package/dist/types/src/script/templates/PushDrop.d.ts +4 -4
- package/dist/types/src/script/templates/PushDrop.d.ts.map +1 -1
- package/dist/types/src/wallet/ProtoWallet.d.ts +12 -24
- package/dist/types/src/wallet/ProtoWallet.d.ts.map +1 -1
- package/dist/types/src/wallet/Wallet.interfaces.d.ts +5 -18
- package/dist/types/src/wallet/Wallet.interfaces.d.ts.map +1 -1
- package/dist/types/src/wallet/WalletClient.d.ts +4 -4
- package/dist/types/src/wallet/WalletClient.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts +2 -2
- package/dist/types/src/wallet/substrates/HTTPWalletJSON.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts +3 -3
- package/dist/types/src/wallet/substrates/WalletWireProcessor.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts +2 -2
- package/dist/types/src/wallet/substrates/WalletWireTransceiver.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/XDM.d.ts +2 -2
- package/dist/types/src/wallet/substrates/XDM.d.ts.map +1 -1
- package/dist/types/src/wallet/substrates/window.CWI.d.ts +2 -2
- package/dist/types/src/wallet/substrates/window.CWI.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/docs/auth.md +72 -39
- package/docs/overlay-tools.md +4 -4
- package/docs/script.md +5 -5
- package/docs/wallet-substrates.md +11 -11
- package/docs/wallet.md +300 -360
- package/package.json +1 -1
- package/src/auth/Peer.ts +25 -25
- package/src/auth/certificates/Certificate.ts +4 -3
- package/src/auth/certificates/MasterCertificate.ts +8 -8
- package/src/auth/certificates/VerifiableCertificate.ts +3 -3
- package/src/auth/certificates/__tests/CompletedProtoWallet.ts +14 -3
- package/src/auth/clients/AuthFetch.ts +3 -3
- package/src/auth/utils/createNonce.ts +2 -2
- package/src/auth/utils/getVerifiableCertificates.ts +2 -2
- package/src/auth/utils/validateCertificates.ts +2 -2
- package/src/auth/utils/verifyNonce.ts +2 -2
- package/src/overlay-tools/OverlayAdminTokenTemplate.ts +5 -5
- package/src/script/templates/PushDrop.ts +4 -4
- package/src/wallet/ProtoWallet.ts +11 -77
- package/src/wallet/Wallet.interfaces.ts +5 -19
- package/src/wallet/WalletClient.ts +62 -62
- package/src/wallet/__tests/ProtoWallet.test.ts +0 -31
- package/src/wallet/substrates/HTTPWalletJSON.ts +3 -3
- package/src/wallet/substrates/WalletWireProcessor.ts +3 -3
- package/src/wallet/substrates/WalletWireTransceiver.ts +2 -2
- package/src/wallet/substrates/XDM.ts +3 -3
- package/src/wallet/substrates/__tests/WalletWire.integration.test.ts +0 -104
- package/src/wallet/substrates/window.CWI.ts +5 -5
|
@@ -60,47 +60,6 @@ describe('WalletWire Integration Tests', () => {
|
|
|
60
60
|
return (wallet as any).discoverByAttributes()
|
|
61
61
|
}).rejects.toThrow()
|
|
62
62
|
})
|
|
63
|
-
it('Throws the privileged error when the privileged flag is set', async () => {
|
|
64
|
-
const wallet = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet('anyone')))
|
|
65
|
-
const privilegedError = 'ProtoWallet is a single-keyring wallet, operating without context about whether its configured keyring is privileged.'
|
|
66
|
-
const saneParams = {
|
|
67
|
-
protocolID: [0, 'hello world'],
|
|
68
|
-
keyID: '123123123',
|
|
69
|
-
plaintext: [0, 1, 3],
|
|
70
|
-
ciphertext: [3, 4, 5],
|
|
71
|
-
data: [1, 3, 5],
|
|
72
|
-
hmac: [1, 3, 5],
|
|
73
|
-
signature: [1, 3, 5],
|
|
74
|
-
counterparty: 'self'
|
|
75
|
-
}
|
|
76
|
-
await expect(() => {
|
|
77
|
-
return (wallet as any).encrypt({ ...saneParams, privileged: true })
|
|
78
|
-
}).rejects.toThrow(new Error(privilegedError))
|
|
79
|
-
await expect(() => {
|
|
80
|
-
return (wallet as any).decrypt({ ...saneParams, privileged: true })
|
|
81
|
-
}).rejects.toThrow(new Error(privilegedError))
|
|
82
|
-
await expect(() => {
|
|
83
|
-
return (wallet as any).createSignature({ ...saneParams, privileged: true })
|
|
84
|
-
}).rejects.toThrow(new Error(privilegedError))
|
|
85
|
-
await expect(() => {
|
|
86
|
-
return (wallet as any).verifySignature({ ...saneParams, privileged: true })
|
|
87
|
-
}).rejects.toThrow(new Error(privilegedError))
|
|
88
|
-
await expect(() => {
|
|
89
|
-
return (wallet as any).createHmac({ ...saneParams, privileged: true })
|
|
90
|
-
}).rejects.toThrow(new Error(privilegedError))
|
|
91
|
-
await expect(() => {
|
|
92
|
-
return (wallet as any).verifyHmac({ ...saneParams, privileged: true })
|
|
93
|
-
}).rejects.toThrow(new Error(privilegedError))
|
|
94
|
-
await expect(() => {
|
|
95
|
-
return (wallet as any).getPublicKey({ ...saneParams, privileged: true })
|
|
96
|
-
}).rejects.toThrow(new Error(privilegedError))
|
|
97
|
-
await expect(() => {
|
|
98
|
-
return (wallet as any).revealCounterpartyKeyLinkage({ ...saneParams, privileged: true })
|
|
99
|
-
}).rejects.toThrow(new Error(privilegedError))
|
|
100
|
-
await expect(() => {
|
|
101
|
-
return (wallet as any).revealSpecificKeyLinkage({ ...saneParams, privileged: true })
|
|
102
|
-
}).rejects.toThrow(new Error(privilegedError))
|
|
103
|
-
})
|
|
104
63
|
it('Validates the BRC-3 compliance vector', async () => {
|
|
105
64
|
const wallet = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet('anyone')))
|
|
106
65
|
const { valid } = await wallet.verifySignature({
|
|
@@ -356,13 +315,6 @@ describe('WalletWire Integration Tests', () => {
|
|
|
356
315
|
counterparty: counterpartyKey.toPublicKey().toString()
|
|
357
316
|
})).rejects.toThrow()
|
|
358
317
|
})
|
|
359
|
-
it('Returns the expected version, network, and authentication status', async () => {
|
|
360
|
-
const wallet = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet('anyone')))
|
|
361
|
-
expect(await wallet.getVersion({})).toEqual({ version: 'proto-1.0.0' })
|
|
362
|
-
expect(await wallet.getNetwork({})).toEqual({ network: 'mainnet' })
|
|
363
|
-
expect(await wallet.isAuthenticated({})).toEqual({ authenticated: true })
|
|
364
|
-
expect(await wallet.waitForAuthentication({})).toEqual({ authenticated: true })
|
|
365
|
-
})
|
|
366
318
|
it('Uses anyone for creating signatures and self for other operations if no counterparty is provided', async () => {
|
|
367
319
|
const userKey = PrivateKey.fromRandom()
|
|
368
320
|
const user = new WalletWireTransceiver(new WalletWireProcessor(new ProtoWallet(userKey)))
|
|
@@ -1132,16 +1084,6 @@ describe('WalletWire Integration Tests', () => {
|
|
|
1132
1084
|
expect(typeof result.publicKey).toBe('string')
|
|
1133
1085
|
expect(result.publicKey.length).toBe(66)
|
|
1134
1086
|
})
|
|
1135
|
-
|
|
1136
|
-
it('should throw an error for privileged operation without permission', async () => {
|
|
1137
|
-
const wallet = createTestWalletWire(new ProtoWallet(PrivateKey.fromRandom()))
|
|
1138
|
-
const args = {
|
|
1139
|
-
identityKey: true as true,
|
|
1140
|
-
privileged: true,
|
|
1141
|
-
privilegedReason: 'Test privileged operation'
|
|
1142
|
-
}
|
|
1143
|
-
await expect(wallet.getPublicKey(args)).rejects.toThrow()
|
|
1144
|
-
})
|
|
1145
1087
|
})
|
|
1146
1088
|
|
|
1147
1089
|
describe('encrypt and decrypt', () => {
|
|
@@ -1304,54 +1246,8 @@ describe('WalletWire Integration Tests', () => {
|
|
|
1304
1246
|
const expectedLinkage = proverKey.deriveSharedSecret(counterpartyKey.toPublicKey()).encode(true)
|
|
1305
1247
|
expect(decryptedResult.plaintext).toEqual(expectedLinkage)
|
|
1306
1248
|
})
|
|
1307
|
-
|
|
1308
|
-
it('should throw an error when trying to reveal linkage without privilege', async () => {
|
|
1309
|
-
const proverKey = PrivateKey.fromRandom()
|
|
1310
|
-
const counterpartyKey = PrivateKey.fromRandom()
|
|
1311
|
-
const verifierKey = PrivateKey.fromRandom()
|
|
1312
|
-
|
|
1313
|
-
const proverWallet = createTestWalletWire(new ProtoWallet(proverKey))
|
|
1314
|
-
|
|
1315
|
-
const args = {
|
|
1316
|
-
counterparty: counterpartyKey.toPublicKey().toString(),
|
|
1317
|
-
verifier: verifierKey.toPublicKey().toString(),
|
|
1318
|
-
privileged: true
|
|
1319
|
-
}
|
|
1320
|
-
|
|
1321
|
-
await expect(proverWallet.revealCounterpartyKeyLinkage(args)).rejects.toThrow()
|
|
1322
|
-
})
|
|
1323
|
-
})
|
|
1324
|
-
|
|
1325
|
-
describe('getVersion and getNetwork', () => {
|
|
1326
|
-
it('should return the correct version', async () => {
|
|
1327
|
-
const wallet = createTestWalletWire(new ProtoWallet('anyone'))
|
|
1328
|
-
const result = await wallet.getVersion({})
|
|
1329
|
-
expect(result).toHaveProperty('version')
|
|
1330
|
-
expect(typeof result.version).toBe('string')
|
|
1331
|
-
})
|
|
1332
|
-
|
|
1333
|
-
it('should return the correct network', async () => {
|
|
1334
|
-
const wallet = createTestWalletWire(new ProtoWallet('anyone'))
|
|
1335
|
-
const result = await wallet.getNetwork({})
|
|
1336
|
-
expect(result).toHaveProperty('network')
|
|
1337
|
-
expect(['mainnet', 'testnet']).toContain(result.network)
|
|
1338
|
-
})
|
|
1339
1249
|
})
|
|
1340
1250
|
|
|
1341
|
-
describe('isAuthenticated and waitForAuthentication', () => {
|
|
1342
|
-
it('should return authentication status', async () => {
|
|
1343
|
-
const wallet = createTestWalletWire(new ProtoWallet('anyone'))
|
|
1344
|
-
const result = await wallet.isAuthenticated({})
|
|
1345
|
-
expect(result).toHaveProperty('authenticated')
|
|
1346
|
-
expect(typeof result.authenticated).toBe('boolean')
|
|
1347
|
-
})
|
|
1348
|
-
|
|
1349
|
-
it('should wait for authentication', async () => {
|
|
1350
|
-
const wallet = createTestWalletWire(new ProtoWallet('anyone'))
|
|
1351
|
-
const result = await wallet.waitForAuthentication({})
|
|
1352
|
-
expect(result).toEqual({ authenticated: true })
|
|
1353
|
-
})
|
|
1354
|
-
})
|
|
1355
1251
|
describe('acquireCertificate', () => {
|
|
1356
1252
|
it('should acquire a certificate with valid inputs', async () => {
|
|
1357
1253
|
// Mock the acquireCertificate method
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Base64String, BasketStringUnder300Bytes, BEEF, BooleanDefaultFalse, BooleanDefaultTrue, Byte, CertificateFieldNameUnder50Bytes, DescriptionString5to50Bytes, EntityIconURLStringMax500Bytes, EntityNameStringMax100Bytes, HexString, ISOTimestampString, KeyIDStringUnder800Bytes, LabelStringUnder300Bytes, OriginatorDomainNameStringUnder250Bytes, OutpointString, OutputTagStringUnder300Bytes, PositiveInteger, PositiveIntegerDefault10Max10000, PositiveIntegerMax10, PositiveIntegerOrZero, ProtocolString5To400Bytes, PubKeyHex, SatoshiValue, SecurityLevel, TXIDHexString, VersionString7To30Bytes,
|
|
1
|
+
import { Base64String, BasketStringUnder300Bytes, BEEF, BooleanDefaultFalse, BooleanDefaultTrue, Byte, CertificateFieldNameUnder50Bytes, DescriptionString5to50Bytes, EntityIconURLStringMax500Bytes, EntityNameStringMax100Bytes, HexString, ISOTimestampString, KeyIDStringUnder800Bytes, LabelStringUnder300Bytes, OriginatorDomainNameStringUnder250Bytes, OutpointString, OutputTagStringUnder300Bytes, PositiveInteger, PositiveIntegerDefault10Max10000, PositiveIntegerMax10, PositiveIntegerOrZero, ProtocolString5To400Bytes, PubKeyHex, SatoshiValue, SecurityLevel, TXIDHexString, VersionString7To30Bytes, WalletInterface } from '../Wallet.interfaces.js'
|
|
2
2
|
|
|
3
3
|
declare const window: {
|
|
4
|
-
CWI?:
|
|
4
|
+
CWI?: WalletInterface
|
|
5
5
|
} & Window
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Facilitates wallet operations over the window.CWI interface.
|
|
9
9
|
*/
|
|
10
|
-
export default class WindowCWISubstrate implements
|
|
11
|
-
private CWI:
|
|
10
|
+
export default class WindowCWISubstrate implements WalletInterface {
|
|
11
|
+
private CWI: WalletInterface
|
|
12
12
|
constructor() {
|
|
13
13
|
if (typeof window !== 'object') {
|
|
14
14
|
throw new Error('The window.CWI substrate requires a global window object.')
|
|
@@ -16,7 +16,7 @@ export default class WindowCWISubstrate implements Wallet {
|
|
|
16
16
|
if (typeof window.CWI !== 'object') {
|
|
17
17
|
throw new Error('The window.CWI interface does not appear to be bound to the window object.')
|
|
18
18
|
}
|
|
19
|
-
this.CWI = window.CWI as
|
|
19
|
+
this.CWI = window.CWI as WalletInterface // Binding CWI to prevent changes
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
async createAction(args: { description: DescriptionString5to50Bytes, inputs?: Array<{ tx?: BEEF, outpoint: OutpointString, unlockingScript?: HexString, unlockingScriptLength?: PositiveInteger, inputDescription: DescriptionString5to50Bytes, sequenceNumber?: PositiveIntegerOrZero }>, outputs?: Array<{ lockingScript: HexString, satoshis: SatoshiValue, outputDescription: DescriptionString5to50Bytes, basket?: BasketStringUnder300Bytes, customInstructions?: string, tags?: OutputTagStringUnder300Bytes[] }>, lockTime?: PositiveIntegerOrZero, version?: PositiveIntegerOrZero, labels?: LabelStringUnder300Bytes[], options?: { signAndProcess?: BooleanDefaultTrue, acceptDelayedBroadcast?: BooleanDefaultTrue, trustSelf?: 'known', knownTxids?: TXIDHexString[], returnTXIDOnly?: BooleanDefaultFalse, noSend?: BooleanDefaultFalse, noSendChange?: OutpointString[], sendWith?: TXIDHexString[] } }, originator?: OriginatorDomainNameStringUnder250Bytes): Promise<{ txid?: TXIDHexString, tx?: BEEF, noSendChange?: OutpointString[], sendWithResults?: Array<{ txid: TXIDHexString, status: 'unproven' | 'sending' | 'failed' }>, signableTransaction?: { tx: BEEF, reference: Base64String } }> {
|