@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 +22 -6
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +22 -6
- package/package.json +1 -1
- package/src/dogecoin/config.ts +1 -0
- package/src/dogecoin/rpc.ts +24 -7
- package/src/dogecoin/service.ts +4 -3
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
|
|
4345
|
-
|
|
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
|
|
4348
|
-
|
|
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
|
|
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<
|
|
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<
|
|
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
|
|
4337
|
-
|
|
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
|
|
4340
|
-
|
|
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
|
|
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
package/src/dogecoin/config.ts
CHANGED
|
@@ -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
|
|
package/src/dogecoin/rpc.ts
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import axios from "axios";
|
|
2
2
|
|
|
3
|
-
import {
|
|
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
|
-
|
|
263
|
-
|
|
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
|
|
266
|
-
|
|
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
|
};
|
package/src/dogecoin/service.ts
CHANGED
|
@@ -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 {
|
|
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));
|