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.
Files changed (49) hide show
  1. package/dist/main/Argument.d.ts +2 -2
  2. package/dist/main/Argument.js +19 -19
  3. package/dist/main/Contract.d.ts +4 -4
  4. package/dist/main/Contract.js +15 -15
  5. package/dist/main/Errors.d.ts +6 -2
  6. package/dist/main/Errors.js +10 -2
  7. package/dist/main/SignatureTemplate.d.ts +1 -1
  8. package/dist/main/SignatureTemplate.js +3 -3
  9. package/dist/main/Transaction.d.ts +3 -3
  10. package/dist/main/Transaction.js +40 -42
  11. package/dist/main/index.d.ts +7 -7
  12. package/dist/main/index.js +22 -14
  13. package/dist/main/interfaces.d.ts +2 -1
  14. package/dist/main/interfaces.js +1 -0
  15. package/dist/main/network/BitboxNetworkProvider.d.ts +2 -2
  16. package/dist/main/network/BitcoinRpcNetworkProvider.d.ts +2 -2
  17. package/dist/main/network/ElectrumNetworkProvider.d.ts +2 -2
  18. package/dist/main/network/ElectrumNetworkProvider.js +13 -9
  19. package/dist/main/network/FullStackNetworkProvider.d.ts +2 -2
  20. package/dist/main/network/NetworkProvider.d.ts +1 -1
  21. package/dist/main/network/index.d.ts +5 -5
  22. package/dist/main/network/index.js +8 -8
  23. package/dist/main/utils.d.ts +3 -2
  24. package/dist/main/utils.js +40 -31
  25. package/dist/module/Argument.d.ts +2 -2
  26. package/dist/module/Argument.js +9 -9
  27. package/dist/module/Contract.d.ts +4 -4
  28. package/dist/module/Contract.js +5 -5
  29. package/dist/module/Errors.d.ts +6 -2
  30. package/dist/module/Errors.js +8 -1
  31. package/dist/module/SignatureTemplate.d.ts +1 -1
  32. package/dist/module/SignatureTemplate.js +1 -1
  33. package/dist/module/Transaction.d.ts +3 -3
  34. package/dist/module/Transaction.js +11 -13
  35. package/dist/module/index.d.ts +7 -7
  36. package/dist/module/index.js +6 -6
  37. package/dist/module/interfaces.d.ts +2 -1
  38. package/dist/module/interfaces.js +1 -0
  39. package/dist/module/network/BitboxNetworkProvider.d.ts +2 -2
  40. package/dist/module/network/BitcoinRpcNetworkProvider.d.ts +2 -2
  41. package/dist/module/network/ElectrumNetworkProvider.d.ts +2 -2
  42. package/dist/module/network/ElectrumNetworkProvider.js +7 -3
  43. package/dist/module/network/FullStackNetworkProvider.d.ts +2 -2
  44. package/dist/module/network/NetworkProvider.d.ts +1 -1
  45. package/dist/module/network/index.d.ts +5 -5
  46. package/dist/module/network/index.js +4 -4
  47. package/dist/module/utils.d.ts +3 -2
  48. package/dist/module/utils.js +11 -3
  49. 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,4 +1,4 @@
1
- import { Utxo, Network } from '../interfaces';
1
+ import { Utxo, Network } from '../interfaces.js';
2
2
  export default interface NetworkProvider {
3
3
  /**
4
4
  * Variable indicating the network that this provider connects to.
@@ -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
@@ -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;
@@ -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.6.4",
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.6.3",
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.6"
49
+ "electrum-cash": "^2.0.10"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@psf/bch-js": "^4.15.0",