cashscript 0.6.4 → 0.7.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/dist/main/Argument.d.ts +2 -2
- package/dist/main/Argument.js +19 -19
- package/dist/main/Contract.d.ts +4 -4
- package/dist/main/Contract.js +15 -15
- package/dist/main/Errors.d.ts +6 -2
- package/dist/main/Errors.js +10 -2
- package/dist/main/SignatureTemplate.d.ts +1 -1
- package/dist/main/SignatureTemplate.js +3 -3
- package/dist/main/Transaction.d.ts +3 -3
- package/dist/main/Transaction.js +40 -42
- package/dist/main/index.d.ts +7 -7
- package/dist/main/index.js +22 -14
- package/dist/main/interfaces.d.ts +2 -1
- package/dist/main/interfaces.js +1 -0
- package/dist/main/network/BitboxNetworkProvider.d.ts +2 -2
- package/dist/main/network/BitcoinRpcNetworkProvider.d.ts +2 -2
- package/dist/main/network/ElectrumNetworkProvider.d.ts +2 -2
- package/dist/main/network/ElectrumNetworkProvider.js +13 -9
- package/dist/main/network/FullStackNetworkProvider.d.ts +2 -2
- package/dist/main/network/NetworkProvider.d.ts +1 -1
- package/dist/main/network/index.d.ts +5 -5
- package/dist/main/network/index.js +8 -8
- package/dist/main/utils.d.ts +3 -2
- package/dist/main/utils.js +40 -31
- package/dist/module/Argument.d.ts +2 -2
- package/dist/module/Argument.js +9 -9
- package/dist/module/Contract.d.ts +4 -4
- package/dist/module/Contract.js +5 -5
- package/dist/module/Errors.d.ts +6 -2
- package/dist/module/Errors.js +8 -1
- package/dist/module/SignatureTemplate.d.ts +1 -1
- package/dist/module/SignatureTemplate.js +1 -1
- package/dist/module/Transaction.d.ts +3 -3
- package/dist/module/Transaction.js +11 -13
- package/dist/module/index.d.ts +7 -7
- package/dist/module/index.js +6 -6
- package/dist/module/interfaces.d.ts +2 -1
- package/dist/module/interfaces.js +1 -0
- package/dist/module/network/BitboxNetworkProvider.d.ts +2 -2
- package/dist/module/network/BitcoinRpcNetworkProvider.d.ts +2 -2
- package/dist/module/network/ElectrumNetworkProvider.d.ts +2 -2
- package/dist/module/network/ElectrumNetworkProvider.js +7 -3
- package/dist/module/network/FullStackNetworkProvider.d.ts +2 -2
- package/dist/module/network/NetworkProvider.d.ts +1 -1
- package/dist/module/network/index.d.ts +5 -5
- package/dist/module/network/index.js +4 -4
- package/dist/module/utils.d.ts +3 -2
- package/dist/module/utils.js +11 -3
- package/package.json +3 -3
|
@@ -10,8 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import { binToHex } from '@bitauth/libauth';
|
|
11
11
|
import { sha256 } from '@cashscript/utils';
|
|
12
12
|
import { ElectrumCluster, ElectrumTransport, ClusterOrder, } from 'electrum-cash';
|
|
13
|
-
import { Network } from '../interfaces';
|
|
14
|
-
import { addressToLockScript } from '../utils';
|
|
13
|
+
import { Network } from '../interfaces.js';
|
|
14
|
+
import { addressToLockScript } from '../utils.js';
|
|
15
15
|
export default class ElectrumNetworkProvider {
|
|
16
16
|
constructor(network = Network.MAINNET, electrum, manualConnectionManagement) {
|
|
17
17
|
this.network = network;
|
|
@@ -35,12 +35,16 @@ export default class ElectrumNetworkProvider {
|
|
|
35
35
|
}
|
|
36
36
|
else if (network === Network.TESTNET) {
|
|
37
37
|
// Initialise a 1-of-2 Electrum Cluster with 2 hardcoded servers
|
|
38
|
-
this.electrum = new ElectrumCluster('CashScript Application', '1.4.1', 1, 2);
|
|
38
|
+
this.electrum = new ElectrumCluster('CashScript Application', '1.4.1', 1, 2, ClusterOrder.PRIORITY);
|
|
39
39
|
this.electrum.addServer('blackie.c3-soft.com', 60004, ElectrumTransport.WSS.Scheme, false);
|
|
40
40
|
this.electrum.addServer('electroncash.de', 60004, ElectrumTransport.WSS.Scheme, false);
|
|
41
41
|
// this.electrum.addServer('bch.loping.net', 60004, ElectrumTransport.WSS.Scheme, false);
|
|
42
42
|
// this.electrum.addServer('testnet.imaginary.cash', 50004, ElectrumTransport.WSS.Scheme);
|
|
43
43
|
}
|
|
44
|
+
else if (network === Network.STAGING) {
|
|
45
|
+
this.electrum = new ElectrumCluster('CashScript Application', '1.4.1', 1, 1, ClusterOrder.PRIORITY);
|
|
46
|
+
this.electrum.addServer('testnet4.imaginary.cash', 50004, ElectrumTransport.WSS.Scheme, false);
|
|
47
|
+
}
|
|
44
48
|
else {
|
|
45
49
|
throw new Error(`Tried to instantiate an ElectrumNetworkProvider for unsupported network ${network}`);
|
|
46
50
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Utxo, Network } from '../interfaces';
|
|
2
|
-
import NetworkProvider from './NetworkProvider';
|
|
1
|
+
import { Utxo, Network } from '../interfaces.js';
|
|
2
|
+
import NetworkProvider from './NetworkProvider.js';
|
|
3
3
|
export default class FullStackNetworkProvider implements NetworkProvider {
|
|
4
4
|
network: Network;
|
|
5
5
|
private bchjs;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { default as NetworkProvider } from './NetworkProvider';
|
|
2
|
-
export { default as BitboxNetworkProvider } from './BitboxNetworkProvider';
|
|
3
|
-
export { default as BitcoinRpcNetworkProvider } from './BitcoinRpcNetworkProvider';
|
|
4
|
-
export { default as ElectrumNetworkProvider } from './ElectrumNetworkProvider';
|
|
5
|
-
export { default as FullStackNetworkProvider } from './FullStackNetworkProvider';
|
|
1
|
+
export { default as NetworkProvider } from './NetworkProvider.js';
|
|
2
|
+
export { default as BitboxNetworkProvider } from './BitboxNetworkProvider.js';
|
|
3
|
+
export { default as BitcoinRpcNetworkProvider } from './BitcoinRpcNetworkProvider.js';
|
|
4
|
+
export { default as ElectrumNetworkProvider } from './ElectrumNetworkProvider.js';
|
|
5
|
+
export { default as FullStackNetworkProvider } from './FullStackNetworkProvider.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { default as BitboxNetworkProvider } from './BitboxNetworkProvider';
|
|
2
|
-
export { default as BitcoinRpcNetworkProvider } from './BitcoinRpcNetworkProvider';
|
|
3
|
-
export { default as ElectrumNetworkProvider } from './ElectrumNetworkProvider';
|
|
4
|
-
export { default as FullStackNetworkProvider } from './FullStackNetworkProvider';
|
|
1
|
+
export { default as BitboxNetworkProvider } from './BitboxNetworkProvider.js';
|
|
2
|
+
export { default as BitcoinRpcNetworkProvider } from './BitcoinRpcNetworkProvider.js';
|
|
3
|
+
export { default as ElectrumNetworkProvider } from './ElectrumNetworkProvider.js';
|
|
4
|
+
export { default as FullStackNetworkProvider } from './FullStackNetworkProvider.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/dist/module/utils.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Transaction } from '@bitauth/libauth';
|
|
2
2
|
import { Script } from '@cashscript/utils';
|
|
3
|
-
import { Utxo, Output } from './interfaces';
|
|
4
|
-
import { FailedTransactionError } from './Errors';
|
|
3
|
+
import { Utxo, Output, Recipient } from './interfaces.js';
|
|
4
|
+
import { FailedTransactionError } from './Errors.js';
|
|
5
|
+
export declare function validateRecipient(recipient: Recipient): void;
|
|
5
6
|
export declare function getInputSize(inputScript: Uint8Array): number;
|
|
6
7
|
export declare function getPreimageSize(script: Uint8Array): number;
|
|
7
8
|
export declare function getTxSizeWithoutInputs(outputs: Output[]): number;
|
package/dist/module/utils.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
import { cashAddressToLockingBytecode, AddressType, addressContentsToLockingBytecode, lockingBytecodeToCashAddress, binToHex, createTransactionContextCommon, bigIntToBinUint64LE, generateSigningSerializationBCH, utf8ToBin, hexToBin, flattenBinArray, } from '@bitauth/libauth';
|
|
2
2
|
import { encodeInt, hash160, Op, scriptToBytecode, sha256, } from '@cashscript/utils';
|
|
3
|
-
import { Network } from './interfaces';
|
|
4
|
-
import { P2PKH_OUTPUT_SIZE, VERSION_SIZE, LOCKTIME_SIZE } from './constants';
|
|
5
|
-
import { Reason, FailedTransactionError, FailedRequireError, FailedTimeCheckError, FailedSigCheckError, } from './Errors';
|
|
3
|
+
import { Network, } from './interfaces.js';
|
|
4
|
+
import { P2PKH_OUTPUT_SIZE, VERSION_SIZE, LOCKTIME_SIZE, DUST_LIMIT, } from './constants.js';
|
|
5
|
+
import { OutputSatoshisTooSmallError, Reason, FailedTransactionError, FailedRequireError, FailedTimeCheckError, FailedSigCheckError, } from './Errors.js';
|
|
6
|
+
// ////////// PARAMETER VALIDATION ////////////////////////////////////////////
|
|
7
|
+
export function validateRecipient(recipient) {
|
|
8
|
+
if (recipient.amount < DUST_LIMIT) {
|
|
9
|
+
throw new OutputSatoshisTooSmallError(recipient.amount);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
6
12
|
// ////////// SIZE CALCULATIONS ///////////////////////////////////////////////
|
|
7
13
|
export function getInputSize(inputScript) {
|
|
8
14
|
const scriptSize = inputScript.byteLength;
|
|
@@ -147,6 +153,8 @@ export function getNetworkPrefix(network) {
|
|
|
147
153
|
switch (network) {
|
|
148
154
|
case Network.MAINNET:
|
|
149
155
|
return 'bitcoincash';
|
|
156
|
+
case Network.STAGING:
|
|
157
|
+
return 'bchtest';
|
|
150
158
|
case Network.TESTNET:
|
|
151
159
|
return 'bchtest';
|
|
152
160
|
case Network.REGTEST:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cashscript",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Easily write and interact with Bitcoin Cash contracts",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bitcoin cash",
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
44
|
"@bitauth/libauth": "^1.18.1",
|
|
45
|
-
"@cashscript/utils": "^0.
|
|
45
|
+
"@cashscript/utils": "^0.7.0",
|
|
46
46
|
"bip68": "^1.0.4",
|
|
47
47
|
"bitcoin-rpc-promise-retry": "^1.3.0",
|
|
48
48
|
"delay": "^5.0.0",
|
|
49
|
-
"electrum-cash": "^2.0.
|
|
49
|
+
"electrum-cash": "^2.0.10"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"@psf/bch-js": "^4.15.0",
|