@psf/bch-js 5.4.1 → 6.1.0
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/.on-save.json +8 -0
- package/LICENSE.md +1 -2
- package/package.json +6 -6
- package/src/slp/utils.js +0 -1241
- package/src/utxo.js +0 -270
- package/test/integration/slp.js +0 -470
- package/test/unit/slp-utils.js +0 -724
- package/test/unit/utxo-unit.js +0 -131
package/test/unit/utxo-unit.js
CHANGED
|
@@ -15,137 +15,6 @@ describe('#utxo', () => {
|
|
|
15
15
|
beforeEach(() => (sandbox = sinon.createSandbox()))
|
|
16
16
|
afterEach(() => sandbox.restore())
|
|
17
17
|
|
|
18
|
-
describe('#getOld', () => {
|
|
19
|
-
it('should get hydrated and filtered UTXOs for an address', async () => {
|
|
20
|
-
// Mock dependencies.
|
|
21
|
-
sandbox.stub(bchjs.Utxo.electrumx, 'utxo').resolves(mockData.mockUtxoData)
|
|
22
|
-
sandbox
|
|
23
|
-
.stub(bchjs.Utxo.slp.Utils, 'hydrateUtxos')
|
|
24
|
-
.resolves(mockData.mockHydratedUtxos)
|
|
25
|
-
|
|
26
|
-
const addr = 'simpleledger:qzv3zz2trz0xgp6a96lu4m6vp2nkwag0kvyucjzqt9'
|
|
27
|
-
|
|
28
|
-
const result = await bchjs.Utxo.getOld(addr)
|
|
29
|
-
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
|
30
|
-
|
|
31
|
-
assert.isArray(result)
|
|
32
|
-
assert.property(result[0], 'address')
|
|
33
|
-
assert.property(result[0], 'bchUtxos')
|
|
34
|
-
assert.property(result[0], 'nullUtxos')
|
|
35
|
-
assert.property(result[0], 'slpUtxos')
|
|
36
|
-
assert.isArray(result[0].bchUtxos)
|
|
37
|
-
assert.isArray(result[0].nullUtxos)
|
|
38
|
-
})
|
|
39
|
-
|
|
40
|
-
it('should catch and throw an error', async () => {
|
|
41
|
-
try {
|
|
42
|
-
// Force an error
|
|
43
|
-
sandbox
|
|
44
|
-
.stub(bchjs.Utxo.electrumx, 'utxo')
|
|
45
|
-
.rejects(new Error('test error'))
|
|
46
|
-
|
|
47
|
-
const addr = 'simpleledger:qzv3zz2trz0xgp6a96lu4m6vp2nkwag0kvyucjzqt9'
|
|
48
|
-
|
|
49
|
-
await bchjs.Utxo.getOld(addr)
|
|
50
|
-
|
|
51
|
-
assert.fail('Unexpected code path')
|
|
52
|
-
} catch (err) {
|
|
53
|
-
assert.include(err.message, 'test error')
|
|
54
|
-
}
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
it('should handle an array of addresses', async () => {
|
|
58
|
-
// Mock dependencies.
|
|
59
|
-
sandbox.stub(bchjs.Utxo.electrumx, 'utxo').resolves({ utxos: {} })
|
|
60
|
-
sandbox
|
|
61
|
-
.stub(bchjs.Utxo.slp.Utils, 'hydrateUtxos')
|
|
62
|
-
.resolves(mockData.mockTwoHydratedAddrs)
|
|
63
|
-
|
|
64
|
-
const addr = [
|
|
65
|
-
'simpleledger:qzv3zz2trz0xgp6a96lu4m6vp2nkwag0kvyucjzqt9',
|
|
66
|
-
'bitcoincash:qqh793x9au6ehvh7r2zflzguanlme760wuzehgzjh9'
|
|
67
|
-
]
|
|
68
|
-
|
|
69
|
-
const result = await bchjs.Utxo.getOld(addr)
|
|
70
|
-
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
|
71
|
-
|
|
72
|
-
assert.isArray(result)
|
|
73
|
-
assert.equal(result.length, 2)
|
|
74
|
-
assert.property(result[0], 'address')
|
|
75
|
-
assert.property(result[0], 'bchUtxos')
|
|
76
|
-
assert.property(result[0], 'nullUtxos')
|
|
77
|
-
assert.property(result[0], 'slpUtxos')
|
|
78
|
-
assert.isArray(result[0].bchUtxos)
|
|
79
|
-
assert.isArray(result[0].nullUtxos)
|
|
80
|
-
})
|
|
81
|
-
|
|
82
|
-
it('should throw an error for array of 21 elements', async () => {
|
|
83
|
-
try {
|
|
84
|
-
const addr = 'simpleledger:qzv3zz2trz0xgp6a96lu4m6vp2nkwag0kvyucjzqt9'
|
|
85
|
-
|
|
86
|
-
const addrs = []
|
|
87
|
-
for (let i = 0; i < 21; i++) {
|
|
88
|
-
addrs.push(addr)
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
await bchjs.Utxo.getOld(addrs)
|
|
92
|
-
|
|
93
|
-
assert.fail('Unexpected code path')
|
|
94
|
-
} catch (err) {
|
|
95
|
-
assert.include(err.message, 'Too many elements, 20 max.')
|
|
96
|
-
}
|
|
97
|
-
})
|
|
98
|
-
|
|
99
|
-
it('should handle NFTs and minting batons', async () => {
|
|
100
|
-
// Mock dependencies.
|
|
101
|
-
sandbox.stub(bchjs.Utxo.electrumx, 'utxo').resolves({ utxos: {} })
|
|
102
|
-
sandbox
|
|
103
|
-
.stub(bchjs.Utxo.slp.Utils, 'hydrateUtxos')
|
|
104
|
-
.resolves(mockData.mockEveryUtxoType)
|
|
105
|
-
|
|
106
|
-
const addr = 'simpleledger:qrm0c67wwqh0w7wjxua2gdt2xggnm90xwsr5k22euj'
|
|
107
|
-
|
|
108
|
-
const result = await bchjs.Utxo.getOld(addr)
|
|
109
|
-
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
|
110
|
-
|
|
111
|
-
assert.isArray(result)
|
|
112
|
-
assert.property(result[0], 'address')
|
|
113
|
-
assert.property(result[0], 'bchUtxos')
|
|
114
|
-
assert.property(result[0], 'nullUtxos')
|
|
115
|
-
assert.property(result[0], 'slpUtxos')
|
|
116
|
-
assert.isArray(result[0].bchUtxos)
|
|
117
|
-
assert.isArray(result[0].nullUtxos)
|
|
118
|
-
|
|
119
|
-
assert.isArray(result[0].slpUtxos.type1.mintBatons)
|
|
120
|
-
assert.isArray(result[0].slpUtxos.type1.tokens)
|
|
121
|
-
assert.isArray(result[0].slpUtxos.nft.groupMintBatons)
|
|
122
|
-
assert.isArray(result[0].slpUtxos.nft.groupTokens)
|
|
123
|
-
assert.isArray(result[0].slpUtxos.nft.tokens)
|
|
124
|
-
})
|
|
125
|
-
|
|
126
|
-
it('should use the whitelist when flag is set', async () => {
|
|
127
|
-
// Mock dependencies.
|
|
128
|
-
sandbox.stub(bchjs.Utxo.electrumx, 'utxo').resolves(mockData.mockUtxoData)
|
|
129
|
-
sandbox
|
|
130
|
-
.stub(bchjs.Utxo.slp.Utils, 'hydrateUtxosWL')
|
|
131
|
-
.resolves(mockData.mockHydratedUtxos)
|
|
132
|
-
|
|
133
|
-
const addr = 'simpleledger:qzv3zz2trz0xgp6a96lu4m6vp2nkwag0kvyucjzqt9'
|
|
134
|
-
const useWhitelist = true
|
|
135
|
-
|
|
136
|
-
const result = await bchjs.Utxo.getOld(addr, useWhitelist)
|
|
137
|
-
// console.log(`result: ${JSON.stringify(result, null, 2)}`)
|
|
138
|
-
|
|
139
|
-
assert.isArray(result)
|
|
140
|
-
assert.property(result[0], 'address')
|
|
141
|
-
assert.property(result[0], 'bchUtxos')
|
|
142
|
-
assert.property(result[0], 'nullUtxos')
|
|
143
|
-
assert.property(result[0], 'slpUtxos')
|
|
144
|
-
assert.isArray(result[0].bchUtxos)
|
|
145
|
-
assert.isArray(result[0].nullUtxos)
|
|
146
|
-
})
|
|
147
|
-
})
|
|
148
|
-
|
|
149
18
|
describe('#findBiggestUtxo', () => {
|
|
150
19
|
it('should throw error for non-array input', async () => {
|
|
151
20
|
try {
|