mainnet-js 2.7.4 → 2.7.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"mine.d.ts","sourceRoot":"","sources":["../../../src/mine/mine.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,wBAAsB,IAAI,CAAC,EACzB,QAAQ,EACR,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,gBAuBA"}
1
+ {"version":3,"file":"mine.d.ts","sourceRoot":"","sources":["../../../src/mine/mine.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,wBAAsB,IAAI,CAAC,EACzB,QAAQ,EACR,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,gBAqBA"}
@@ -1,4 +1,5 @@
1
1
  import { browserNotSupported } from "../util/browserNotSupported.js";
2
+ import child_process from "child_process";
2
3
  /**
3
4
  * Mine blocks to a regtest address
4
5
  *
@@ -11,7 +12,6 @@ import { browserNotSupported } from "../util/browserNotSupported.js";
11
12
  export async function mine({ cashaddr, blocks, }) {
12
13
  // node only
13
14
  browserNotSupported();
14
- const child_process = await import("child_process");
15
15
  const generateArgs = [
16
16
  `exec`,
17
17
  `bitcoind`,
@@ -1 +1 @@
1
- {"version":3,"file":"mine.js","sourceRoot":"","sources":["../../../src/mine/mine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE;;;;;;;;GAQG;AAEH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,EACzB,QAAQ,EACR,MAAM,GAIP;IACC,YAAY;IACZ,mBAAmB,EAAE,CAAC;IAEtB,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAEpD,MAAM,YAAY,GAAG;QACnB,MAAM;QACN,UAAU;QACV,aAAa;QACb,gBAAgB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QACtC,aAAa,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QACnC,iBAAiB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QACvC,aAAa,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QACnC,mBAAmB;QACnB,MAAM;QACN,QAAQ;KACT,CAAC;IACF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAmB,CAAC,CAAC;IACnE,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"mine.js","sourceRoot":"","sources":["../../../src/mine/mine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,aAAa,MAAM,eAAe,CAAC;AAE1C;;;;;;;;GAQG;AAEH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,EACzB,QAAQ,EACR,MAAM,GAIP;IACC,YAAY;IACZ,mBAAmB,EAAE,CAAC;IAEtB,MAAM,YAAY,GAAG;QACnB,MAAM;QACN,UAAU;QACV,aAAa;QACb,gBAAgB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QACtC,aAAa,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QACnC,iBAAiB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QACvC,aAAa,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;QACnC,mBAAmB;QACnB,MAAM;QACN,QAAQ;KACT,CAAC;IACF,MAAM,GAAG,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAmB,CAAC,CAAC;IACnE,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3C,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { CashAddressNetworkPrefix } from "@bitauth/libauth";
2
+ import { Network } from "../interface.js";
2
3
  export declare function isValidAddress(cashaddr: string): boolean;
3
4
  export declare function deriveCashaddr(privateKey: Uint8Array, networkPrefix: CashAddressNetworkPrefix): string;
4
5
  export declare function deriveTokenaddr(key: Uint8Array, networkPrefix: CashAddressNetworkPrefix): string;
5
- export declare function toCashaddr(tokenaddr: string): string;
6
- export declare function toTokenaddr(cashaddr: string): string;
6
+ export declare function toCashaddr(address: string): string;
7
+ export declare function toTokenaddr(address: string): string;
7
8
  export declare function isTokenaddr(address: string): boolean;
9
+ export declare function convertAddress(address: string, network?: Network, withTokens?: boolean | undefined): string;
8
10
  export declare function checkTokenaddr(cashaddr: string, enforce: boolean): void;
9
11
  //# sourceMappingURL=deriveCashaddr.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deriveCashaddr.d.ts","sourceRoot":"","sources":["../../../src/util/deriveCashaddr.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAWzB,MAAM,kBAAkB,CAAC;AAI1B,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,wBAAwB,GACtC,MAAM,CAWR;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,aAAa,EAAE,wBAAwB,GACtC,MAAM,CA+BR;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAsBpD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAsBpD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CA+BpD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,QAIhE"}
1
+ {"version":3,"file":"deriveCashaddr.d.ts","sourceRoot":"","sources":["../../../src/util/deriveCashaddr.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAMzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG1C,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,wBAAwB,GACtC,MAAM,CAWR;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,aAAa,EAAE,wBAAwB,GACtC,MAAM,CA+BR;AAUD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQlD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CASnD;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAIpD;AAMD,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,OAAmB,EAC5B,UAAU,GAAE,OAAO,GAAG,SAAqB,GAC1C,MAAM,CAYR;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,QAIhE"}
@@ -1,4 +1,5 @@
1
- import { encodeCashAddress, CashAddressType, secp256k1, decodeCashAddressFormat, decodeCashAddressFormatWithoutPrefix, decodeCashAddress, cashAddressTypeBitsToType, decodeCashAddressVersionByte, } from "@bitauth/libauth";
1
+ import { CashAddressType, decodeCashAddress, encodeCashAddress, secp256k1, } from "@bitauth/libauth";
2
+ import { prefixFromNetworkMap } from "../enum.js";
2
3
  import { hash160 } from "./hash160.js";
3
4
  export function isValidAddress(cashaddr) {
4
5
  const result = decodeCashAddress(cashaddr);
@@ -54,62 +55,48 @@ export function deriveTokenaddr(key, networkPrefix) {
54
55
  payload: publicKeyHash,
55
56
  }).address;
56
57
  }
57
- export function toCashaddr(tokenaddr) {
58
- let result;
59
- // If the address has a prefix decode it as is
60
- if (tokenaddr.includes(":")) {
61
- result = decodeCashAddressFormat(tokenaddr);
62
- }
63
- // otherwise, derive the network from the tokenaddr without prefix
64
- else {
65
- result = decodeCashAddressFormatWithoutPrefix(tokenaddr);
66
- }
67
- if (typeof result === "string")
58
+ function decodeAddress(address) {
59
+ const result = decodeCashAddress(address);
60
+ if (typeof result === "string") {
68
61
  throw new Error(result);
62
+ }
63
+ return result;
64
+ }
65
+ export function toCashaddr(address) {
66
+ const result = decodeAddress(address);
69
67
  return encodeCashAddress({
70
68
  prefix: result.prefix,
71
- type: CashAddressType.p2pkh,
69
+ type: result.type.replace("WithTokens", ""),
72
70
  payload: result.payload,
73
71
  }).address;
74
72
  }
75
- export function toTokenaddr(cashaddr) {
76
- let result;
77
- // If the address has a prefix decode it as is
78
- if (cashaddr.includes(":")) {
79
- result = decodeCashAddressFormat(cashaddr);
80
- }
81
- // otherwise, derive the network from the cashaddr without prefix
82
- else {
83
- result = decodeCashAddressFormatWithoutPrefix(cashaddr);
84
- }
85
- if (typeof result === "string")
86
- throw new Error(result);
73
+ export function toTokenaddr(address) {
74
+ const result = decodeAddress(address);
87
75
  return encodeCashAddress({
88
76
  prefix: result.prefix,
89
- type: CashAddressType.p2pkhWithTokens,
77
+ type: (result.type.replace("WithTokens", "") +
78
+ "WithTokens"),
90
79
  payload: result.payload,
91
80
  }).address;
92
81
  }
93
82
  export function isTokenaddr(address) {
94
- let result;
95
- // If the address has a prefix decode it as is
96
- if (address.includes(":")) {
97
- result = decodeCashAddressFormat(address);
98
- }
99
- else {
100
- // otherwise, derive the network from the address without prefix
101
- result = decodeCashAddressFormatWithoutPrefix(address);
102
- }
103
- if (typeof result === "string")
104
- throw new Error(result);
105
- const info = decodeCashAddressVersionByte(result.version);
106
- if (typeof info === "string")
107
- throw new Error(info);
108
- const type = cashAddressTypeBitsToType[info.typeBits];
109
- if (type === undefined) {
110
- throw Error("Wrong cashaddress type");
111
- }
112
- return ([CashAddressType.p2pkhWithTokens, CashAddressType.p2shWithTokens].indexOf(type) !== -1);
83
+ const result = decodeAddress(address);
84
+ return result.type.endsWith("WithTokens");
85
+ }
86
+ // This function converts a cash address to a cash address of the specified network.
87
+ // If withTokens is true, it will return a token-aware address.
88
+ // If withTokens is false, it will return a non-token-aware address.
89
+ // If withTokens is undefined, it will not change the token-awareness.
90
+ export function convertAddress(address, network = "mainnet", withTokens = undefined) {
91
+ const result = decodeAddress(address);
92
+ return encodeCashAddress({
93
+ prefix: prefixFromNetworkMap[network],
94
+ type: withTokens === undefined
95
+ ? result.type
96
+ : (result.type.replace("WithTokens", "") +
97
+ (withTokens ? "WithTokens" : "")),
98
+ payload: result.payload,
99
+ }).address;
113
100
  }
114
101
  export function checkTokenaddr(cashaddr, enforce) {
115
102
  if (enforce && !isTokenaddr(cashaddr)) {
@@ -1 +1 @@
1
- {"version":3,"file":"deriveCashaddr.js","sourceRoot":"","sources":["../../../src/util/deriveCashaddr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deriveCashaddr.js","sourceRoot":"","sources":["../../../src/util/deriveCashaddr.ts"],"names":[],"mappings":"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"}