xpi-ts 0.2.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 (216) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +516 -0
  3. package/dist/index.d.ts +9 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +8 -0
  6. package/dist/lib/bitcore/address.d.ts +66 -0
  7. package/dist/lib/bitcore/address.d.ts.map +1 -0
  8. package/dist/lib/bitcore/address.js +407 -0
  9. package/dist/lib/bitcore/block/block.d.ts +57 -0
  10. package/dist/lib/bitcore/block/block.d.ts.map +1 -0
  11. package/dist/lib/bitcore/block/block.js +233 -0
  12. package/dist/lib/bitcore/block/blockheader.d.ts +82 -0
  13. package/dist/lib/bitcore/block/blockheader.d.ts.map +1 -0
  14. package/dist/lib/bitcore/block/blockheader.js +323 -0
  15. package/dist/lib/bitcore/block/index.d.ts +5 -0
  16. package/dist/lib/bitcore/block/index.d.ts.map +1 -0
  17. package/dist/lib/bitcore/block/index.js +2 -0
  18. package/dist/lib/bitcore/chunk.d.ts +22 -0
  19. package/dist/lib/bitcore/chunk.d.ts.map +1 -0
  20. package/dist/lib/bitcore/chunk.js +46 -0
  21. package/dist/lib/bitcore/crypto/bn.d.ts +53 -0
  22. package/dist/lib/bitcore/crypto/bn.d.ts.map +1 -0
  23. package/dist/lib/bitcore/crypto/bn.js +238 -0
  24. package/dist/lib/bitcore/crypto/ecdsa.d.ts +46 -0
  25. package/dist/lib/bitcore/crypto/ecdsa.d.ts.map +1 -0
  26. package/dist/lib/bitcore/crypto/ecdsa.js +247 -0
  27. package/dist/lib/bitcore/crypto/hash.d.ts +16 -0
  28. package/dist/lib/bitcore/crypto/hash.d.ts.map +1 -0
  29. package/dist/lib/bitcore/crypto/hash.js +87 -0
  30. package/dist/lib/bitcore/crypto/index.d.ts +9 -0
  31. package/dist/lib/bitcore/crypto/index.d.ts.map +1 -0
  32. package/dist/lib/bitcore/crypto/index.js +8 -0
  33. package/dist/lib/bitcore/crypto/musig2.d.ts +40 -0
  34. package/dist/lib/bitcore/crypto/musig2.d.ts.map +1 -0
  35. package/dist/lib/bitcore/crypto/musig2.js +236 -0
  36. package/dist/lib/bitcore/crypto/point.d.ts +20 -0
  37. package/dist/lib/bitcore/crypto/point.d.ts.map +1 -0
  38. package/dist/lib/bitcore/crypto/point.js +133 -0
  39. package/dist/lib/bitcore/crypto/random.d.ts +7 -0
  40. package/dist/lib/bitcore/crypto/random.d.ts.map +1 -0
  41. package/dist/lib/bitcore/crypto/random.js +30 -0
  42. package/dist/lib/bitcore/crypto/schnorr.d.ts +40 -0
  43. package/dist/lib/bitcore/crypto/schnorr.d.ts.map +1 -0
  44. package/dist/lib/bitcore/crypto/schnorr.js +185 -0
  45. package/dist/lib/bitcore/crypto/signature.d.ts +53 -0
  46. package/dist/lib/bitcore/crypto/signature.d.ts.map +1 -0
  47. package/dist/lib/bitcore/crypto/signature.js +300 -0
  48. package/dist/lib/bitcore/crypto/sigtype.d.ts +5 -0
  49. package/dist/lib/bitcore/crypto/sigtype.d.ts.map +1 -0
  50. package/dist/lib/bitcore/crypto/sigtype.js +18 -0
  51. package/dist/lib/bitcore/encoding/base58.d.ts +16 -0
  52. package/dist/lib/bitcore/encoding/base58.d.ts.map +1 -0
  53. package/dist/lib/bitcore/encoding/base58.js +55 -0
  54. package/dist/lib/bitcore/encoding/base58check.d.ts +9 -0
  55. package/dist/lib/bitcore/encoding/base58check.d.ts.map +1 -0
  56. package/dist/lib/bitcore/encoding/base58check.js +82 -0
  57. package/dist/lib/bitcore/encoding/bufferreader.d.ts +34 -0
  58. package/dist/lib/bitcore/encoding/bufferreader.d.ts.map +1 -0
  59. package/dist/lib/bitcore/encoding/bufferreader.js +198 -0
  60. package/dist/lib/bitcore/encoding/bufferwriter.d.ts +36 -0
  61. package/dist/lib/bitcore/encoding/bufferwriter.d.ts.map +1 -0
  62. package/dist/lib/bitcore/encoding/bufferwriter.js +189 -0
  63. package/dist/lib/bitcore/encoding/varint.d.ts +20 -0
  64. package/dist/lib/bitcore/encoding/varint.d.ts.map +1 -0
  65. package/dist/lib/bitcore/encoding/varint.js +61 -0
  66. package/dist/lib/bitcore/errors.d.ts +28 -0
  67. package/dist/lib/bitcore/errors.d.ts.map +1 -0
  68. package/dist/lib/bitcore/errors.js +325 -0
  69. package/dist/lib/bitcore/hdprivatekey.d.ts +78 -0
  70. package/dist/lib/bitcore/hdprivatekey.d.ts.map +1 -0
  71. package/dist/lib/bitcore/hdprivatekey.js +381 -0
  72. package/dist/lib/bitcore/hdpublickey.d.ts +98 -0
  73. package/dist/lib/bitcore/hdpublickey.d.ts.map +1 -0
  74. package/dist/lib/bitcore/hdpublickey.js +416 -0
  75. package/dist/lib/bitcore/index.d.ts +60 -0
  76. package/dist/lib/bitcore/index.d.ts.map +1 -0
  77. package/dist/lib/bitcore/index.js +44 -0
  78. package/dist/lib/bitcore/message.d.ts +23 -0
  79. package/dist/lib/bitcore/message.d.ts.map +1 -0
  80. package/dist/lib/bitcore/message.js +112 -0
  81. package/dist/lib/bitcore/mnemonic/errors.d.ts +7 -0
  82. package/dist/lib/bitcore/mnemonic/errors.d.ts.map +1 -0
  83. package/dist/lib/bitcore/mnemonic/errors.js +20 -0
  84. package/dist/lib/bitcore/mnemonic/index.d.ts +5 -0
  85. package/dist/lib/bitcore/mnemonic/index.d.ts.map +1 -0
  86. package/dist/lib/bitcore/mnemonic/index.js +4 -0
  87. package/dist/lib/bitcore/mnemonic/mnemonic.d.ts +23 -0
  88. package/dist/lib/bitcore/mnemonic/mnemonic.d.ts.map +1 -0
  89. package/dist/lib/bitcore/mnemonic/mnemonic.js +164 -0
  90. package/dist/lib/bitcore/mnemonic/pbkdf2.d.ts +2 -0
  91. package/dist/lib/bitcore/mnemonic/pbkdf2.d.ts.map +1 -0
  92. package/dist/lib/bitcore/mnemonic/pbkdf2.js +25 -0
  93. package/dist/lib/bitcore/mnemonic/words/english.d.ts +2 -0
  94. package/dist/lib/bitcore/mnemonic/words/english.d.ts.map +1 -0
  95. package/dist/lib/bitcore/mnemonic/words/english.js +2050 -0
  96. package/dist/lib/bitcore/mnemonic/words/index.d.ts +4 -0
  97. package/dist/lib/bitcore/mnemonic/words/index.d.ts.map +1 -0
  98. package/dist/lib/bitcore/mnemonic/words/index.js +4 -0
  99. package/dist/lib/bitcore/musig2/index.d.ts +3 -0
  100. package/dist/lib/bitcore/musig2/index.d.ts.map +1 -0
  101. package/dist/lib/bitcore/musig2/index.js +2 -0
  102. package/dist/lib/bitcore/musig2/session.d.ts +79 -0
  103. package/dist/lib/bitcore/musig2/session.d.ts.map +1 -0
  104. package/dist/lib/bitcore/musig2/session.js +346 -0
  105. package/dist/lib/bitcore/musig2/signer.d.ts +61 -0
  106. package/dist/lib/bitcore/musig2/signer.d.ts.map +1 -0
  107. package/dist/lib/bitcore/musig2/signer.js +146 -0
  108. package/dist/lib/bitcore/networks.d.ts +53 -0
  109. package/dist/lib/bitcore/networks.d.ts.map +1 -0
  110. package/dist/lib/bitcore/networks.js +150 -0
  111. package/dist/lib/bitcore/opcode.d.ts +250 -0
  112. package/dist/lib/bitcore/opcode.d.ts.map +1 -0
  113. package/dist/lib/bitcore/opcode.js +270 -0
  114. package/dist/lib/bitcore/privatekey.d.ts +56 -0
  115. package/dist/lib/bitcore/privatekey.d.ts.map +1 -0
  116. package/dist/lib/bitcore/privatekey.js +237 -0
  117. package/dist/lib/bitcore/publickey.d.ts +59 -0
  118. package/dist/lib/bitcore/publickey.d.ts.map +1 -0
  119. package/dist/lib/bitcore/publickey.js +263 -0
  120. package/dist/lib/bitcore/script/interpreter.d.ts +98 -0
  121. package/dist/lib/bitcore/script/interpreter.d.ts.map +1 -0
  122. package/dist/lib/bitcore/script/interpreter.js +1704 -0
  123. package/dist/lib/bitcore/script.d.ts +111 -0
  124. package/dist/lib/bitcore/script.d.ts.map +1 -0
  125. package/dist/lib/bitcore/script.js +1112 -0
  126. package/dist/lib/bitcore/taproot/musig2.d.ts +29 -0
  127. package/dist/lib/bitcore/taproot/musig2.d.ts.map +1 -0
  128. package/dist/lib/bitcore/taproot/musig2.js +104 -0
  129. package/dist/lib/bitcore/taproot/nft.d.ts +164 -0
  130. package/dist/lib/bitcore/taproot/nft.d.ts.map +1 -0
  131. package/dist/lib/bitcore/taproot/nft.js +407 -0
  132. package/dist/lib/bitcore/taproot.d.ts +65 -0
  133. package/dist/lib/bitcore/taproot.d.ts.map +1 -0
  134. package/dist/lib/bitcore/taproot.js +288 -0
  135. package/dist/lib/bitcore/transaction/index.d.ts +12 -0
  136. package/dist/lib/bitcore/transaction/index.d.ts.map +1 -0
  137. package/dist/lib/bitcore/transaction/index.js +6 -0
  138. package/dist/lib/bitcore/transaction/input.d.ts +202 -0
  139. package/dist/lib/bitcore/transaction/input.d.ts.map +1 -0
  140. package/dist/lib/bitcore/transaction/input.js +911 -0
  141. package/dist/lib/bitcore/transaction/output.d.ts +48 -0
  142. package/dist/lib/bitcore/transaction/output.d.ts.map +1 -0
  143. package/dist/lib/bitcore/transaction/output.js +231 -0
  144. package/dist/lib/bitcore/transaction/sighash.d.ts +32 -0
  145. package/dist/lib/bitcore/transaction/sighash.d.ts.map +1 -0
  146. package/dist/lib/bitcore/transaction/sighash.js +335 -0
  147. package/dist/lib/bitcore/transaction/signature.d.ts +36 -0
  148. package/dist/lib/bitcore/transaction/signature.d.ts.map +1 -0
  149. package/dist/lib/bitcore/transaction/signature.js +130 -0
  150. package/dist/lib/bitcore/transaction/transaction.d.ts +164 -0
  151. package/dist/lib/bitcore/transaction/transaction.d.ts.map +1 -0
  152. package/dist/lib/bitcore/transaction/transaction.js +1016 -0
  153. package/dist/lib/bitcore/transaction/unspentoutput.d.ts +58 -0
  154. package/dist/lib/bitcore/transaction/unspentoutput.d.ts.map +1 -0
  155. package/dist/lib/bitcore/transaction/unspentoutput.js +167 -0
  156. package/dist/lib/bitcore/unit.d.ts +44 -0
  157. package/dist/lib/bitcore/unit.d.ts.map +1 -0
  158. package/dist/lib/bitcore/unit.js +106 -0
  159. package/dist/lib/bitcore/uri.d.ts +29 -0
  160. package/dist/lib/bitcore/uri.d.ts.map +1 -0
  161. package/dist/lib/bitcore/uri.js +163 -0
  162. package/dist/lib/bitcore/util/base32.d.ts +5 -0
  163. package/dist/lib/bitcore/util/base32.d.ts.map +1 -0
  164. package/dist/lib/bitcore/util/base32.js +58 -0
  165. package/dist/lib/bitcore/util/buffer.d.ts +18 -0
  166. package/dist/lib/bitcore/util/buffer.d.ts.map +1 -0
  167. package/dist/lib/bitcore/util/buffer.js +76 -0
  168. package/dist/lib/bitcore/util/convertBits.d.ts +2 -0
  169. package/dist/lib/bitcore/util/convertBits.d.ts.map +1 -0
  170. package/dist/lib/bitcore/util/convertBits.js +26 -0
  171. package/dist/lib/bitcore/util/js.d.ts +9 -0
  172. package/dist/lib/bitcore/util/js.d.ts.map +1 -0
  173. package/dist/lib/bitcore/util/js.js +45 -0
  174. package/dist/lib/bitcore/util/preconditions.d.ts +6 -0
  175. package/dist/lib/bitcore/util/preconditions.d.ts.map +1 -0
  176. package/dist/lib/bitcore/util/preconditions.js +31 -0
  177. package/dist/lib/bitcore/util.d.ts +14 -0
  178. package/dist/lib/bitcore/util.d.ts.map +1 -0
  179. package/dist/lib/bitcore/util.js +13 -0
  180. package/dist/lib/bitcore/xaddress.d.ts +45 -0
  181. package/dist/lib/bitcore/xaddress.d.ts.map +1 -0
  182. package/dist/lib/bitcore/xaddress.js +279 -0
  183. package/dist/lib/rank/api.d.ts +75 -0
  184. package/dist/lib/rank/api.d.ts.map +1 -0
  185. package/dist/lib/rank/api.js +4 -0
  186. package/dist/lib/rank/index.d.ts +127 -0
  187. package/dist/lib/rank/index.d.ts.map +1 -0
  188. package/dist/lib/rank/index.js +421 -0
  189. package/dist/lib/rank/opcode.d.ts +23 -0
  190. package/dist/lib/rank/opcode.d.ts.map +1 -0
  191. package/dist/lib/rank/opcode.js +23 -0
  192. package/dist/lib/rank/script.d.ts +2 -0
  193. package/dist/lib/rank/script.d.ts.map +1 -0
  194. package/dist/lib/rank/script.js +7 -0
  195. package/dist/lib/rank/transaction.d.ts +3 -0
  196. package/dist/lib/rank/transaction.d.ts.map +1 -0
  197. package/dist/lib/rank/transaction.js +12 -0
  198. package/dist/lib/rpc.d.ts +136 -0
  199. package/dist/lib/rpc.d.ts.map +1 -0
  200. package/dist/lib/rpc.js +62 -0
  201. package/dist/utils/constants.d.ts +18 -0
  202. package/dist/utils/constants.d.ts.map +1 -0
  203. package/dist/utils/constants.js +20 -0
  204. package/dist/utils/env.d.ts +3 -0
  205. package/dist/utils/env.d.ts.map +1 -0
  206. package/dist/utils/env.js +8 -0
  207. package/dist/utils/string.d.ts +11 -0
  208. package/dist/utils/string.d.ts.map +1 -0
  209. package/dist/utils/string.js +47 -0
  210. package/dist/utils/types.d.ts +2 -0
  211. package/dist/utils/types.d.ts.map +1 -0
  212. package/dist/utils/types.js +1 -0
  213. package/dist/utils/wallet.d.ts +12 -0
  214. package/dist/utils/wallet.d.ts.map +1 -0
  215. package/dist/utils/wallet.js +28 -0
  216. package/package.json +91 -0
@@ -0,0 +1,136 @@
1
+ export interface RPCConfig {
2
+ user: string;
3
+ password: string;
4
+ address: string;
5
+ port: number;
6
+ }
7
+ export interface NetworkInfo {
8
+ subversion: string;
9
+ localrelay: boolean;
10
+ connections: number;
11
+ connections_in: number;
12
+ warnings: string;
13
+ }
14
+ export interface MiningInfo {
15
+ blocks: number;
16
+ difficulty: number;
17
+ networkhashps: number;
18
+ pooledtx: number;
19
+ chain: string;
20
+ warnings: string;
21
+ }
22
+ export interface MempoolInfo {
23
+ loaded: boolean;
24
+ size: number;
25
+ bytes: number;
26
+ usage: number;
27
+ maxmempool: number;
28
+ mempoolminfee: number;
29
+ minrelaytxfee: number;
30
+ unbroadcastcount: number;
31
+ }
32
+ export interface PeerInfo {
33
+ addr: string;
34
+ services: string;
35
+ servicesnames: Array<string>;
36
+ relaytxes: boolean;
37
+ lastsend: number;
38
+ lastrecv: number;
39
+ last_transaction: number;
40
+ last_proof: number;
41
+ last_block: number;
42
+ bytessent: number;
43
+ bytesrecv: number;
44
+ conntime: number;
45
+ timeoffset: number;
46
+ pingtime: number;
47
+ minping: number;
48
+ version: number;
49
+ subver: string;
50
+ inbound: boolean;
51
+ startingheight: number;
52
+ synced_headers: number;
53
+ synced_blocks: number;
54
+ geoip?: {
55
+ country: string;
56
+ city: string;
57
+ };
58
+ }
59
+ export interface BlockStats {
60
+ avgfee: number;
61
+ avgfeerate: number;
62
+ avgtxsize: number;
63
+ blockhash: string;
64
+ feerate_percentiles: Array<number>;
65
+ height: number;
66
+ ins: number;
67
+ maxfee: number;
68
+ maxfeerate: number;
69
+ maxtxsize: number;
70
+ medianfee: number;
71
+ medianfeerate: number;
72
+ mediantxsize: number;
73
+ minfeerate: number;
74
+ mintxsize: number;
75
+ notx: number;
76
+ outs: number;
77
+ subsidy: number;
78
+ time: number;
79
+ total_out: number;
80
+ total_size: number;
81
+ totalfee: number;
82
+ txs: number;
83
+ utxo_increase: number;
84
+ utxo_size_inc: number;
85
+ }
86
+ export interface BlockInfo {
87
+ hash: string;
88
+ confirmations: number;
89
+ size: number;
90
+ height: number;
91
+ tx: Array<string>;
92
+ time: number;
93
+ difficulty: number;
94
+ nTx: number;
95
+ previousblockhash: string;
96
+ nextblockhash: string;
97
+ }
98
+ export interface TransactionInput {
99
+ txid: string;
100
+ vout: number;
101
+ coinbase?: string;
102
+ }
103
+ export interface TransactionOutput {
104
+ value: number;
105
+ scriptPubKey: {
106
+ addresses: Array<string>;
107
+ type: string;
108
+ asm: string;
109
+ };
110
+ }
111
+ export interface RawTransaction {
112
+ txid: string;
113
+ size: number;
114
+ vin: TransactionInput[];
115
+ vout: TransactionOutput[];
116
+ time?: number;
117
+ blocktime?: number;
118
+ blockhash?: string;
119
+ confirmations?: number;
120
+ }
121
+ export declare class RPCClient {
122
+ config: RPCConfig;
123
+ constructor(config: RPCConfig);
124
+ private sendRPCRequest;
125
+ getMiningInfo(): Promise<MiningInfo>;
126
+ getNetworkInfo(): Promise<NetworkInfo>;
127
+ getPeerInfo(): Promise<PeerInfo[]>;
128
+ getBlockCount(): Promise<number>;
129
+ getBlockHash(height: number): Promise<string>;
130
+ getBlockStats(hash: string): Promise<BlockStats>;
131
+ getBlock(hash: string): Promise<BlockInfo>;
132
+ getRawTransaction(txid: string): Promise<RawTransaction>;
133
+ getRawMemPool(): Promise<string[]>;
134
+ getMempoolInfo(): Promise<MempoolInfo>;
135
+ }
136
+ //# sourceMappingURL=rpc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../lib/rpc.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { encodeBase64 } from '../utils/string.js';
2
+ export class RPCClient {
3
+ config;
4
+ constructor(config) {
5
+ this.config = config;
6
+ }
7
+ async sendRPCRequest(method, params) {
8
+ const response = await fetch(`http://${this.config.address}:${this.config.port}`, {
9
+ method: 'POST',
10
+ body: JSON.stringify({ method, params }),
11
+ credentials: 'include',
12
+ headers: new Headers({
13
+ Authorization: `Basic ${encodeBase64(`${this.config.user}:${this.config.password}`)}`,
14
+ }),
15
+ });
16
+ const json = (await response.json());
17
+ if (json.error) {
18
+ throw new Error(`JSON-RPC error: ${json.error.message} (code: ${json.error.code})`);
19
+ }
20
+ return json.result;
21
+ }
22
+ async getMiningInfo() {
23
+ const result = await this.sendRPCRequest('getmininginfo', []);
24
+ return result;
25
+ }
26
+ async getNetworkInfo() {
27
+ const result = await this.sendRPCRequest('getnetworkinfo', []);
28
+ return result;
29
+ }
30
+ async getPeerInfo() {
31
+ const result = await this.sendRPCRequest('getpeerinfo', []);
32
+ return result;
33
+ }
34
+ async getBlockCount() {
35
+ const result = await this.sendRPCRequest('getblockcount', []);
36
+ return result;
37
+ }
38
+ async getBlockHash(height) {
39
+ const result = await this.sendRPCRequest('getblockhash', [height]);
40
+ return result;
41
+ }
42
+ async getBlockStats(hash) {
43
+ const result = await this.sendRPCRequest('getblockstats', [hash]);
44
+ return result;
45
+ }
46
+ async getBlock(hash) {
47
+ const result = await this.sendRPCRequest('getblock', [hash]);
48
+ return result;
49
+ }
50
+ async getRawTransaction(txid) {
51
+ const result = await this.sendRPCRequest('getrawtransaction', [txid, true]);
52
+ return result;
53
+ }
54
+ async getRawMemPool() {
55
+ const result = await this.sendRPCRequest('getrawmempool', []);
56
+ return result;
57
+ }
58
+ async getMempoolInfo() {
59
+ const result = await this.sendRPCRequest('getmempoolinfo', []);
60
+ return result;
61
+ }
62
+ }
@@ -0,0 +1,18 @@
1
+ import type { ScriptChunkPlatformUTF8 } from '../lib/rank/index.js';
2
+ export declare const BIP44_PURPOSE = 44;
3
+ export declare const BIP44_COIN_TYPE = 10605;
4
+ export declare const BIP44_ACCOUNT = 0;
5
+ export declare const MAX_OP_RETURN_RELAY = 223;
6
+ export declare const MAX_OP_RETURN_DATA = 220;
7
+ export declare const MAX_OP_RETURN_OUTPUTS = 3;
8
+ export declare const RANK_OUTPUT_MIN_VALID_SATS = 1000000;
9
+ export declare const RNKC_MIN_FEE_RATE = 10000000;
10
+ export declare const RNKC_MIN_DATA_LENGTH = 1;
11
+ export declare const PlatformURL: {
12
+ [key in ScriptChunkPlatformUTF8]?: {
13
+ root: string;
14
+ profile(profileId: string): string;
15
+ post(profileId: string, postId: string): string;
16
+ };
17
+ };
18
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../utils/constants.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAKnE,eAAO,MAAM,aAAa,KAAK,CAAA;AAC/B,eAAO,MAAM,eAAe,QAAQ,CAAA;AACpC,eAAO,MAAM,aAAa,IAAI,CAAA;AAM9B,eAAO,MAAM,mBAAmB,MAAM,CAAA;AAEtC,eAAO,MAAM,kBAAkB,MAAM,CAAA;AAErC,eAAO,MAAM,qBAAqB,IAAI,CAAA;AAMtC,eAAO,MAAM,0BAA0B,UAAY,CAAA;AAEnD,eAAO,MAAM,iBAAiB,WAAa,CAAA;AAE3C,eAAO,MAAM,oBAAoB,IAAI,CAAA;AAMrC,eAAO,MAAM,WAAW,EAAE;KACvB,GAAG,IAAI,uBAAuB,CAAC,CAAC,EAAE;QAEjC,IAAI,EAAE,MAAM,CAAA;QAEZ,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;QAElC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAChD;CAWF,CAAA"}
@@ -0,0 +1,20 @@
1
+ export const BIP44_PURPOSE = 44;
2
+ export const BIP44_COIN_TYPE = 10605;
3
+ export const BIP44_ACCOUNT = 0;
4
+ export const MAX_OP_RETURN_RELAY = 223;
5
+ export const MAX_OP_RETURN_DATA = 220;
6
+ export const MAX_OP_RETURN_OUTPUTS = 3;
7
+ export const RANK_OUTPUT_MIN_VALID_SATS = 1_000_000;
8
+ export const RNKC_MIN_FEE_RATE = 10_000_000;
9
+ export const RNKC_MIN_DATA_LENGTH = 1;
10
+ export const PlatformURL = {
11
+ twitter: {
12
+ root: 'https://x.com',
13
+ profile(profileId) {
14
+ return `${this.root}/${profileId}`;
15
+ },
16
+ post(profileId, postId) {
17
+ return `${this.root}/${profileId}/status/${postId}`;
18
+ },
19
+ },
20
+ };
@@ -0,0 +1,3 @@
1
+ export declare function isBrowser(): boolean;
2
+ export declare function isNode(): boolean;
3
+ //# sourceMappingURL=env.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../utils/env.ts"],"names":[],"mappings":"AAUA,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAOD,wBAAgB,MAAM,IAAI,OAAO,CAMhC"}
@@ -0,0 +1,8 @@
1
+ export function isBrowser() {
2
+ return typeof window !== 'undefined' && typeof document !== 'undefined';
3
+ }
4
+ export function isNode() {
5
+ return !!(typeof process !== 'undefined' &&
6
+ process.versions &&
7
+ process.versions.node);
8
+ }
@@ -0,0 +1,11 @@
1
+ export declare function isSha256(str: string): boolean;
2
+ export declare function toHex(data: number | string | Buffer): string;
3
+ export declare function isHex(str: string, length?: number): boolean;
4
+ export declare function isBase64(str: string): boolean;
5
+ export declare function decodeBase64(str: string): string;
6
+ export declare function encodeBase64(str: string, encoding?: BufferEncoding): string;
7
+ export declare function truncateSha256(sha256: string): string;
8
+ export declare function truncateTxid(txid: string): string;
9
+ export declare function truncateAddress(address: string): string;
10
+ export declare function truncateBlockHash(blockHash: string): string;
11
+ //# sourceMappingURL=string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../utils/string.ts"],"names":[],"mappings":"AAUA,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,WAEnC;AAOD,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,UAYnD;AAQD,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAG3D;AAOD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE7C;AAOD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,UAKvC;AAQD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAuB,UAK1E;AAOD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,UAE5C;AAOD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,UAExC;AAOD,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,UAE9C;AAOD,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,UAElD"}
@@ -0,0 +1,47 @@
1
+ export function isSha256(str) {
2
+ return isHex(str, 64);
3
+ }
4
+ export function toHex(data) {
5
+ switch (typeof data) {
6
+ case 'number':
7
+ return data.toString(16).padStart(2, '0');
8
+ case 'string':
9
+ return Buffer.from(data, 'utf8').toString('hex');
10
+ case 'object':
11
+ if (data instanceof Buffer) {
12
+ return data.toString('hex');
13
+ }
14
+ }
15
+ throw new Error('Invalid data type');
16
+ }
17
+ export function isHex(str, length) {
18
+ const regexStr = length ? `^[a-fA-F0-9]{${length}}$` : '^[a-fA-F0-9]+$';
19
+ return new RegExp(regexStr).test(str);
20
+ }
21
+ export function isBase64(str) {
22
+ return new RegExp('^[a-zA-Z0-9+/]+={0,2}$').test(str);
23
+ }
24
+ export function decodeBase64(str) {
25
+ if (!isBase64(str)) {
26
+ throw new Error('Invalid base64 string');
27
+ }
28
+ return Buffer.from(str, 'base64').toString('utf8');
29
+ }
30
+ export function encodeBase64(str, encoding = 'utf8') {
31
+ if (!new TextDecoder('utf8').decode(Buffer.from(str, encoding))) {
32
+ throw new Error('Not a valid UTF-8 string');
33
+ }
34
+ return Buffer.from(str, encoding).toString('base64');
35
+ }
36
+ export function truncateSha256(sha256) {
37
+ return sha256.slice(0, 16) + '...' + sha256.slice(-6);
38
+ }
39
+ export function truncateTxid(txid) {
40
+ return txid.slice(0, 16) + '...' + txid.slice(-6);
41
+ }
42
+ export function truncateAddress(address) {
43
+ return address.slice(0, 17) + '...' + address.slice(-6);
44
+ }
45
+ export function truncateBlockHash(blockHash) {
46
+ return blockHash.slice(0, 1) + '...' + blockHash.slice(-16);
47
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../utils/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import { Address, Script, ScriptType, Mnemonic } from '../lib/bitcore/index.js';
2
+ export interface Wallet {
3
+ hdPrivateKey: string;
4
+ privateKey: string;
5
+ publicKey: string;
6
+ address: Address;
7
+ script: Script;
8
+ scriptPayload: string;
9
+ scriptType: ScriptType;
10
+ }
11
+ export declare function createWallet(mnemonic?: Mnemonic | string, path?: string): Wallet;
12
+ //# sourceMappingURL=wallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../utils/wallet.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,OAAO,EAEP,MAAM,EACN,UAAU,EACV,QAAQ,EACT,MAAM,yBAAyB,CAAA;AAKhC,MAAM,WAAW,MAAM;IAErB,YAAY,EAAE,MAAM,CAAA;IAEpB,UAAU,EAAE,MAAM,CAAA;IAElB,SAAS,EAAE,MAAM,CAAA;IAEjB,OAAO,EAAE,OAAO,CAAA;IAEhB,MAAM,EAAE,MAAM,CAAA;IAEd,aAAa,EAAE,MAAM,CAAA;IAErB,UAAU,EAAE,UAAU,CAAA;CACvB;AAUD,wBAAgB,YAAY,CAC1B,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,EAC5B,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CAyBR"}
@@ -0,0 +1,28 @@
1
+ import { Networks, Script, Mnemonic, } from '../lib/bitcore/index.js';
2
+ export function createWallet(mnemonic, path) {
3
+ if (mnemonic) {
4
+ if (typeof mnemonic === 'string') {
5
+ mnemonic = new Mnemonic(mnemonic);
6
+ }
7
+ }
8
+ else {
9
+ mnemonic = new Mnemonic();
10
+ }
11
+ if (!path) {
12
+ path = "m/44'/10605'/0'/0/0";
13
+ }
14
+ const hdPrivateKey = mnemonic.toHDPrivateKey();
15
+ const privateKey = hdPrivateKey.deriveChild(path).privateKey;
16
+ const publicKey = privateKey.publicKey;
17
+ const address = privateKey.toAddress(Networks.mainnet);
18
+ const script = Script.fromAddress(address);
19
+ return {
20
+ hdPrivateKey: hdPrivateKey.toString(),
21
+ privateKey: privateKey.toWIF(),
22
+ publicKey: publicKey.toString(),
23
+ address: address,
24
+ script: script,
25
+ scriptType: script.getType(),
26
+ scriptPayload: script.getData().toString('hex'),
27
+ };
28
+ }
package/package.json ADDED
@@ -0,0 +1,91 @@
1
+ {
2
+ "name": "xpi-ts",
3
+ "version": "0.2.0",
4
+ "description": "Bitcore-compatible wallet SDK for Lotus",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ },
13
+ "./lib/bitcore": {
14
+ "types": "./dist/lib/bitcore/index.d.ts",
15
+ "import": "./dist/lib/bitcore/index.js"
16
+ },
17
+ "./lib/bitcore/*": {
18
+ "types": "./dist/lib/bitcore/*.d.ts",
19
+ "import": "./dist/lib/bitcore/*.js"
20
+ },
21
+ "./lib/rank": {
22
+ "types": "./dist/lib/rank/index.d.ts",
23
+ "import": "./dist/lib/rank/index.js"
24
+ },
25
+ "./lib/rank/*": {
26
+ "types": "./dist/lib/rank/*.d.ts",
27
+ "import": "./dist/lib/rank/*.js"
28
+ },
29
+ "./lib/*": {
30
+ "types": "./dist/lib/*.d.ts",
31
+ "import": "./dist/lib/*.js"
32
+ },
33
+ "./utils/*": {
34
+ "types": "./dist/utils/*.d.ts",
35
+ "import": "./dist/utils/*.js"
36
+ }
37
+ },
38
+ "directories": {
39
+ "lib": "lib"
40
+ },
41
+ "scripts": {
42
+ "build": "tsc",
43
+ "prepublishOnly": "npm run build",
44
+ "version": "npm run build",
45
+ "postversion": "git push && git push --tags",
46
+ "test": "echo \"Error: no test specified\" && exit 1"
47
+ },
48
+ "engines": {
49
+ "node": ">=22.0.0"
50
+ },
51
+ "repository": {
52
+ "type": "git",
53
+ "url": "git+https://github.com/lotusia-stewardship/xpi-ts.git"
54
+ },
55
+ "keywords": [
56
+ "lotus",
57
+ "xpi",
58
+ "lotusia",
59
+ "tools",
60
+ "wallet",
61
+ "rpc",
62
+ "rank"
63
+ ],
64
+ "author": "Lotusia Stewardship",
65
+ "license": "MIT",
66
+ "bugs": {
67
+ "url": "https://github.com/LotusiaStewardship/xpi-ts/issues"
68
+ },
69
+ "homepage": "https://github.com/LotusiaStewardship/xpi-ts#readme",
70
+ "dependencies": {
71
+ "@noble/hashes": "^1.7.2",
72
+ "bn.js": "5.2.2",
73
+ "bs58": "6.0.0",
74
+ "chronik-client": "0.19.0",
75
+ "dotenv": "17.2.3",
76
+ "dotenv-cli": "8.0.0",
77
+ "elliptic": "^6.6.1",
78
+ "validator": "13.15.20"
79
+ },
80
+ "devDependencies": {
81
+ "@types/bn.js": "5.2.0",
82
+ "@types/bs58": "4.0.4",
83
+ "@types/elliptic": "6.4.18",
84
+ "@types/node": "24.0.10",
85
+ "@types/validator": "13.15.4",
86
+ "prettier": "3.6.2",
87
+ "tsx": "^4.21.0",
88
+ "typescript": "5.8.3",
89
+ "typescript-eslint": "8.47.0"
90
+ }
91
+ }