@tomo-inc/chains-service 0.0.21 → 0.0.23

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/index.cjs CHANGED
@@ -3976,6 +3976,7 @@ var FEE_RATE_KB = 0.5;
3976
3976
  var DECIMALS = 1e8;
3977
3977
  var TRANSACTION_PAGE_SIZE = 10;
3978
3978
  var MYDOGE_BASE_URL = "https://api.mydoge.com";
3979
+ var RPC_URL_TOMO = "https://wallet-pro.tomo.inc/rpc/v1/doge_coin";
3979
3980
  var RPC_URL = "https://api.bitcore.io/api/DOGE/mainnet";
3980
3981
  var RPC_TIMEOUT = 20 * 1e3;
3981
3982
  var TX_OVERHEAD = 10;
@@ -4183,6 +4184,10 @@ var TransactionParser = class {
4183
4184
  var mydoge = axios__default.default.create({
4184
4185
  baseURL: MYDOGE_BASE_URL
4185
4186
  });
4187
+ var tomoApi = axios__default.default.create({
4188
+ baseURL: RPC_URL_TOMO,
4189
+ timeout: RPC_TIMEOUT
4190
+ });
4186
4191
  var api = axios__default.default.create({
4187
4192
  baseURL: RPC_URL,
4188
4193
  timeout: RPC_TIMEOUT
@@ -4341,11 +4346,23 @@ var getDogeFeeByBlock = async (address, n = 22) => {
4341
4346
  };
4342
4347
  var sendDogeTx = async (rawTx) => {
4343
4348
  try {
4344
- const res = await api.post("/tx/send", { rawTx });
4345
- return res.data;
4349
+ const body = {
4350
+ jsonrpc: "2.0",
4351
+ method: "sendrawtransaction",
4352
+ params: [rawTx],
4353
+ id: 1
4354
+ };
4355
+ const res = await tomoApi.post("/", body);
4356
+ const data = res.data;
4357
+ if (data?.error) {
4358
+ return Promise.reject(new Error(data.error.message || String(data.error)));
4359
+ }
4360
+ const txid = data?.result ?? "";
4361
+ return { txid };
4346
4362
  } catch (e) {
4347
- if (typeof e?.response?.data === "string") return Promise.reject(e?.response?.data);
4348
- else return Promise.reject(e.message);
4363
+ if (typeof e?.response?.data === "string") return Promise.reject(new Error(e.response.data));
4364
+ if (e?.response?.data?.error?.message) return Promise.reject(new Error(e.response.data.error.message));
4365
+ return Promise.reject(e?.message ? new Error(e.message) : e);
4349
4366
  }
4350
4367
  };
4351
4368
 
@@ -4623,7 +4640,7 @@ var DogecoinService = class _DogecoinService extends BaseService {
4623
4640
  if (!spendableUtxos || spendableUtxos?.length === 0) {
4624
4641
  txData.spendableUtxos = await getSpendableUtxos(txData.from);
4625
4642
  }
4626
- const { psbtBase64, usingUtxos } = await createPsbt(txData);
4643
+ const { psbtBase64 } = await createPsbt(txData);
4627
4644
  const signedPsbt = await this.accountInfo.signTransaction(JSON.stringify({ psbtBase64 }));
4628
4645
  const signedTx = DogecoinUtils.extractPsbtTransaction(signedPsbt, 1e5);
4629
4646
  if (signedTx === "") {
@@ -4631,7 +4648,6 @@ var DogecoinService = class _DogecoinService extends BaseService {
4631
4648
  }
4632
4649
  try {
4633
4650
  const { txid } = await sendDogeTx(signedTx);
4634
- addUsedUtxos(usingUtxos);
4635
4651
  return { txId: txid };
4636
4652
  } catch (err) {
4637
4653
  throw new Error("Error: send transaction err." + JSON.stringify(err));
package/dist/index.d.cts CHANGED
@@ -491,7 +491,9 @@ declare function getTransactions(address: string, config?: {
491
491
  pageNumber: number;
492
492
  }): Promise<TransactionResponse>;
493
493
  declare const getDogeFeeByBlock: (address?: string, n?: number) => Promise<number>;
494
- declare const sendDogeTx: (rawTx: string) => Promise<any>;
494
+ declare const sendDogeTx: (rawTx: string) => Promise<{
495
+ txid: any;
496
+ }>;
495
497
 
496
498
  type API_Transaction = Transaction;
497
499
  type API_TransactionResponse = TransactionResponse;
package/dist/index.d.ts CHANGED
@@ -491,7 +491,9 @@ declare function getTransactions(address: string, config?: {
491
491
  pageNumber: number;
492
492
  }): Promise<TransactionResponse>;
493
493
  declare const getDogeFeeByBlock: (address?: string, n?: number) => Promise<number>;
494
- declare const sendDogeTx: (rawTx: string) => Promise<any>;
494
+ declare const sendDogeTx: (rawTx: string) => Promise<{
495
+ txid: any;
496
+ }>;
495
497
 
496
498
  type API_Transaction = Transaction;
497
499
  type API_TransactionResponse = TransactionResponse;
package/dist/index.js CHANGED
@@ -3968,6 +3968,7 @@ var FEE_RATE_KB = 0.5;
3968
3968
  var DECIMALS = 1e8;
3969
3969
  var TRANSACTION_PAGE_SIZE = 10;
3970
3970
  var MYDOGE_BASE_URL = "https://api.mydoge.com";
3971
+ var RPC_URL_TOMO = "https://wallet-pro.tomo.inc/rpc/v1/doge_coin";
3971
3972
  var RPC_URL = "https://api.bitcore.io/api/DOGE/mainnet";
3972
3973
  var RPC_TIMEOUT = 20 * 1e3;
3973
3974
  var TX_OVERHEAD = 10;
@@ -4175,6 +4176,10 @@ var TransactionParser = class {
4175
4176
  var mydoge = axios.create({
4176
4177
  baseURL: MYDOGE_BASE_URL
4177
4178
  });
4179
+ var tomoApi = axios.create({
4180
+ baseURL: RPC_URL_TOMO,
4181
+ timeout: RPC_TIMEOUT
4182
+ });
4178
4183
  var api = axios.create({
4179
4184
  baseURL: RPC_URL,
4180
4185
  timeout: RPC_TIMEOUT
@@ -4333,11 +4338,23 @@ var getDogeFeeByBlock = async (address, n = 22) => {
4333
4338
  };
4334
4339
  var sendDogeTx = async (rawTx) => {
4335
4340
  try {
4336
- const res = await api.post("/tx/send", { rawTx });
4337
- return res.data;
4341
+ const body = {
4342
+ jsonrpc: "2.0",
4343
+ method: "sendrawtransaction",
4344
+ params: [rawTx],
4345
+ id: 1
4346
+ };
4347
+ const res = await tomoApi.post("/", body);
4348
+ const data = res.data;
4349
+ if (data?.error) {
4350
+ return Promise.reject(new Error(data.error.message || String(data.error)));
4351
+ }
4352
+ const txid = data?.result ?? "";
4353
+ return { txid };
4338
4354
  } catch (e) {
4339
- if (typeof e?.response?.data === "string") return Promise.reject(e?.response?.data);
4340
- else return Promise.reject(e.message);
4355
+ if (typeof e?.response?.data === "string") return Promise.reject(new Error(e.response.data));
4356
+ if (e?.response?.data?.error?.message) return Promise.reject(new Error(e.response.data.error.message));
4357
+ return Promise.reject(e?.message ? new Error(e.message) : e);
4341
4358
  }
4342
4359
  };
4343
4360
 
@@ -4615,7 +4632,7 @@ var DogecoinService = class _DogecoinService extends BaseService {
4615
4632
  if (!spendableUtxos || spendableUtxos?.length === 0) {
4616
4633
  txData.spendableUtxos = await getSpendableUtxos(txData.from);
4617
4634
  }
4618
- const { psbtBase64, usingUtxos } = await createPsbt(txData);
4635
+ const { psbtBase64 } = await createPsbt(txData);
4619
4636
  const signedPsbt = await this.accountInfo.signTransaction(JSON.stringify({ psbtBase64 }));
4620
4637
  const signedTx = DogecoinUtils.extractPsbtTransaction(signedPsbt, 1e5);
4621
4638
  if (signedTx === "") {
@@ -4623,7 +4640,6 @@ var DogecoinService = class _DogecoinService extends BaseService {
4623
4640
  }
4624
4641
  try {
4625
4642
  const { txid } = await sendDogeTx(signedTx);
4626
- addUsedUtxos(usingUtxos);
4627
4643
  return { txId: txid };
4628
4644
  } catch (err) {
4629
4645
  throw new Error("Error: send transaction err." + JSON.stringify(err));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tomo-inc/chains-service",
3
- "version": "0.0.21",
3
+ "version": "0.0.23",
4
4
  "author": "tomo.inc",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -18,6 +18,7 @@ export const NETWORK = "livenet";
18
18
  export const MYDOGE_BASE_URL = "https://api.mydoge.com";
19
19
  export const TX_LINK = "https://chain.so/tx/DOGE/";
20
20
 
21
+ export const RPC_URL_TOMO = "https://wallet-pro.tomo.inc/rpc/v1/doge_coin";
21
22
  export const RPC_URL = "https://api.bitcore.io/api/DOGE/mainnet";
22
23
  export const RPC_TIMEOUT = 20 * 1000;
23
24
 
@@ -1,14 +1,18 @@
1
1
  import axios from "axios";
2
2
 
3
- import { TRANSACTION_PAGE_SIZE, BLOCK_CONFIRMATIONS, FEE_RATE_KB } from "./config";
4
- import { RPC_URL, MYDOGE_BASE_URL, RPC_TIMEOUT, TX_SIZE } from "./config";
5
- import { TransactionParser, toSatoshi, toBitcoin } from "./utils";
3
+ import { BLOCK_CONFIRMATIONS, FEE_RATE_KB, MYDOGE_BASE_URL, RPC_TIMEOUT, RPC_URL, RPC_URL_TOMO, TRANSACTION_PAGE_SIZE, TX_SIZE } from "./config";
6
4
  import { DogeSpendableUtxos } from "./type";
5
+ import { TransactionParser, toBitcoin, toSatoshi } from "./utils";
7
6
 
8
7
  export const mydoge = axios.create({
9
8
  baseURL: MYDOGE_BASE_URL,
10
9
  });
11
10
 
11
+ const tomoApi = axios.create({
12
+ baseURL: RPC_URL_TOMO,
13
+ timeout: RPC_TIMEOUT,
14
+ });
15
+
12
16
  const api = axios.create({
13
17
  baseURL: RPC_URL,
14
18
  timeout: RPC_TIMEOUT,
@@ -259,10 +263,23 @@ export const getDogeFeeByBlock = async (address?: string, n = 22) => {
259
263
 
260
264
  export const sendDogeTx = async (rawTx: string) => {
261
265
  try {
262
- const res = await api.post("/tx/send", { rawTx });
263
- return res.data;
266
+ //https://wallet.tomo.inc/rpc/v1/doge_coin
267
+ const body = {
268
+ jsonrpc: "2.0",
269
+ method: "sendrawtransaction",
270
+ params: [rawTx],
271
+ id: 1,
272
+ };
273
+ const res: any = await tomoApi.post("/", body);
274
+ const data = res.data;
275
+ if (data?.error) {
276
+ return Promise.reject(new Error(data.error.message || String(data.error)));
277
+ }
278
+ const txid = data?.result ?? "";
279
+ return { txid };
264
280
  } catch (e: any) {
265
- if (typeof e?.response?.data === "string") return Promise.reject(e?.response?.data);
266
- else return Promise.reject(e.message);
281
+ if (typeof e?.response?.data === "string") return Promise.reject(new Error(e.response.data));
282
+ if (e?.response?.data?.error?.message) return Promise.reject(new Error(e.response.data.error.message));
283
+ return Promise.reject(e?.message ? new Error(e.message) : e);
267
284
  }
268
285
  };
@@ -15,7 +15,7 @@ import { DogeTxData } from "./type";
15
15
  import * as utils from "./utils";
16
16
 
17
17
  import { BaseConfig } from "./config";
18
- import { addUsedUtxos, createPsbt, toBitcoin } from "./utils";
18
+ import { createPsbt, toBitcoin } from "./utils";
19
19
 
20
20
  export class DogecoinService extends BaseService {
21
21
  private static instance: DogecoinService;
@@ -204,8 +204,9 @@ export class DogecoinService extends BaseService {
204
204
  if (!spendableUtxos || spendableUtxos?.length === 0) {
205
205
  txData.spendableUtxos = await API.getSpendableUtxos(txData.from);
206
206
  }
207
+ // const { psbtBase64, usingUtxos } = await createPsbt(txData as any);
208
+ const { psbtBase64 } = await createPsbt(txData as any);
207
209
 
208
- const { psbtBase64, usingUtxos } = await createPsbt(txData as any);
209
210
  const signedPsbt = await this.accountInfo.signTransaction(JSON.stringify({ psbtBase64 }));
210
211
  const signedTx = DogecoinUtils.extractPsbtTransaction(signedPsbt, 100000);
211
212
 
@@ -214,7 +215,7 @@ export class DogecoinService extends BaseService {
214
215
  }
215
216
  try {
216
217
  const { txid } = await API.sendDogeTx(signedTx);
217
- addUsedUtxos(usingUtxos);
218
+ // addUsedUtxos(usingUtxos);
218
219
  return { txId: txid };
219
220
  } catch (err) {
220
221
  throw new Error("Error: send transaction err." + JSON.stringify(err));