mainnet-js 1.1.34 → 2.0.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 (117) hide show
  1. package/dist/index.html +1 -1
  2. package/dist/{mainnet-1.1.34.js → mainnet-2.0.0.js} +25 -337
  3. package/dist/module/db/SqlProvider.d.ts +2 -2
  4. package/dist/module/db/SqlProvider.d.ts.map +1 -1
  5. package/dist/module/db/SqlProvider.js +6 -24
  6. package/dist/module/db/SqlProvider.js.map +1 -1
  7. package/dist/module/index.d.ts +0 -3
  8. package/dist/module/index.d.ts.map +1 -1
  9. package/dist/module/index.js +3 -6
  10. package/dist/module/index.js.map +1 -1
  11. package/dist/module/transaction/Wif.d.ts +4 -8
  12. package/dist/module/transaction/Wif.d.ts.map +1 -1
  13. package/dist/module/transaction/Wif.js +6 -10
  14. package/dist/module/transaction/Wif.js.map +1 -1
  15. package/dist/module/util/deriveCashaddr.d.ts +1 -0
  16. package/dist/module/util/deriveCashaddr.d.ts.map +1 -1
  17. package/dist/module/util/deriveCashaddr.js +8 -1
  18. package/dist/module/util/deriveCashaddr.js.map +1 -1
  19. package/dist/module/wallet/Base.d.ts +1 -1
  20. package/dist/module/wallet/Base.js +1 -1
  21. package/dist/module/wallet/Util.d.ts +2 -2
  22. package/dist/module/wallet/Util.js +2 -2
  23. package/dist/module/wallet/Wif.d.ts +0 -28
  24. package/dist/module/wallet/Wif.d.ts.map +1 -1
  25. package/dist/module/wallet/Wif.js +2 -109
  26. package/dist/module/wallet/Wif.js.map +1 -1
  27. package/dist/module/wallet/createWallet.d.ts +0 -12
  28. package/dist/module/wallet/createWallet.d.ts.map +1 -1
  29. package/dist/module/wallet/createWallet.js +0 -43
  30. package/dist/module/wallet/createWallet.js.map +1 -1
  31. package/dist/module/wallet/interface.d.ts +0 -2
  32. package/dist/module/wallet/interface.d.ts.map +1 -1
  33. package/dist/module/webhook/Webhook.d.ts +1 -6
  34. package/dist/module/webhook/Webhook.d.ts.map +1 -1
  35. package/dist/module/webhook/Webhook.js +0 -4
  36. package/dist/module/webhook/Webhook.js.map +1 -1
  37. package/dist/module/webhook/index.d.ts +0 -1
  38. package/dist/module/webhook/index.d.ts.map +1 -1
  39. package/dist/module/webhook/index.js +0 -1
  40. package/dist/module/webhook/index.js.map +1 -1
  41. package/dist/module/webhook/interface.d.ts +0 -1
  42. package/dist/module/webhook/interface.d.ts.map +1 -1
  43. package/dist/tsconfig.tsbuildinfo +1 -1
  44. package/package.json +5 -10
  45. package/src/db/SqlProvider.test.ts +2 -18
  46. package/src/db/SqlProvider.ts +5 -26
  47. package/src/index.ts +3 -7
  48. package/src/transaction/Wif.ts +2 -19
  49. package/src/util/deriveCashaddr.test.ts +8 -0
  50. package/src/util/deriveCashaddr.ts +9 -0
  51. package/src/wallet/Base.ts +1 -1
  52. package/src/wallet/Util.ts +2 -2
  53. package/src/wallet/Wif.test.ts +0 -23
  54. package/src/wallet/Wif.ts +2 -148
  55. package/src/wallet/createWallet.ts +0 -53
  56. package/src/wallet/interface.ts +0 -2
  57. package/src/webhook/Webhook.ts +4 -10
  58. package/src/webhook/index.ts +0 -1
  59. package/src/webhook/interface.ts +0 -1
  60. package/webpack.config.cjs +7 -7
  61. package/dist/module/slp/GsppProvider.d.ts +0 -55
  62. package/dist/module/slp/GsppProvider.d.ts.map +0 -1
  63. package/dist/module/slp/GsppProvider.js +0 -204
  64. package/dist/module/slp/GsppProvider.js.map +0 -1
  65. package/dist/module/slp/SlpDbProvider.d.ts +0 -52
  66. package/dist/module/slp/SlpDbProvider.d.ts.map +0 -1
  67. package/dist/module/slp/SlpDbProvider.js +0 -175
  68. package/dist/module/slp/SlpDbProvider.js.map +0 -1
  69. package/dist/module/slp/SlpDbTemplates.d.ts +0 -313
  70. package/dist/module/slp/SlpDbTemplates.d.ts.map +0 -1
  71. package/dist/module/slp/SlpDbTemplates.js +0 -375
  72. package/dist/module/slp/SlpDbTemplates.js.map +0 -1
  73. package/dist/module/slp/SlpLibAuth.d.ts +0 -210
  74. package/dist/module/slp/SlpLibAuth.d.ts.map +0 -1
  75. package/dist/module/slp/SlpLibAuth.js +0 -451
  76. package/dist/module/slp/SlpLibAuth.js.map +0 -1
  77. package/dist/module/slp/SlpProvider.d.ts +0 -24
  78. package/dist/module/slp/SlpProvider.d.ts.map +0 -1
  79. package/dist/module/slp/SlpProvider.js +0 -29
  80. package/dist/module/slp/SlpProvider.js.map +0 -1
  81. package/dist/module/slp/index.d.ts +0 -6
  82. package/dist/module/slp/index.d.ts.map +0 -1
  83. package/dist/module/slp/index.js +0 -5
  84. package/dist/module/slp/index.js.map +0 -1
  85. package/dist/module/slp/interface.d.ts +0 -114
  86. package/dist/module/slp/interface.d.ts.map +0 -1
  87. package/dist/module/slp/interface.js +0 -7
  88. package/dist/module/slp/interface.js.map +0 -1
  89. package/dist/module/util/bchaddr.d.ts +0 -2
  90. package/dist/module/util/bchaddr.d.ts.map +0 -1
  91. package/dist/module/util/bchaddr.js +0 -16
  92. package/dist/module/util/bchaddr.js.map +0 -1
  93. package/dist/module/wallet/Slp.d.ts +0 -431
  94. package/dist/module/wallet/Slp.d.ts.map +0 -1
  95. package/dist/module/wallet/Slp.js +0 -770
  96. package/dist/module/wallet/Slp.js.map +0 -1
  97. package/dist/module/webhook/WebhookSlp.d.ts +0 -15
  98. package/dist/module/webhook/WebhookSlp.d.ts.map +0 -1
  99. package/dist/module/webhook/WebhookSlp.js +0 -100
  100. package/dist/module/webhook/WebhookSlp.js.map +0 -1
  101. package/src/slp/GsppProvider.test.ts +0 -40
  102. package/src/slp/GsppProvider.ts +0 -329
  103. package/src/slp/SlpDbProvider.test.ts +0 -27
  104. package/src/slp/SlpDbProvider.ts +0 -291
  105. package/src/slp/SlpDbTemplates.ts +0 -400
  106. package/src/slp/SlpLibAuth.test.ts +0 -162
  107. package/src/slp/SlpLibAuth.ts +0 -532
  108. package/src/slp/SlpProvider.ts +0 -100
  109. package/src/slp/index.ts +0 -6
  110. package/src/slp/interface.ts +0 -128
  111. package/src/util/bchaddr.test.ts +0 -27
  112. package/src/util/bchaddr.ts +0 -27
  113. package/src/wallet/Slp.test.headless.js +0 -120
  114. package/src/wallet/Slp.test.ts +0 -1000
  115. package/src/wallet/Slp.ts +0 -1014
  116. package/src/webhook/WebhookSlp.test.ts +0 -288
  117. package/src/webhook/WebhookSlp.ts +0 -123
@@ -8,11 +8,6 @@ export enum WebhookType {
8
8
  transactionOut = "transaction:out",
9
9
  transactionInOut = "transaction:in,out",
10
10
  balance = "balance",
11
-
12
- slpTransactionIn = "slptransaction:in",
13
- slpTransactionOut = "slptransaction:out",
14
- slpTransactionInOut = "slptransaction:in,out",
15
- slpBalance = "slpbalance",
16
11
  }
17
12
 
18
13
  export enum WebhookRecurrence {
@@ -22,14 +17,13 @@ export enum WebhookRecurrence {
22
17
 
23
18
  export class Webhook {
24
19
  id?: number;
25
- cashaddr!: string; // depending on type of the hook, either cashaddr or slpaddr
20
+ cashaddr!: string;
26
21
  type!: string;
27
22
  recurrence!: string;
28
23
  url!: string;
29
- status!: string; // bch only
30
- last_height!: number; // bch only
31
- tx_seen!: TxI[]; // bch only
32
- tokenId?: string; // slp only
24
+ status!: string;
25
+ last_height!: number;
26
+ tx_seen!: TxI[];
33
27
  expires_at!: Date;
34
28
 
35
29
  db!: SqlProvider;
@@ -1,5 +1,4 @@
1
1
  export { default as WebhookWorker } from "./WebhookWorker.js";
2
2
  export * from "./Webhook.js";
3
3
  export * from "./WebhookBch.js";
4
- export * from "./WebhookSlp.js";
5
4
  export * from "./interface.js";
@@ -3,6 +3,5 @@ export interface RegisterWebhookParams {
3
3
  url: string;
4
4
  type: string;
5
5
  recurrence: string;
6
- tokenId?: string;
7
6
  duration_sec?: number;
8
7
  }
@@ -1,5 +1,4 @@
1
1
  const { merge } = require("webpack-merge");
2
- const path = require("path");
3
2
  const packageJson = require("./package.json");
4
3
  const HtmlWebpackPlugin = require("html-webpack-plugin");
5
4
  const InjectBodyPlugin = require("inject-body-webpack-plugin").default;
@@ -8,6 +7,7 @@ const BundleAnalyzerPlugin =
8
7
  const CircularDependencyPlugin = require("circular-dependency-plugin");
9
8
  const __basedir = require("path").resolve(__dirname, "../../");
10
9
 
10
+ const path = require("path");
11
11
  const webpack = require("webpack");
12
12
 
13
13
  const baseConfig = {
@@ -96,11 +96,6 @@ const browserConfig = {
96
96
  ],
97
97
  resolve: {
98
98
  alias: {
99
- ethers$: require.resolve("ethers/lib/index.js"),
100
- "@ethersproject/web$": require.resolve("@ethersproject/web/lib/index.js"),
101
- "@ethersproject/contracts$": require.resolve(
102
- "@ethersproject/contracts/lib/index.js"
103
- ),
104
99
  bufferutil: false,
105
100
  child_process: false,
106
101
  crypto: false,
@@ -119,10 +114,15 @@ const browserConfig = {
119
114
  pg: false,
120
115
  "pg-format": false,
121
116
  "pg-native": false,
122
- solc: false,
123
117
  tls: false,
124
118
  url: false,
125
119
  zlib: false,
120
+ [path.resolve(__dirname, "./src/webhook/index.ts")]: false,
121
+ [path.resolve(__dirname, "./src/webhook/interface.ts")]: false,
122
+ [path.resolve(__dirname, "./src/webhook/Webhook.ts")]: false,
123
+ [path.resolve(__dirname, "./src/webhook/WebhookBch.ts")]: false,
124
+ [path.resolve(__dirname, "./src/webhook/WebhookWorker.ts")]: false,
125
+ [path.resolve(__dirname, "./src/db/SqlProvider.ts")]: false,
126
126
  },
127
127
  fallback: {
128
128
  stream: require.resolve("stream-browserify"),
@@ -1,55 +0,0 @@
1
- import { Network } from "../interface.js";
2
- import { SlpTokenBalance, SlpTokenInfo, SlpTxI, SlpUtxoI } from "./interface.js";
3
- import BigNumber from "bignumber.js";
4
- import { SlpCancelWatchFn, SlpProvider, SlpWatchBalanceCallback, SlpWatchTransactionCallback } from "./SlpProvider.js";
5
- export declare class GsppProvider implements SlpProvider {
6
- network: Network;
7
- static defaultServers: {
8
- mainnet: {
9
- dataSource: string;
10
- eventSource: string;
11
- };
12
- testnet: {
13
- dataSource: string;
14
- eventSource: string;
15
- };
16
- regtest: {
17
- dataSource: string;
18
- eventSource: string;
19
- };
20
- };
21
- servers: {
22
- mainnet: {
23
- dataSource: string;
24
- eventSource: string;
25
- };
26
- testnet: {
27
- dataSource: string;
28
- eventSource: string;
29
- };
30
- regtest: {
31
- dataSource: string;
32
- eventSource: string;
33
- };
34
- };
35
- caching: boolean;
36
- constructor(network?: Network);
37
- SlpOutpoints(slpaddr: string): Promise<String[]>;
38
- SlpUtxos(slpaddr: string): Promise<SlpUtxoI[]>;
39
- SlpSpendableUtxos(slpaddr: string, tokenId?: string): Promise<SlpUtxoI[]>;
40
- SlpBatonUtxos(slpaddr: string, tokenId?: string): Promise<SlpUtxoI[]>;
41
- SlpTokenInfo(tokenId: string): Promise<SlpTokenInfo | undefined>;
42
- SlpAllTokenBalances(slpaddr: string): Promise<SlpTokenBalance[]>;
43
- SlpTokenBalance(slpaddr: string, tokenId: string): Promise<SlpTokenBalance>;
44
- SlpAddressTransactionHistory(_slpaddr: string, _tokenId?: string, _limit?: number, _skip?: number): Promise<SlpTxI[]>;
45
- SlpWaitForTransaction(slpaddr: string, tokenId?: string): Promise<SlpTxI>;
46
- SlpWaitForBalance(value: BigNumber.Value, slpaddr: string, tokenId: string): Promise<SlpTokenBalance>;
47
- SlpWatchBalance(callback: SlpWatchBalanceCallback, slpaddr: string, tokenId: string): SlpCancelWatchFn;
48
- SlpWatchTransactions(callback: SlpWatchTransactionCallback, slpaddr?: string, tokenId?: string): SlpCancelWatchFn;
49
- GsppQuery(queryObject: any, endpoint?: string): Promise<any>;
50
- SlpSocketEventSource(queryObject: any): EventSource;
51
- }
52
- export declare function _convertBalanceBigNumbers(balances: SlpTokenBalance[]): SlpTokenBalance[];
53
- export declare function _convertUtxoBigNumbers(utxos: SlpUtxoI[]): SlpUtxoI[];
54
- export declare function _convertSlpTokenInfo(tokenInfo: SlpTokenInfo | undefined): SlpTokenInfo | undefined;
55
- //# sourceMappingURL=GsppProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GsppProvider.d.ts","sourceRoot":"","sources":["../../../src/slp/GsppProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAO,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAEL,eAAe,EACf,YAAY,EACZ,MAAM,EACN,QAAQ,EACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,2BAA2B,EAE5B,MAAM,kBAAkB,CAAC;AAW1B,qBAAa,YAAa,YAAW,WAAW;IAoB3B,OAAO,EAAE,OAAO;IAnBnC,OAAc,cAAc;;;;;;;;;;;;;MAa1B;IAEK,OAAO;;;;;;;;;;;;;MAAsC;IAE7C,OAAO,EAAE,OAAO,CAAS;gBAEb,OAAO,GAAE,OAAyB;IAkB/C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAOhD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAa9C,iBAAiB,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,EAAE,CAAC;IAQhB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAQrE,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAShE,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAYhE,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC;IAiBrB,4BAA4B,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,GAAE,MAAY,EACpB,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,MAAM,EAAE,CAAC;IAKd,qBAAqB,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAcZ,iBAAiB,CACrB,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC;IAgB3B,eAAe,CACb,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,gBAAgB;IAYnB,oBAAoB,CAClB,QAAQ,EAAE,2BAA2B,EACrC,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,GACf,gBAAgB;IA4BZ,SAAS,CAAC,WAAW,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA0B5D,oBAAoB,CAAC,WAAW,EAAE,GAAG,GAAG,WAAW;CAM3D;AA6BD,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,eAAe,EAAE,GAC1B,eAAe,EAAE,CAKnB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAMpE;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,YAAY,GAAG,SAAS,GAClC,YAAY,GAAG,SAAS,CAS1B"}
@@ -1,204 +0,0 @@
1
- import { Network } from "../interface.js";
2
- import BigNumber from "bignumber.js";
3
- import { _emptyTokenBalance, } from "./SlpProvider.js";
4
- import axios from "axios";
5
- import { btoa } from "../util/base64.js";
6
- //import EventSource from "../../polyfill/eventsource.js";
7
- import EventSource from "../util/eventsource.js";
8
- import { getRuntimePlatform, RuntimePlatform, } from "../util/getRuntimePlatform.js";
9
- export class GsppProvider {
10
- constructor(network = Network.MAINNET) {
11
- this.network = network;
12
- this.servers = { ...GsppProvider.defaultServers };
13
- this.caching = false;
14
- if (getRuntimePlatform() === RuntimePlatform.node) {
15
- if (process.env.GSPP_MAINNET_DATA)
16
- this.servers.mainnet.dataSource = process.env.GSPP_MAINNET_DATA;
17
- if (process.env.GSPP_MAINNET_EVENTS)
18
- this.servers.mainnet.eventSource = process.env.GSPP_MAINNET_EVENTS;
19
- if (process.env.GSPP_TESTNET_DATA)
20
- this.servers.testnet.dataSource = process.env.GSPP_TESTNET_DATA;
21
- if (process.env.GSPP_TESTNET_EVENTS)
22
- this.servers.testnet.eventSource = process.env.GSPP_TESTNET_EVENTS;
23
- if (process.env.GSPP_REGTEST_DATA)
24
- this.servers.regtest.dataSource = process.env.GSPP_REGTEST_DATA;
25
- if (process.env.GSPP_REGTEST_EVENTS)
26
- this.servers.regtest.eventSource = process.env.GSPP_REGTEST_EVENTS;
27
- }
28
- }
29
- // all oupoints, including mint batons
30
- async SlpOutpoints(slpaddr) {
31
- return (await this.GsppQuery({ cashaddr: slpaddr }, "v1/graphsearch/slpoutpoints")).outpoints;
32
- }
33
- // all utxos, including mint batons
34
- async SlpUtxos(slpaddr) {
35
- const response = (await this.GsppQuery({ cashaddr: slpaddr }, "v1/graphsearch/slputxos")).utxos;
36
- if (!response) {
37
- return [];
38
- }
39
- return _convertUtxoBigNumbers(response);
40
- }
41
- // safe-spendable token utxos, without baton
42
- async SlpSpendableUtxos(slpaddr, tokenId) {
43
- return (await this.SlpUtxos(slpaddr)).filter((val) => val.isBaton === false && (tokenId ? val.tokenId === tokenId : true));
44
- }
45
- // token mint baton utxos
46
- async SlpBatonUtxos(slpaddr, tokenId) {
47
- return (await this.SlpUtxos(slpaddr)).filter((val) => val.isBaton === true && (tokenId ? val.tokenId === tokenId : true));
48
- }
49
- // look up the token information
50
- async SlpTokenInfo(tokenId) {
51
- const info = (await this.GsppQuery({ tokenId: tokenId }, "v1/graphsearch/slptokeninfo"));
52
- return _convertSlpTokenInfo(info);
53
- }
54
- // get all token balances
55
- async SlpAllTokenBalances(slpaddr) {
56
- return _convertBalanceBigNumbers(((await this.GsppQuery({ cashaddr: slpaddr }, "v1/graphsearch/slpalltokenbalances")).balances || []));
57
- }
58
- // get specific token balance
59
- async SlpTokenBalance(slpaddr, tokenId) {
60
- const response = await this.GsppQuery({ cashaddr: slpaddr, tokenId: tokenId }, "v1/graphsearch/slptokenbalance");
61
- if (!response) {
62
- return _emptyTokenBalance(tokenId);
63
- }
64
- const balances = _convertBalanceBigNumbers([response]);
65
- if (balances[0].value.isZero()) {
66
- return _emptyTokenBalance(tokenId);
67
- }
68
- return balances[0];
69
- }
70
- // get all slp transactions of this address
71
- async SlpAddressTransactionHistory(_slpaddr, _tokenId, _limit = 100, _skip = 0) {
72
- throw "Not implemented";
73
- }
74
- // waits for next slp transaction to appear in mempool, code execution is halted
75
- async SlpWaitForTransaction(slpaddr, tokenId) {
76
- return new Promise(async (resolve) => {
77
- const cancelFn = this.SlpWatchTransactions(async (tx) => {
78
- await cancelFn();
79
- resolve(tx);
80
- }, slpaddr, tokenId);
81
- });
82
- }
83
- // waits for a certain slp token balance to be available in this wallet, code execution is halted
84
- async SlpWaitForBalance(value, slpaddr, tokenId) {
85
- return new Promise((resolve) => {
86
- const cancelFn = this.SlpWatchBalance(async (balance) => {
87
- if (balance.value.isGreaterThanOrEqualTo(new BigNumber(value))) {
88
- await cancelFn();
89
- resolve(balance);
90
- }
91
- }, slpaddr, tokenId);
92
- });
93
- }
94
- // sets up a callback to be executed each time the token balance of the wallet is changed
95
- SlpWatchBalance(callback, slpaddr, tokenId) {
96
- return this.SlpWatchTransactions(async () => {
97
- const balance = await this.SlpTokenBalance(slpaddr, tokenId);
98
- callback(balance);
99
- }, slpaddr, tokenId);
100
- }
101
- // sets up a callback to be executed each time a new transaction associated with this wallet's address is entering the mempool
102
- SlpWatchTransactions(callback, slpaddr, tokenId) {
103
- const eventSource = this.SlpSocketEventSource({
104
- query: { slpaddr, tokenId },
105
- });
106
- const cancelFn = async () => {
107
- eventSource.close();
108
- };
109
- eventSource.addEventListener("message", async (txEvent) => {
110
- const data = JSON.parse(txEvent.data);
111
- if (data.type === "rawtx") {
112
- const tx = {
113
- tx_hash: data.data.txHash,
114
- height: 0,
115
- details: data.data,
116
- };
117
- callback(tx);
118
- }
119
- }, false);
120
- return cancelFn;
121
- }
122
- GsppQuery(queryObject, endpoint) {
123
- if (this.caching) {
124
- axiosInstance.defaults.headers = {};
125
- }
126
- else {
127
- axiosInstance.defaults.headers = noCacheHeaders;
128
- }
129
- // console.log(queryObject, endpoint);
130
- return new Promise((resolve, reject) => {
131
- const url = `${this.servers[this.network].dataSource}/${endpoint}`;
132
- fetch_retry(url, queryObject)
133
- .then((response) => {
134
- resolve(response.data);
135
- })
136
- .catch((error) => {
137
- if (error.isAxiosError) {
138
- // console.trace(JSON.stringify(error, null, 2));
139
- reject(error.response.data);
140
- }
141
- reject(error);
142
- });
143
- });
144
- }
145
- SlpSocketEventSource(queryObject) {
146
- const url = `${this.servers[this.network].eventSource}/s/${B64QueryString(queryObject)}`;
147
- return new EventSource(url);
148
- }
149
- }
150
- GsppProvider.defaultServers = {
151
- mainnet: {
152
- dataSource: "https://gs.fountainhead.cash",
153
- eventSource: "https://slpsocket.fountainhead.cash",
154
- },
155
- testnet: {
156
- dataSource: "https://gs-testnet.fountainhead.cash",
157
- eventSource: "https://slpsocket-testnet.fountainhead.cash",
158
- },
159
- regtest: {
160
- dataSource: "http://localhost:12400",
161
- eventSource: "http://localhost:12401",
162
- },
163
- };
164
- const noCacheHeaders = {
165
- "Cache-Control": "no-cache",
166
- Pragma: "no-cache",
167
- Expires: "0",
168
- };
169
- const axiosInstance = axios.create({
170
- headers: noCacheHeaders,
171
- });
172
- const fetch_retry = (url, data = {}, n = 1) => axiosInstance.post(url, data).catch(function (error) {
173
- if (n === 0) {
174
- throw error;
175
- }
176
- return new Promise((resolve) => {
177
- setTimeout(() => resolve(fetch_retry(url, data, n - 1)), 1000);
178
- });
179
- });
180
- const B64QueryString = function (queryObject) {
181
- if (!queryObject || !Object.keys(queryObject).length) {
182
- throw new Error("Empty query");
183
- }
184
- return btoa(JSON.stringify(queryObject));
185
- };
186
- export function _convertBalanceBigNumbers(balances) {
187
- balances.forEach((val) => (val.value = new BigNumber(val.value).shiftedBy(-1 * val.decimals)));
188
- return balances;
189
- }
190
- export function _convertUtxoBigNumbers(utxos) {
191
- utxos.forEach((val) => {
192
- val.value = new BigNumber(val.value).shiftedBy(-1 * val.decimals);
193
- val.satoshis = Number(val.satoshis);
194
- });
195
- return utxos;
196
- }
197
- export function _convertSlpTokenInfo(tokenInfo) {
198
- if (!tokenInfo)
199
- return tokenInfo;
200
- tokenInfo.initialAmount = new BigNumber(tokenInfo.initialAmount).shiftedBy(-1 * tokenInfo.decimals);
201
- tokenInfo.parentTokenId = tokenInfo.groupId;
202
- return tokenInfo;
203
- }
204
- //# sourceMappingURL=GsppProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GsppProvider.js","sourceRoot":"","sources":["../../../src/slp/GsppProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAO,MAAM,iBAAiB,CAAC;AAQ/C,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAKL,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEzC,0DAA0D;AAC1D,OAAO,WAAW,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,kBAAkB,EAClB,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,MAAM,OAAO,YAAY;IAoBvB,YAAmB,UAAmB,OAAO,CAAC,OAAO;QAAlC,YAAO,GAAP,OAAO,CAA2B;QAJ9C,YAAO,GAAG,EAAE,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;QAE7C,YAAO,GAAY,KAAK,CAAC;QAG9B,IAAI,kBAAkB,EAAE,KAAK,eAAe,CAAC,IAAI,EAAE;YACjD,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAClE,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBACjC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YACrE,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAClE,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBACjC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YACrE,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;YAClE,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB;gBACjC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;SACtE;IACH,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,OAAO,CACL,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,6BAA6B,CAAC,CAC3E,CAAC,SAAqB,CAAC;IAC1B,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,QAAQ,GAAG,CACf,MAAM,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,yBAAyB,CAAC,CACvE,CAAC,KAAmB,CAAC;QAEtB,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,EAAE,CAAC;SACX;QAED,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,4CAA4C;IAC5C,KAAK,CAAC,iBAAiB,CACrB,OAAe,EACf,OAAgB;QAEhB,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CACtE,CAAC;IACJ,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,OAAgB;QACnD,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAC1C,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CACrE,CAAC;IACJ,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,CAChC,EAAE,OAAO,EAAE,OAAO,EAAE,EACpB,6BAA6B,CAC9B,CAAiB,CAAC;QACnB,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,yBAAyB;IACzB,KAAK,CAAC,mBAAmB,CAAC,OAAe;QACvC,OAAO,yBAAyB,CAC9B,CAAC,CACC,MAAM,IAAI,CAAC,SAAS,CAClB,EAAE,QAAQ,EAAE,OAAO,EAAE,EACrB,oCAAoC,CACrC,CACF,CAAC,QAAQ,IAAI,EAAE,CAAsB,CACvC,CAAC;IACJ,CAAC;IAED,6BAA6B;IAC7B,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,OAAe;QAEf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EACvC,gCAAgC,CACjC,CAAC;QACF,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;SACpC;QAED,MAAM,QAAQ,GAAG,yBAAyB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE;YAC9B,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC;SACpC;QACD,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,4BAA4B,CAChC,QAAgB,EAChB,QAAiB,EACjB,SAAiB,GAAG,EACpB,QAAgB,CAAC;QAEjB,MAAM,iBAAiB,CAAC;IAC1B,CAAC;IAED,gFAAgF;IAChF,KAAK,CAAC,qBAAqB,CACzB,OAAe,EACf,OAAgB;QAEhB,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CACxC,KAAK,EAAE,EAAU,EAAE,EAAE;gBACnB,MAAM,QAAQ,EAAE,CAAC;gBACjB,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC,EACD,OAAO,EACP,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iGAAiG;IACjG,KAAK,CAAC,iBAAiB,CACrB,KAAsB,EACtB,OAAe,EACf,OAAe;QAEf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CACnC,KAAK,EAAE,OAAwB,EAAE,EAAE;gBACjC,IAAI,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;oBAC9D,MAAM,QAAQ,EAAE,CAAC;oBACjB,OAAO,CAAC,OAAO,CAAC,CAAC;iBAClB;YACH,CAAC,EACD,OAAO,EACP,OAAO,CACR,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yFAAyF;IACzF,eAAe,CACb,QAAiC,EACjC,OAAe,EACf,OAAe;QAEf,OAAO,IAAI,CAAC,oBAAoB,CAC9B,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7D,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpB,CAAC,EACD,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED,8HAA8H;IAC9H,oBAAoB,CAClB,QAAqC,EACrC,OAAgB,EAChB,OAAgB;QAEhB,MAAM,WAAW,GAAgB,IAAI,CAAC,oBAAoB,CAAC;YACzD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;SAC5B,CAAC,CAAC;QACH,MAAM,QAAQ,GAAqB,KAAK,IAAI,EAAE;YAC5C,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC,CAAC;QAEF,WAAW,CAAC,gBAAgB,CAC1B,SAAS,EACT,KAAK,EAAE,OAAqB,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;gBACzB,MAAM,EAAE,GAAW;oBACjB,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;oBACzB,MAAM,EAAE,CAAC;oBACT,OAAO,EAAE,IAAI,CAAC,IAAc;iBAC7B,CAAC;gBAEF,QAAQ,CAAC,EAAE,CAAC,CAAC;aACd;QACH,CAAC,EACD,KAAK,CACN,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,SAAS,CAAC,WAAgB,EAAE,QAAiB;QAClD,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,EAAE,CAAC;SACrC;aAAM;YACL,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,cAAc,CAAC;SACjD;QAED,sCAAsC;QAEtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,IAAI,QAAQ,EAAE,CAAC;YACnE,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC;iBAC1B,IAAI,CAAC,CAAC,QAAa,EAAE,EAAE;gBACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,IAAI,KAAK,CAAC,YAAY,EAAE;oBACtB,iDAAiD;oBACjD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBAC7B;gBAED,MAAM,CAAC,KAAK,CAAC,CAAC;YAChB,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,oBAAoB,CAAC,WAAgB;QAC1C,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,MAAM,cAAc,CACvE,WAAW,CACZ,EAAE,CAAC;QACJ,OAAO,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;;AAnPa,2BAAc,GAAG;IAC7B,OAAO,EAAE;QACP,UAAU,EAAE,8BAA8B;QAC1C,WAAW,EAAE,qCAAqC;KACnD;IACD,OAAO,EAAE;QACP,UAAU,EAAE,sCAAsC;QAClD,WAAW,EAAE,6CAA6C;KAC3D;IACD,OAAO,EAAE;QACP,UAAU,EAAE,wBAAwB;QACpC,WAAW,EAAE,wBAAwB;KACtC;CACF,CAAC;AAyOJ,MAAM,cAAc,GAAG;IACrB,eAAe,EAAE,UAAU;IAC3B,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC;IACjC,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAC5C,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK;IACjD,IAAI,CAAC,KAAK,CAAC,EAAE;QACX,MAAM,KAAK,CAAC;KACb;IACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,MAAM,cAAc,GAAG,UAAU,WAAW;IAC1C,IAAI,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE;QACpD,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;KAChC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,UAAU,yBAAyB,CACvC,QAA2B;IAE3B,QAAQ,CAAC,OAAO,CACd,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,CAC7E,CAAC;IACF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAiB;IACtD,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACpB,GAAG,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClE,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,SAAmC;IAEnC,IAAI,CAAC,SAAS;QAAE,OAAO,SAAS,CAAC;IAEjC,SAAS,CAAC,aAAa,GAAG,IAAI,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,SAAS,CACxE,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CACxB,CAAC;IACF,SAAS,CAAC,aAAa,GAAI,SAAiB,CAAC,OAAO,CAAC;IAErD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,52 +0,0 @@
1
- import { Network } from "../interface.js";
2
- import { SlpDbResponse, SlpTokenBalance, SlpTokenInfo, SlpTxI, SlpUtxoI } from "./interface.js";
3
- import BigNumber from "bignumber.js";
4
- import { SlpCancelWatchFn, SlpProvider, SlpWatchBalanceCallback, SlpWatchTransactionCallback } from "./SlpProvider.js";
5
- export declare class SlpDbProvider implements SlpProvider {
6
- network: Network;
7
- static defaultServers: {
8
- mainnet: {
9
- dataSource: string;
10
- eventSource: string;
11
- };
12
- testnet: {
13
- dataSource: string;
14
- eventSource: string;
15
- };
16
- regtest: {
17
- dataSource: string;
18
- eventSource: string;
19
- };
20
- };
21
- servers: {
22
- mainnet: {
23
- dataSource: string;
24
- eventSource: string;
25
- };
26
- testnet: {
27
- dataSource: string;
28
- eventSource: string;
29
- };
30
- regtest: {
31
- dataSource: string;
32
- eventSource: string;
33
- };
34
- };
35
- caching: boolean;
36
- constructor(network?: Network);
37
- SlpOutpoints(slpaddr: string): Promise<String[]>;
38
- SlpUtxos(slpaddr: string): Promise<SlpUtxoI[]>;
39
- SlpTokenInfo(tokenId: string): Promise<SlpTokenInfo | undefined>;
40
- SlpSpendableUtxos(slpaddr: string, tokenId?: string): Promise<SlpUtxoI[]>;
41
- SlpBatonUtxos(slpaddr: string, tokenId?: string): Promise<SlpUtxoI[]>;
42
- SlpAllTokenBalances(slpaddr: string): Promise<SlpTokenBalance[]>;
43
- SlpTokenBalance(slpaddr: string, tokenId: string): Promise<SlpTokenBalance>;
44
- SlpAddressTransactionHistory(slpaddr: string, tokenId?: string, limit?: number, skip?: number): Promise<SlpTxI[]>;
45
- SlpWaitForTransaction(slpaddr: string, tokenId?: string): Promise<SlpTxI>;
46
- SlpWaitForBalance(value: BigNumber.Value, slpaddr: string, tokenId: string): Promise<SlpTokenBalance>;
47
- SlpWatchBalance(callback: SlpWatchBalanceCallback, slpaddr: string, tokenId: string): SlpCancelWatchFn;
48
- SlpWatchTransactions(callback: SlpWatchTransactionCallback, slpaddr: string, tokenId?: string): SlpCancelWatchFn;
49
- SlpDbQuery(queryObject: any): Promise<SlpDbResponse>;
50
- SlpSocketEventSource(queryObject: any): EventSource;
51
- }
52
- //# sourceMappingURL=SlpDbProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SlpDbProvider.d.ts","sourceRoot":"","sources":["../../../src/slp/SlpDbProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAO,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EACL,aAAa,EAEb,eAAe,EACf,YAAY,EACZ,MAAM,EACN,QAAQ,EACT,MAAM,gBAAgB,CAAC;AAYxB,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,uBAAuB,EACvB,2BAA2B,EAK5B,MAAM,kBAAkB,CAAC;AAY1B,qBAAa,aAAc,YAAW,WAAW;IAoB5B,OAAO,EAAE,OAAO;IAnBnC,OAAc,cAAc;;;;;;;;;;;;;MAa1B;IAEK,OAAO;;;;;;;;;;;;;MAAuC;IAE9C,OAAO,EAAE,OAAO,CAAS;gBAEb,OAAO,GAAE,OAAyB;IAkB/C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMhD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAO9C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAOhE,iBAAiB,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,QAAQ,EAAE,CAAC;IAQhB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAQrE,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQhE,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC;IAUrB,4BAA4B,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,GAAE,MAAY,EACnB,IAAI,GAAE,MAAU,GACf,OAAO,CAAC,MAAM,EAAE,CAAC;IAQd,qBAAqB,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAcZ,iBAAiB,CACrB,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,eAAe,CAAC;IAgB3B,eAAe,CACb,QAAQ,EAAE,uBAAuB,EACjC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GACd,gBAAgB;IAYnB,oBAAoB,CAClB,QAAQ,EAAE,2BAA2B,EACrC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,gBAAgB;IA2BZ,UAAU,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;IAoBpD,oBAAoB,CAAC,WAAW,EAAE,GAAG,GAAG,WAAW;CAM3D"}
@@ -1,175 +0,0 @@
1
- import { Network } from "../interface.js";
2
- import { SlpAllUtxosTemplate, SlpAddressTransactionHistoryTemplate, SlpWaitForTransactionTemplate, SlpBatonUtxosTemplate, SlpSpendableUtxosTemplate, SlpTokenInfoTemplate, SlpAllTokenBalancesTemplate, SlpTokenBalanceTemplate, SlpAllOutpointsTemplate, } from "./SlpDbTemplates.js";
3
- import BigNumber from "bignumber.js";
4
- import { _convertBalanceBigNumbers, _convertSlpTokenInfo, _convertUtxoBigNumbers, _emptyTokenBalance, } from "./SlpProvider.js";
5
- import axios from "axios";
6
- import { btoa } from "../util/base64.js";
7
- //import EventSource from "../../polyfill/eventsource.js";
8
- import EventSource from "../util/eventsource.js";
9
- import { getRuntimePlatform, RuntimePlatform, } from "../util/getRuntimePlatform.js";
10
- export class SlpDbProvider {
11
- constructor(network = Network.MAINNET) {
12
- this.network = network;
13
- this.servers = { ...SlpDbProvider.defaultServers };
14
- this.caching = false;
15
- if (getRuntimePlatform() === RuntimePlatform.node) {
16
- if (process.env.SLPDB_MAINNET_DATA)
17
- this.servers.mainnet.dataSource = process.env.SLPDB_MAINNET_DATA;
18
- if (process.env.SLPDB_MAINNET_EVENTS)
19
- this.servers.mainnet.eventSource = process.env.SLPDB_MAINNET_EVENTS;
20
- if (process.env.SLPDB_TESTNET_DATA)
21
- this.servers.testnet.dataSource = process.env.SLPDB_TESTNET_DATA;
22
- if (process.env.SLPDB_TESTNET_EVENTS)
23
- this.servers.testnet.eventSource = process.env.SLPDB_TESTNET_EVENTS;
24
- if (process.env.SLPDB_REGTEST_DATA)
25
- this.servers.regtest.dataSource = process.env.SLPDB_REGTEST_DATA;
26
- if (process.env.SLPDB_REGTEST_EVENTS)
27
- this.servers.regtest.eventSource = process.env.SLPDB_REGTEST_EVENTS;
28
- }
29
- }
30
- // all oupoints, including mint batons
31
- async SlpOutpoints(slpaddr) {
32
- return (await this.SlpDbQuery(SlpAllOutpointsTemplate(slpaddr)))
33
- .g;
34
- }
35
- // all utxos, including mint batons
36
- async SlpUtxos(slpaddr) {
37
- return _convertUtxoBigNumbers((await this.SlpDbQuery(SlpAllUtxosTemplate(slpaddr))).g);
38
- }
39
- // look up the token information
40
- async SlpTokenInfo(tokenId) {
41
- const infos = (await this.SlpDbQuery(SlpTokenInfoTemplate(tokenId)))
42
- .t;
43
- return _convertSlpTokenInfo(infos[0]);
44
- }
45
- // safe-spendable token utxos, without baton
46
- async SlpSpendableUtxos(slpaddr, tokenId) {
47
- return _convertUtxoBigNumbers((await this.SlpDbQuery(SlpSpendableUtxosTemplate(slpaddr, tokenId)))
48
- .g);
49
- }
50
- // token mint baton utxos
51
- async SlpBatonUtxos(slpaddr, tokenId) {
52
- return _convertUtxoBigNumbers((await this.SlpDbQuery(SlpBatonUtxosTemplate(slpaddr, tokenId)))
53
- .g);
54
- }
55
- // get all token balances
56
- async SlpAllTokenBalances(slpaddr) {
57
- return _convertBalanceBigNumbers((await this.SlpDbQuery(SlpAllTokenBalancesTemplate(slpaddr)))
58
- .g);
59
- }
60
- // get specific token balance
61
- async SlpTokenBalance(slpaddr, tokenId) {
62
- const balances = _convertBalanceBigNumbers((await this.SlpDbQuery(SlpTokenBalanceTemplate(slpaddr, tokenId)))
63
- .g);
64
- return balances[0] || _emptyTokenBalance(tokenId);
65
- }
66
- // get all slp transactions of this address
67
- async SlpAddressTransactionHistory(slpaddr, tokenId, limit = 100, skip = 0) {
68
- const response = await this.SlpDbQuery(SlpAddressTransactionHistoryTemplate(slpaddr, tokenId, limit, skip));
69
- return response.c.concat(response.u);
70
- }
71
- // waits for next slp transaction to appear in mempool, code execution is halted
72
- async SlpWaitForTransaction(slpaddr, tokenId) {
73
- return new Promise(async (resolve) => {
74
- const cancelFn = this.SlpWatchTransactions(async (tx) => {
75
- await cancelFn();
76
- resolve(tx);
77
- }, slpaddr, tokenId);
78
- });
79
- }
80
- // waits for a certain slp token balance to be available in this wallet, code execution is halted
81
- async SlpWaitForBalance(value, slpaddr, tokenId) {
82
- return new Promise((resolve) => {
83
- const cancelFn = this.SlpWatchBalance(async (balance) => {
84
- if (balance.value.isGreaterThanOrEqualTo(new BigNumber(value))) {
85
- await cancelFn();
86
- resolve(balance);
87
- }
88
- }, slpaddr, tokenId);
89
- });
90
- }
91
- // set's up a callback to be executed each time the token balance of the wallet is changed
92
- SlpWatchBalance(callback, slpaddr, tokenId) {
93
- return this.SlpWatchTransactions(async () => {
94
- const balance = await this.SlpTokenBalance(slpaddr, tokenId);
95
- callback(balance);
96
- }, slpaddr, tokenId);
97
- }
98
- // sets up a callback to be executed each time a new transaction associated with this wallet's address is entering the mempool
99
- SlpWatchTransactions(callback, slpaddr, tokenId) {
100
- const eventSource = this.SlpSocketEventSource(SlpWaitForTransactionTemplate(slpaddr, tokenId));
101
- const cancelFn = async () => {
102
- eventSource.close();
103
- };
104
- eventSource.addEventListener("message", async (txEvent) => {
105
- const data = JSON.parse(txEvent.data);
106
- if (data.data && data.data.length) {
107
- const tx = {
108
- tx_hash: data.data[0].tx.h,
109
- height: 0,
110
- details: data.data[0],
111
- };
112
- callback(tx);
113
- }
114
- }, false);
115
- return cancelFn;
116
- }
117
- SlpDbQuery(queryObject) {
118
- if (this.caching) {
119
- axiosInstance.defaults.headers = {};
120
- }
121
- else {
122
- axiosInstance.defaults.headers = noCacheHeaders;
123
- }
124
- return new Promise((resolve, reject) => {
125
- const url = `${this.servers[this.network].dataSource}/q/${B64QueryString(queryObject)}`;
126
- fetch_retry(url).then((response) => {
127
- if (response.hasOwnProperty("error")) {
128
- reject(new Error(response["error"]));
129
- }
130
- resolve(response.data);
131
- });
132
- });
133
- }
134
- SlpSocketEventSource(queryObject) {
135
- const url = `${this.servers[this.network].eventSource}/s/${B64QueryString(queryObject)}`;
136
- return new EventSource(url);
137
- }
138
- }
139
- SlpDbProvider.defaultServers = {
140
- mainnet: {
141
- dataSource: "https://slpdb.fountainhead.cash",
142
- eventSource: "https://slpsocket.fountainhead.cash",
143
- },
144
- testnet: {
145
- dataSource: "https://slpdb-testnet.fountainhead.cash",
146
- eventSource: "https://slpsocket-testnet.fountainhead.cash",
147
- },
148
- regtest: {
149
- dataSource: "http://localhost:12300",
150
- eventSource: "http://localhost:12301",
151
- },
152
- };
153
- const noCacheHeaders = {
154
- "Cache-Control": "no-cache",
155
- Pragma: "no-cache",
156
- Expires: "0",
157
- };
158
- const axiosInstance = axios.create({
159
- headers: noCacheHeaders,
160
- });
161
- const fetch_retry = (url, options = {}, n = 5) => axiosInstance.get(url, options).catch(function (error) {
162
- if (n === 0) {
163
- throw error;
164
- }
165
- return new Promise((resolve) => {
166
- setTimeout(() => resolve(fetch_retry(url, options, n - 1)), 1000);
167
- });
168
- });
169
- const B64QueryString = function (queryObject) {
170
- if (!queryObject || !Object.keys(queryObject).length) {
171
- throw new Error("Empty SLPDB query");
172
- }
173
- return btoa(JSON.stringify(queryObject));
174
- };
175
- //# sourceMappingURL=SlpDbProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SlpDbProvider.js","sourceRoot":"","sources":["../../../src/slp/SlpDbProvider.ts"],"names":[],"mappings":"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"}