@bsv/sdk 1.2.17 → 1.2.19
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/primitives/BigNumber.js +85 -89
- package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
- package/dist/cjs/src/primitives/PublicKey.js +5 -2
- package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
- package/dist/cjs/src/primitives/Random.js +3 -2
- package/dist/cjs/src/primitives/Random.js.map +1 -1
- package/dist/cjs/src/primitives/utils.js +71 -62
- package/dist/cjs/src/primitives/utils.js.map +1 -1
- package/dist/cjs/src/totp/totp.js +0 -1
- package/dist/cjs/src/totp/totp.js.map +1 -1
- package/dist/cjs/src/transaction/Beef.js +26 -40
- package/dist/cjs/src/transaction/Beef.js.map +1 -1
- package/dist/cjs/src/transaction/BeefParty.js +1 -1
- package/dist/cjs/src/transaction/BeefTx.js +75 -73
- package/dist/cjs/src/transaction/BeefTx.js.map +1 -1
- package/dist/cjs/src/transaction/MerklePath.js +12 -1
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
- package/dist/cjs/src/transaction/Transaction.js +70 -96
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js +20 -2
- package/dist/cjs/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/primitives/BigNumber.js +85 -89
- package/dist/esm/src/primitives/BigNumber.js.map +1 -1
- package/dist/esm/src/primitives/PublicKey.js +5 -2
- package/dist/esm/src/primitives/PublicKey.js.map +1 -1
- package/dist/esm/src/primitives/Random.js +2 -2
- package/dist/esm/src/primitives/Random.js.map +1 -1
- package/dist/esm/src/primitives/utils.js +70 -61
- package/dist/esm/src/primitives/utils.js.map +1 -1
- package/dist/esm/src/totp/totp.js +0 -1
- package/dist/esm/src/totp/totp.js.map +1 -1
- package/dist/esm/src/transaction/Beef.js +25 -39
- package/dist/esm/src/transaction/Beef.js.map +1 -1
- package/dist/esm/src/transaction/BeefParty.js +1 -1
- package/dist/esm/src/transaction/BeefTx.js +76 -74
- package/dist/esm/src/transaction/BeefTx.js.map +1 -1
- package/dist/esm/src/transaction/MerklePath.js +12 -1
- package/dist/esm/src/transaction/MerklePath.js.map +1 -1
- package/dist/esm/src/transaction/Transaction.js +71 -97
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js +20 -2
- package/dist/esm/src/transaction/chaintrackers/WhatsOnChain.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts +24 -22
- package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
- package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
- package/dist/types/src/primitives/utils.d.ts +17 -17
- package/dist/types/src/primitives/utils.d.ts.map +1 -1
- package/dist/types/src/transaction/Beef.d.ts +9 -12
- package/dist/types/src/transaction/Beef.d.ts.map +1 -1
- package/dist/types/src/transaction/BeefParty.d.ts +1 -1
- package/dist/types/src/transaction/BeefTx.d.ts +5 -2
- package/dist/types/src/transaction/BeefTx.d.ts.map +1 -1
- package/dist/types/src/transaction/ChainTracker.d.ts +6 -0
- package/dist/types/src/transaction/ChainTracker.d.ts.map +1 -1
- package/dist/types/src/transaction/MerklePath.d.ts +1 -0
- package/dist/types/src/transaction/MerklePath.d.ts.map +1 -1
- package/dist/types/src/transaction/Transaction.d.ts +6 -0
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts +2 -1
- package/dist/types/src/transaction/chaintrackers/WhatsOnChain.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/dist/umd/bundle.js +1 -1
- package/docs/compat.md +13 -11
- package/docs/primitives.md +152 -188
- package/docs/transaction.md +78 -76
- package/package.json +1 -1
- package/src/primitives/BigNumber.ts +111 -111
- package/src/primitives/PublicKey.ts +5 -2
- package/src/primitives/Random.ts +2 -2
- package/src/primitives/utils.ts +92 -77
- package/src/totp/totp.ts +0 -1
- package/src/transaction/Beef.ts +20 -43
- package/src/transaction/BeefParty.ts +1 -1
- package/src/transaction/BeefTx.ts +89 -57
- package/src/transaction/ChainTracker.ts +6 -0
- package/src/transaction/MerklePath.ts +13 -1
- package/src/transaction/Transaction.ts +77 -100
- package/src/transaction/__tests/Beef.test.ts +9 -9
- package/src/transaction/__tests/MerklePath.test.ts +23 -2
- package/src/transaction/__tests/Transaction.benchmarks.test.ts +1 -1
- package/src/transaction/__tests/Transaction.test.ts +3 -3
- package/src/transaction/broadcasters/__tests/WhatsOnChainBroadcaster.test.ts +2 -2
- package/src/transaction/chaintrackers/WhatsOnChain.ts +20 -2
- package/src/transaction/chaintrackers/__tests/WhatsOnChainChainTracker.test.ts +32 -1
|
@@ -40,7 +40,7 @@ export default class WhatsOnChain implements ChainTracker {
|
|
|
40
40
|
async isValidRootForHeight (root: string, height: number): Promise<boolean> {
|
|
41
41
|
const requestOptions = {
|
|
42
42
|
method: 'GET',
|
|
43
|
-
headers: this.
|
|
43
|
+
headers: this.getHttpHeaders()
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
const response = await this.httpClient.request<WhatsOnChainBlockHeader>(`${this.URL}/block/${height}/header`, requestOptions)
|
|
@@ -54,7 +54,25 @@ export default class WhatsOnChain implements ChainTracker {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
async currentHeight (): Promise<number> {
|
|
58
|
+
try {
|
|
59
|
+
const requestOptions = {
|
|
60
|
+
method: 'GET',
|
|
61
|
+
headers: this.getHttpHeaders()
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
const response = await this.httpClient.request<{ height: number }>(`${this.URL}/block/headers`, requestOptions)
|
|
65
|
+
if (response.ok) {
|
|
66
|
+
return response.data[0].height
|
|
67
|
+
} else {
|
|
68
|
+
throw new Error(`Failed to get current height because of an error: ${JSON.stringify(response.data)} `)
|
|
69
|
+
}
|
|
70
|
+
} catch (error) {
|
|
71
|
+
throw new Error(`Failed to get current height because of an error: ${error?.message}`)
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
private getHttpHeaders () {
|
|
58
76
|
const headers: Record<string, string> = {
|
|
59
77
|
Accept: 'application/json'
|
|
60
78
|
}
|
|
@@ -29,7 +29,7 @@ describe('WhatsOnChain ChainTracker', () => {
|
|
|
29
29
|
it('should verify merkleroot successfully using Node.js https', async () => {
|
|
30
30
|
// Mocking Node.js https module
|
|
31
31
|
mockedHttps(successResponse)
|
|
32
|
-
|
|
32
|
+
if (global.window) global.window = {} as any
|
|
33
33
|
|
|
34
34
|
const chainTracker = new WhatsOnChain(network)
|
|
35
35
|
const response = await chainTracker.isValidRootForHeight(merkleroot, height)
|
|
@@ -87,6 +87,37 @@ describe('WhatsOnChain ChainTracker', () => {
|
|
|
87
87
|
await expect(chainTracker.isValidRootForHeight(merkleroot, height)).rejects.toThrow(/Failed to verify merkleroot for height \d+ because of an error: .*/)
|
|
88
88
|
})
|
|
89
89
|
|
|
90
|
+
it('should return the current height', async () => {
|
|
91
|
+
const mockFetch = mockedFetch({
|
|
92
|
+
status: 200,
|
|
93
|
+
data: [
|
|
94
|
+
{
|
|
95
|
+
hash: '00000000000000000af9958a79fd4dbac1b04a553cc00c80e108718561ccb5a5',
|
|
96
|
+
confirmations: 1,
|
|
97
|
+
size: 29605652,
|
|
98
|
+
height: 875904,
|
|
99
|
+
version: 704643072,
|
|
100
|
+
versionHex: '2a000000',
|
|
101
|
+
merkleroot: '8af5a2d4325ec30e30103b1f365c303d4b49d11e42d26b0d7e9b6866724392e9',
|
|
102
|
+
time: 1734667612,
|
|
103
|
+
mediantime: 1734663717,
|
|
104
|
+
nonce: 157007350,
|
|
105
|
+
bits: '180f2b74',
|
|
106
|
+
difficulty: 72479484799.59058,
|
|
107
|
+
chainwork: '00000000000000000000000000000000000000000160c2f41c8793b90f4500dd',
|
|
108
|
+
previousblockhash: '00000000000000000128f312a7c62ef5f9a91a3f845a4464d10cfbaaecd233a0',
|
|
109
|
+
nextblockhash: '',
|
|
110
|
+
nTx: 0,
|
|
111
|
+
num_tx: 167567
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
})
|
|
115
|
+
|
|
116
|
+
const chainTracker = new WhatsOnChain(network, { httpClient: new FetchHttpClient(mockFetch) })
|
|
117
|
+
|
|
118
|
+
await expect(await chainTracker.currentHeight()).toBe(875904)
|
|
119
|
+
})
|
|
120
|
+
|
|
90
121
|
function mockedFetch (response) {
|
|
91
122
|
return jest.fn().mockResolvedValue({
|
|
92
123
|
ok: response.status === 200,
|