@allbridge/bridge-core-sdk 0.4.2 → 0.6.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.
@@ -1,18 +1,15 @@
1
1
  import Web3 from "web3";
2
- import { AllbridgeCoreClient } from "../../client/core-api";
3
- import { ApprovalBridge, ApproveData, GetTokenBalanceData, TxSendParams, SendParamsWithChainSymbols, SendParamsWithTokenInfos, TransactionResponse } from "../models";
2
+ import { ChainType } from "../../chains";
3
+ import { ApprovalBridge, ApproveData, GetTokenBalanceData, TxSendParams, TransactionResponse } from "../models";
4
4
  export declare const MAX_AMOUNT = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
5
5
  export declare class EvmBridge extends ApprovalBridge {
6
- api: AllbridgeCoreClient;
7
6
  web3: Web3;
8
- constructor(api: AllbridgeCoreClient, web3: Web3);
7
+ chainType: ChainType.EVM;
8
+ constructor(web3: Web3);
9
9
  getTokenBalance(data: GetTokenBalanceData): Promise<string>;
10
- send(params: SendParamsWithChainSymbols | SendParamsWithTokenInfos): Promise<TransactionResponse>;
11
10
  sendTx(params: TxSendParams): Promise<TransactionResponse>;
12
11
  approve(approveData: ApproveData): Promise<TransactionResponse>;
13
12
  getAllowance(approveData: ApproveData): Promise<string>;
14
13
  private getContract;
15
14
  private getBridgeContract;
16
- private static getNonce;
17
- private getDecimalsByContractAddress;
18
15
  }
@@ -11,71 +11,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.EvmBridge = exports.MAX_AMOUNT = void 0;
12
12
  const bn_js_1 = __importDefault(require("bn.js"));
13
13
  const erc_20_abi_1 = __importDefault(require("erc-20-abi"));
14
- const randombytes_1 = __importDefault(require("randombytes"));
15
14
  const chains_1 = require("../../chains");
16
- const calculation_1 = require("../../utils/calculation");
17
- const index_1 = require("../index");
18
15
  const models_1 = require("../models");
19
16
  const utils_1 = require("../utils");
20
17
  const Abi_json_1 = __importDefault(require("./abi/Abi.json"));
21
18
  exports.MAX_AMOUNT = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
22
19
  class EvmBridge extends models_1.ApprovalBridge {
23
- constructor(api, web3) {
20
+ constructor(web3) {
24
21
  super();
25
- this.api = api;
26
22
  this.web3 = web3;
23
+ this.chainType = chains_1.ChainType.EVM;
27
24
  }
28
- getTokenBalance(data) {
29
- return this.getContract(erc_20_abi_1.default, data.tokenAddress)
25
+ async getTokenBalance(data) {
26
+ return await this.getContract(erc_20_abi_1.default, data.tokenAddress)
30
27
  .methods.balanceOf(data.account)
31
28
  .call();
32
29
  }
33
- async send(params) {
34
- const txSendParams = {};
35
- let fromChainId;
36
- let toChainType;
37
- if (index_1.BridgeService.isSendParamsWithChainSymbol(params)) {
38
- const chainDetailsMap = (await this.api.getTokensInfo()).chainDetailsMap();
39
- fromChainId = chainDetailsMap[params.fromChainSymbol].allbridgeChainId;
40
- toChainType = chains_1.chainProperties[params.toChainSymbol].chainType;
41
- txSendParams.contractAddress =
42
- chainDetailsMap[params.fromChainSymbol].bridgeAddress;
43
- txSendParams.fromTokenAddress = params.fromTokenAddress;
44
- txSendParams.toChainId =
45
- chainDetailsMap[params.toChainSymbol].allbridgeChainId;
46
- txSendParams.toTokenAddress = params.toTokenAddress;
47
- txSendParams.amount = (0, calculation_1.convertFloatAmountToInt)(params.amount, this.getDecimalsByContractAddress(chainDetailsMap, params.fromChainSymbol, txSendParams.fromTokenAddress)).toFixed();
48
- }
49
- else {
50
- fromChainId = params.sourceChainToken.allbridgeChainId;
51
- toChainType =
52
- chains_1.chainProperties[params.destinationChainToken.chainSymbol].chainType;
53
- txSendParams.contractAddress = params.sourceChainToken.bridgeAddress;
54
- txSendParams.fromTokenAddress = params.sourceChainToken.tokenAddress;
55
- txSendParams.toChainId = params.destinationChainToken.allbridgeChainId;
56
- txSendParams.toTokenAddress = params.destinationChainToken.tokenAddress;
57
- txSendParams.amount = (0, calculation_1.convertFloatAmountToInt)(params.amount, params.sourceChainToken.decimals).toFixed();
58
- }
59
- txSendParams.messenger = params.messenger;
60
- txSendParams.fromAccountAddress = params.fromAccountAddress;
61
- let { fee } = params;
62
- if (fee == null) {
63
- fee = await this.api.getReceiveTransactionCost({
64
- sourceChainId: fromChainId,
65
- destinationChainId: txSendParams.toChainId,
66
- messenger: txSendParams.messenger,
67
- });
68
- }
69
- txSendParams.fee = fee;
70
- txSendParams.fromTokenAddress = (0, utils_1.formatAddress)(txSendParams.fromTokenAddress, chains_1.ChainType.EVM, chains_1.ChainType.EVM);
71
- txSendParams.toAccountAddress = (0, utils_1.formatAddress)(params.toAccountAddress, toChainType, chains_1.ChainType.EVM);
72
- txSendParams.toTokenAddress = (0, utils_1.formatAddress)(txSendParams.toTokenAddress, toChainType, chains_1.ChainType.EVM);
73
- return this.sendTx(txSendParams);
74
- }
75
30
  async sendTx(params) {
76
31
  const { amount, contractAddress, fromAccountAddress, fromTokenAddress, toChainId, toAccountAddress, toTokenAddress, messenger, fee, } = params;
77
32
  const bridgeContract = this.getBridgeContract(contractAddress);
78
- const nonce = new bn_js_1.default(EvmBridge.getNonce());
33
+ const nonce = new bn_js_1.default((0, utils_1.getNonce)());
79
34
  const swapAndBridgeMethod = bridgeContract.methods.swapAndBridge(fromTokenAddress, amount, toAccountAddress, toChainId, toTokenAddress, nonce, messenger);
80
35
  const estimateGas = await swapAndBridgeMethod.estimateGas({
81
36
  from: fromAccountAddress,
@@ -110,16 +65,6 @@ class EvmBridge extends models_1.ApprovalBridge {
110
65
  getBridgeContract(contractAddress) {
111
66
  return this.getContract(Abi_json_1.default, contractAddress);
112
67
  }
113
- static getNonce() {
114
- return (0, randombytes_1.default)(32);
115
- }
116
- getDecimalsByContractAddress(chainDetailsMap, chainSymbol, contractAddress) {
117
- const sourceTokenInfoWithChainDetails = chainDetailsMap[chainSymbol].tokens.find((value) => value.tokenAddress.toUpperCase() === contractAddress.toUpperCase());
118
- if (!sourceTokenInfoWithChainDetails) {
119
- throw new Error("Cannot find source token info");
120
- }
121
- return sourceTokenInfoWithChainDetails.decimals;
122
- }
123
68
  }
124
69
  exports.EvmBridge = EvmBridge;
125
70
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bridge/evm/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bridge/evm/index.ts"],"names":[],"mappings":";AAAA,wDAAwD;AACxD,+DAA+D;AAC/D,sDAAsD;AACtD,4DAA4D;AAC5D,uDAAuD;;;;;;AAEvD,kDAAuB;AACvB,4DAAkC;AAGlC,yCAAyC;AACzC,sCAMmB;AACnB,oCAAoC;AACpC,8DAAiC;AAIpB,QAAA,UAAU,GACrB,oEAAoE,CAAC;AAEvE,MAAa,SAAU,SAAQ,uBAAc;IAG3C,YAAmB,IAAU;QAC3B,KAAK,EAAE,CAAC;QADS,SAAI,GAAJ,IAAI,CAAM;QAF7B,cAAS,GAAkB,kBAAS,CAAC,GAAG,CAAC;IAIzC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAyB;QAC7C,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAqB,EAAE,IAAI,CAAC,YAAY,CAAC;aACpE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;aAC/B,IAAI,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,MAAM,EACJ,MAAM,EACN,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,GAAG,GACJ,GAAG,MAAM,CAAC;QAEX,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,eAAE,CAAC,IAAA,gBAAQ,GAAE,CAAC,CAAC;QAEjC,MAAM,mBAAmB,GAAG,cAAc,CAAC,OAAO,CAAC,aAAa,CAC9D,gBAAgB,EAChB,MAAM,EACN,gBAAgB,EAChB,SAAS,EACT,cAAc,EACd,KAAK,EACL,SAAS,CACV,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC;YACxD,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;QAEH,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC;YACzD,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,GAAG;YACV,GAAG,EAAE,WAAW;SACjB,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,WAAwB;QACpC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAqB,EAAE,YAAY,CAAC,CAAC;QAE5E,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,OAAO,CACvD,OAAO,EACP,kBAAU,CACX,CAAC;QACF,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAErE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC;YACnD,IAAI,EAAE,KAAK;YACX,GAAG,EAAE,WAAW;SACjB,CAAC,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,WAAwB;QACnC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAqB,EAAE,YAAY,CAAC,CAAC;QAC5E,OAAO,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,CAAC;IAEO,WAAW,CACjB,OAAkB,EAClB,eAAuB;QAEvB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAQ,CAAC;IACrE,CAAC;IAEO,iBAAiB,CAAC,eAAuB;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAS,kBAAgB,EAAE,eAAe,CAAC,CAAC;IACrE,CAAC;CACF;AApFD,8BAoFC"}
@@ -1,10 +1,10 @@
1
- import Web3 from "web3";
2
1
  import { AllbridgeCoreClient } from "../client/core-api";
3
- import { ApproveData, SendParamsWithChainSymbols, SendParamsWithTokenInfos, TransactionResponse } from "./models";
2
+ import { ApproveData, Provider, SendParamsWithChainSymbols, SendParamsWithTokenInfos, TransactionResponse } from "./models";
4
3
  export declare class BridgeService {
5
4
  api: AllbridgeCoreClient;
6
5
  constructor(api: AllbridgeCoreClient);
7
- evmApprove(web3: Web3, approveData: ApproveData): Promise<TransactionResponse>;
8
- send(web3: Web3, params: SendParamsWithChainSymbols | SendParamsWithTokenInfos): Promise<TransactionResponse>;
9
- static isSendParamsWithChainSymbol(params: SendParamsWithChainSymbols | SendParamsWithTokenInfos): params is SendParamsWithChainSymbols;
6
+ approve(provider: Provider, approveData: ApproveData): Promise<TransactionResponse>;
7
+ send(provider: Provider, params: SendParamsWithChainSymbols | SendParamsWithTokenInfos): Promise<TransactionResponse>;
8
+ private getBridge;
9
+ private isTronWeb;
10
10
  }
@@ -2,44 +2,32 @@
2
2
  /* eslint-disable @typescript-eslint/restrict-template-expressions */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.BridgeService = void 0;
5
- const chains_1 = require("../chains");
6
5
  const evm_1 = require("./evm");
6
+ const trx_1 = require("./trx");
7
+ const utils_1 = require("./utils");
7
8
  class BridgeService {
8
9
  constructor(api) {
9
10
  this.api = api;
10
11
  }
11
- async evmApprove(web3, approveData) {
12
- const evmBridge = new evm_1.EvmBridge(this.api, web3);
13
- return evmBridge.approve(approveData);
12
+ async approve(provider, approveData) {
13
+ return this.getBridge(provider).approve(approveData);
14
14
  }
15
- async send(web3, params) {
16
- let chainType;
17
- if (BridgeService.isSendParamsWithChainSymbol(params)) {
18
- chainType = chains_1.chainProperties[params.fromChainSymbol].chainType;
15
+ async send(provider, params) {
16
+ const bridge = this.getBridge(provider);
17
+ const txSendParams = await (0, utils_1.prepareTxSendParams)(bridge.chainType, params, this.api);
18
+ return bridge.sendTx(txSendParams);
19
+ }
20
+ getBridge(provider) {
21
+ if (this.isTronWeb(provider)) {
22
+ return new trx_1.TronBridge(provider);
19
23
  }
20
24
  else {
21
- chainType =
22
- chains_1.chainProperties[params.sourceChainToken.chainSymbol].chainType;
23
- }
24
- switch (chainType) {
25
- case chains_1.ChainType.EVM: {
26
- const evmBridge = new evm_1.EvmBridge(this.api, web3);
27
- return evmBridge.send(params);
28
- }
29
- case chains_1.ChainType.SOLANA: {
30
- throw new Error(`Error in send method: method not implemented for SOLANA`);
31
- }
32
- case chains_1.ChainType.TRX: {
33
- throw new Error(`Error in send method: method not implemented for TRX`);
34
- }
35
- default: {
36
- throw new Error(`Error in send method: unknown chain type ${chainType}, or method not implemented`);
37
- }
25
+ return new evm_1.EvmBridge(provider);
38
26
  }
39
27
  }
40
- static isSendParamsWithChainSymbol(params) {
41
- /* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition */
42
- return params.fromChainSymbol !== undefined;
28
+ isTronWeb(params) {
29
+ // @ts-expect-error get existing trx property
30
+ return params.trx !== undefined;
43
31
  }
44
32
  }
45
33
  exports.BridgeService = BridgeService;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bridge/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;;;AAGrE,sCAAuD;AAEvD,+BAAkC;AAQlC,MAAa,aAAa;IACxB,YAAmB,GAAwB;QAAxB,QAAG,GAAH,GAAG,CAAqB;IAAG,CAAC;IAE/C,KAAK,CAAC,UAAU,CACd,IAAU,EACV,WAAwB;QAExB,MAAM,SAAS,GAAG,IAAI,eAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAAU,EACV,MAA6D;QAE7D,IAAI,SAAS,CAAC;QACd,IAAI,aAAa,CAAC,2BAA2B,CAAC,MAAM,CAAC,EAAE;YACrD,SAAS,GAAG,wBAAe,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC;SAC/D;aAAM;YACL,SAAS;gBACP,wBAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;SAClE;QACD,QAAQ,SAAS,EAAE;YACjB,KAAK,kBAAS,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM,SAAS,GAAG,IAAI,eAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAChD,OAAO,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC/B;YACD,KAAK,kBAAS,CAAC,MAAM,CAAC,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;aACH;YACD,KAAK,kBAAS,CAAC,GAAG,CAAC,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;aACzE;YACD,OAAO,CAAC,CAAC;gBACP,MAAM,IAAI,KAAK,CACb,4CAA4C,SAAS,6BAA6B,CACnF,CAAC;aACH;SACF;IACH,CAAC;IAED,MAAM,CAAC,2BAA2B,CAChC,MAA6D;QAE7D,0EAA0E;QAC1E,OAAQ,MAAqC,CAAC,eAAe,KAAK,SAAS,CAAC;IAC9E,CAAC;CACF;AAjDD,sCAiDC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/bridge/index.ts"],"names":[],"mappings":";AAAA,qEAAqE;;;AAIrE,+BAAkC;AASlC,+BAAmC;AACnC,mCAA8C;AAE9C,MAAa,aAAa;IACxB,YAAmB,GAAwB;QAAxB,QAAG,GAAH,GAAG,CAAqB;IAAG,CAAC;IAE/C,KAAK,CAAC,OAAO,CACX,QAAkB,EAClB,WAAwB;QAExB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,IAAI,CACR,QAAkB,EAClB,MAA6D;QAE7D,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,MAAM,IAAA,2BAAmB,EAC5C,MAAM,CAAC,SAAS,EAChB,MAAM,EACN,IAAI,CAAC,GAAG,CACT,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAEO,SAAS,CAAC,QAAkB;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,IAAI,gBAAU,CAAC,QAAQ,CAAC,CAAC;SACjC;aAAM;YACL,OAAO,IAAI,eAAS,CAAC,QAAQ,CAAC,CAAC;SAChC;IACH,CAAC;IAEO,SAAS,CAAC,MAAgB;QAChC,6CAA6C;QAC7C,OAAQ,MAAkB,CAAC,GAAG,KAAK,SAAS,CAAC;IAC/C,CAAC;CACF;AAnCD,sCAmCC"}
@@ -1,9 +1,12 @@
1
- import { ChainSymbol } from "../../chains";
1
+ import { TronWeb } from "tronweb-typings";
2
+ import Web3 from "web3";
3
+ import { ChainSymbol, ChainType } from "../../chains";
2
4
  import { Messenger } from "../../client/core-api/core-api.model";
3
5
  import { TokenInfoWithChainDetails } from "../../tokens-info";
4
6
  export declare abstract class Bridge {
7
+ abstract chainType: ChainType;
5
8
  abstract getTokenBalance(data: GetTokenBalanceData): Promise<string>;
6
- abstract send(params: BaseSendParams): Promise<TransactionResponse>;
9
+ abstract sendTx(params: TxSendParams): Promise<TransactionResponse>;
7
10
  }
8
11
  export declare abstract class ApprovalBridge extends Bridge {
9
12
  isNeededApprove(approveData: ApproveData): Promise<boolean>;
@@ -86,10 +89,14 @@ export interface TxSendParams {
86
89
  amount: string;
87
90
  contractAddress: string;
88
91
  fromAccountAddress: string;
89
- fromTokenAddress: string;
92
+ fromTokenAddress: string | number[];
90
93
  toChainId: number;
91
- toAccountAddress: string;
92
- toTokenAddress: string;
94
+ toAccountAddress: string | number[];
95
+ toTokenAddress: string | number[];
93
96
  messenger: Messenger;
94
97
  fee: string;
95
98
  }
99
+ /**
100
+ * The provider is type that combines connection implementations for different chains.
101
+ */
102
+ export declare type Provider = Web3 | TronWeb;
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.model.js","sourceRoot":"","sources":["../../../../src/bridge/models/bridge.model.ts"],"names":[],"mappings":";;;AAAA,mCAA6B;AAK7B,MAAsB,MAAM;CAI3B;AAJD,wBAIC;AAED,MAAsB,cAAe,SAAQ,MAAM;IACjD,KAAK,CAAC,eAAe,CAAC,WAAwB;QAC5C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACvD,OAAO,IAAA,YAAG,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;CAKF;AATD,wCASC"}
1
+ {"version":3,"file":"bridge.model.js","sourceRoot":"","sources":["../../../../src/bridge/models/bridge.model.ts"],"names":[],"mappings":";;;AAAA,mCAA6B;AAO7B,MAAsB,MAAM;CAK3B;AALD,wBAKC;AAED,MAAsB,cAAe,SAAQ,MAAM;IACjD,KAAK,CAAC,eAAe,CAAC,WAAwB;QAC5C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QACvD,OAAO,IAAA,YAAG,EAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;CAKF;AATD,wCASC"}
@@ -0,0 +1,15 @@
1
+ import { TronWeb } from "tronweb-typings";
2
+ import { ChainType } from "../../chains";
3
+ import { ApprovalBridge, ApproveData, GetTokenBalanceData, TransactionResponse, TxSendParams } from "../models";
4
+ export declare const MAX_AMOUNT = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
5
+ export declare class TronBridge extends ApprovalBridge {
6
+ tronWeb: TronWeb;
7
+ chainType: ChainType.TRX;
8
+ constructor(tronWeb: TronWeb);
9
+ getTokenBalance(data: GetTokenBalanceData): Promise<string>;
10
+ sendTx(params: TxSendParams): Promise<TransactionResponse>;
11
+ approve(approveData: ApproveData): Promise<TransactionResponse>;
12
+ getAllowance(approveData: ApproveData): Promise<string>;
13
+ private getContract;
14
+ private verifyTx;
15
+ }
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-unsafe-return */
3
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
4
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
5
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
6
+ /* eslint-disable @typescript-eslint/no-explicit-any */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.TronBridge = exports.MAX_AMOUNT = void 0;
9
+ const chains_1 = require("../../chains");
10
+ const models_1 = require("../models");
11
+ const utils_1 = require("../utils");
12
+ exports.MAX_AMOUNT = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
13
+ class TronBridge extends models_1.ApprovalBridge {
14
+ constructor(tronWeb) {
15
+ super();
16
+ this.tronWeb = tronWeb;
17
+ this.chainType = chains_1.ChainType.TRX;
18
+ }
19
+ async getTokenBalance(data) {
20
+ const contract = await this.getContract(data.tokenAddress);
21
+ const balance = await contract.balanceOf(data.account).call();
22
+ return balance.toString();
23
+ }
24
+ async sendTx(params) {
25
+ const { amount, contractAddress, fromTokenAddress, toChainId, toAccountAddress, toTokenAddress, messenger, fee, } = params;
26
+ const bridgeContract = await this.getContract(contractAddress);
27
+ const nonce = (0, utils_1.getNonce)().toJSON().data;
28
+ const swapAndBridgeMethod = bridgeContract.methods.swapAndBridge(fromTokenAddress, amount, toAccountAddress, toChainId, toTokenAddress, nonce, messenger);
29
+ const transactionHash = await swapAndBridgeMethod.send({
30
+ callValue: fee,
31
+ });
32
+ /* eslint-disable-next-line @typescript-eslint/no-unsafe-argument */
33
+ await this.verifyTx(transactionHash);
34
+ return { txId: transactionHash };
35
+ }
36
+ async approve(approveData) {
37
+ const { tokenAddress, spender, owner } = approveData;
38
+ const tokenContract = await this.getContract(tokenAddress);
39
+ const transactionHash = await tokenContract
40
+ .approve(spender, exports.MAX_AMOUNT)
41
+ .send({ from: owner });
42
+ /* eslint-disable-next-line @typescript-eslint/no-unsafe-argument */
43
+ await this.verifyTx(transactionHash);
44
+ return { txId: transactionHash };
45
+ }
46
+ async getAllowance(approveData) {
47
+ const { tokenAddress, spender, owner } = approveData;
48
+ const tokenContract = await this.getContract(tokenAddress);
49
+ const allowance = await tokenContract.allowance(owner, spender).call();
50
+ return allowance.toString();
51
+ }
52
+ getContract(contractAddress) {
53
+ return this.tronWeb.contract().at(contractAddress);
54
+ }
55
+ async verifyTx(txId, timeout = 10000) {
56
+ const start = Date.now();
57
+ /* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, no-constant-condition */
58
+ while (true) {
59
+ if (Date.now() - start > timeout) {
60
+ throw new Error("Transaction not found");
61
+ }
62
+ // @ts-expect-error get existing trx property
63
+ const result = await this.tronWeb.trx.getUnconfirmedTransactionInfo(txId);
64
+ if (!result?.receipt) {
65
+ await (0, utils_1.sleep)(2000);
66
+ continue;
67
+ }
68
+ if (result.receipt.result === "SUCCESS") {
69
+ return result;
70
+ }
71
+ else {
72
+ /* eslint-disable-next-line @typescript-eslint/restrict-template-expressions */
73
+ throw new Error(`Transaction status is ${result.receipt.result}`);
74
+ }
75
+ }
76
+ }
77
+ }
78
+ exports.TronBridge = TronBridge;
79
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bridge/trx/index.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import { ChainType } from "../chains";
3
- export declare function formatAddress(address: string, from: ChainType, to: ChainType): string;
4
- export declare function hexToBuffer(hex: string): Buffer;
5
- export declare function evmAddressToBuffer32(address: string): Buffer;
6
- export declare function tronAddressToBuffer32(address: string): Buffer;
7
- export declare function tronAddressToEthAddress(address: string): string;
8
- export declare function bufferToSize(buffer: Buffer, size: number): Buffer;
3
+ import { AllbridgeCoreClient } from "../client/core-api";
4
+ import { SendParamsWithChainSymbols, SendParamsWithTokenInfos, TxSendParams } from "./models";
5
+ export declare function formatAddress(address: string, from: ChainType, to: ChainType): string | number[];
6
+ export declare function getNonce(): Buffer;
7
+ export declare function prepareTxSendParams(bridgeChainType: ChainType, params: SendParamsWithChainSymbols | SendParamsWithTokenInfos, api: AllbridgeCoreClient): Promise<TxSendParams>;
8
+ export declare function isSendParamsWithChainSymbol(params: SendParamsWithChainSymbols | SendParamsWithTokenInfos): params is SendParamsWithChainSymbols;
9
+ export declare function sleep(ms: number): Promise<void>;
@@ -22,15 +22,20 @@ var __importStar = (this && this.__importStar) || function (mod) {
22
22
  __setModuleDefault(result, mod);
23
23
  return result;
24
24
  };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
25
28
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.bufferToSize = exports.tronAddressToEthAddress = exports.tronAddressToBuffer32 = exports.evmAddressToBuffer32 = exports.hexToBuffer = exports.formatAddress = void 0;
29
+ exports.sleep = exports.isSendParamsWithChainSymbol = exports.prepareTxSendParams = exports.getNonce = exports.formatAddress = void 0;
27
30
  /* eslint-disable @typescript-eslint/restrict-template-expressions */
28
31
  /* eslint-disable @typescript-eslint/no-unsafe-argument */
29
32
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
30
33
  /* eslint-disable @typescript-eslint/no-unsafe-call */
34
+ const randombytes_1 = __importDefault(require("randombytes"));
31
35
  /* @ts-expect-error Could not find a declaration file for module "tronweb"*/
32
36
  const TronWebLib = __importStar(require("tronweb"));
33
37
  const chains_1 = require("../chains");
38
+ const calculation_1 = require("../utils/calculation");
34
39
  function formatAddress(address, from, to) {
35
40
  let buffer;
36
41
  switch (from) {
@@ -57,7 +62,7 @@ function formatAddress(address, from, to) {
57
62
  throw new Error(`Error in formatAddress method: method not implemented for toChainType: SOLANA`);
58
63
  }
59
64
  case chains_1.ChainType.TRX: {
60
- return buffer.toString();
65
+ return buffer.toJSON().data;
61
66
  }
62
67
  default: {
63
68
  throw new Error(`Error in formatAddress method: unknown chain type ${to}, or method not implemented`);
@@ -68,25 +73,21 @@ exports.formatAddress = formatAddress;
68
73
  function hexToBuffer(hex) {
69
74
  return Buffer.from(hex.replace(/^0x/i, ""), "hex");
70
75
  }
71
- exports.hexToBuffer = hexToBuffer;
72
76
  function evmAddressToBuffer32(address) {
73
77
  const length = 32;
74
78
  const buff = hexToBuffer(address);
75
79
  return Buffer.concat([Buffer.alloc(length - buff.length, 0), buff], length);
76
80
  }
77
- exports.evmAddressToBuffer32 = evmAddressToBuffer32;
78
81
  function tronAddressToBuffer32(address) {
79
82
  const ethAddress = tronAddressToEthAddress(address);
80
83
  const buffer = hexToBuffer(ethAddress);
81
84
  return bufferToSize(buffer, 32);
82
85
  }
83
- exports.tronAddressToBuffer32 = tronAddressToBuffer32;
84
86
  function tronAddressToEthAddress(address) {
85
87
  return Buffer.from(TronWebLib.utils.crypto.decodeBase58Address(address))
86
88
  .toString("hex")
87
89
  .replace(/^41/, "0x");
88
90
  }
89
- exports.tronAddressToEthAddress = tronAddressToEthAddress;
90
91
  function bufferToSize(buffer, size) {
91
92
  if (buffer.length >= size) {
92
93
  return buffer;
@@ -95,5 +96,67 @@ function bufferToSize(buffer, size) {
95
96
  buffer.copy(result, size - buffer.length);
96
97
  return result;
97
98
  }
98
- exports.bufferToSize = bufferToSize;
99
+ function getDecimalsByContractAddress(chainDetailsMap, chainSymbol, contractAddress) {
100
+ const sourceTokenInfoWithChainDetails = chainDetailsMap[chainSymbol].tokens.find((value) => value.tokenAddress.toUpperCase() === contractAddress.toUpperCase());
101
+ if (!sourceTokenInfoWithChainDetails) {
102
+ throw new Error("Cannot find source token info");
103
+ }
104
+ return sourceTokenInfoWithChainDetails.decimals;
105
+ }
106
+ function getNonce() {
107
+ return (0, randombytes_1.default)(32);
108
+ }
109
+ exports.getNonce = getNonce;
110
+ async function prepareTxSendParams(bridgeChainType, params, api) {
111
+ const txSendParams = {};
112
+ let fromChainId;
113
+ let toChainType;
114
+ if (isSendParamsWithChainSymbol(params)) {
115
+ const chainDetailsMap = (await api.getTokensInfo()).chainDetailsMap();
116
+ fromChainId = chainDetailsMap[params.fromChainSymbol].allbridgeChainId;
117
+ toChainType = chains_1.chainProperties[params.toChainSymbol].chainType;
118
+ txSendParams.contractAddress =
119
+ chainDetailsMap[params.fromChainSymbol].bridgeAddress;
120
+ txSendParams.fromTokenAddress = params.fromTokenAddress;
121
+ txSendParams.toChainId =
122
+ chainDetailsMap[params.toChainSymbol].allbridgeChainId;
123
+ txSendParams.toTokenAddress = params.toTokenAddress;
124
+ txSendParams.amount = (0, calculation_1.convertFloatAmountToInt)(params.amount, getDecimalsByContractAddress(chainDetailsMap, params.fromChainSymbol, txSendParams.fromTokenAddress)).toFixed();
125
+ }
126
+ else {
127
+ fromChainId = params.sourceChainToken.allbridgeChainId;
128
+ toChainType =
129
+ chains_1.chainProperties[params.destinationChainToken.chainSymbol].chainType;
130
+ txSendParams.contractAddress = params.sourceChainToken.bridgeAddress;
131
+ txSendParams.fromTokenAddress = params.sourceChainToken.tokenAddress;
132
+ txSendParams.toChainId = params.destinationChainToken.allbridgeChainId;
133
+ txSendParams.toTokenAddress = params.destinationChainToken.tokenAddress;
134
+ txSendParams.amount = (0, calculation_1.convertFloatAmountToInt)(params.amount, params.sourceChainToken.decimals).toFixed();
135
+ }
136
+ txSendParams.messenger = params.messenger;
137
+ txSendParams.fromAccountAddress = params.fromAccountAddress;
138
+ let { fee } = params;
139
+ if (fee == null) {
140
+ fee = await api.getReceiveTransactionCost({
141
+ sourceChainId: fromChainId,
142
+ destinationChainId: txSendParams.toChainId,
143
+ messenger: txSendParams.messenger,
144
+ });
145
+ }
146
+ txSendParams.fee = fee;
147
+ txSendParams.fromTokenAddress = formatAddress(txSendParams.fromTokenAddress, bridgeChainType, bridgeChainType);
148
+ txSendParams.toAccountAddress = formatAddress(params.toAccountAddress, toChainType, bridgeChainType);
149
+ txSendParams.toTokenAddress = formatAddress(txSendParams.toTokenAddress, toChainType, bridgeChainType);
150
+ return txSendParams;
151
+ }
152
+ exports.prepareTxSendParams = prepareTxSendParams;
153
+ function isSendParamsWithChainSymbol(params) {
154
+ /* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition */
155
+ return params.fromChainSymbol !== undefined;
156
+ }
157
+ exports.isSendParamsWithChainSymbol = isSendParamsWithChainSymbol;
158
+ function sleep(ms) {
159
+ return new Promise((resolve) => setTimeout(() => resolve(), ms));
160
+ }
161
+ exports.sleep = sleep;
99
162
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/bridge/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/bridge/utils.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { ChainSymbol } from "../../chains";
1
2
  export declare type ChainDetailsMapDTO = Record<string, ChainDetailsDTO>;
2
3
  export interface ChainDetailsDTO {
3
4
  tokens: TokenDTO[];
@@ -48,3 +49,35 @@ export interface ReceiveTransactionCostRequest {
48
49
  export interface ReceiveTransactionCostResponse {
49
50
  fee: string;
50
51
  }
52
+ export interface TransferStatusResponse {
53
+ txId: string;
54
+ sourceChainSymbol: ChainSymbol;
55
+ destinationChainSymbol: ChainSymbol;
56
+ sendAmount: string;
57
+ sourceTokenAddress: string;
58
+ destinationTokenAddress: string;
59
+ senderAddress: string;
60
+ recipientAddress: string;
61
+ signaturesCount: number;
62
+ signaturesNeeded: number;
63
+ send: BridgeTransaction;
64
+ receive?: BridgeTransaction;
65
+ }
66
+ export interface BridgeTransaction {
67
+ txId: string;
68
+ sourceChainId: number;
69
+ destinationChainId: number;
70
+ fee: string;
71
+ amount: string;
72
+ virtualAmount: string;
73
+ bridgeContract: string;
74
+ sender: string;
75
+ recipient: string;
76
+ sourceTokenAddress: string;
77
+ destinationTokenAddress: string;
78
+ messenger: Messenger;
79
+ blockTime: number;
80
+ blockId: number;
81
+ confirmations: number;
82
+ confirmationsNeeded: number;
83
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"core-api.model.js","sourceRoot":"","sources":["../../../../src/client/core-api/core-api.model.ts"],"names":[],"mappings":";;;AA+BA,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;AACvB,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B;AAWD,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,mDAAa,CAAA;IACb,iDAAY,CAAA;AACd,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
1
+ {"version":3,"file":"core-api.model.js","sourceRoot":"","sources":["../../../../src/client/core-api/core-api.model.ts"],"names":[],"mappings":";;;AAiCA,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,0CAAuB,CAAA;IACvB,wCAAqB,CAAA;AACvB,CAAC,EAHW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAG1B;AAWD,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,mDAAa,CAAA;IACb,iDAAY,CAAA;AACd,CAAC,EAHW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAGpB"}
@@ -1,5 +1,6 @@
1
+ import { ChainSymbol } from "../../chains";
1
2
  import { TokensInfo } from "../../tokens-info";
2
- import { ReceiveTransactionCostRequest } from "./core-api.model";
3
+ import { ReceiveTransactionCostRequest, TransferStatusResponse } from "./core-api.model";
3
4
  export interface AllbridgeCoreClientParams {
4
5
  apiUrl: string;
5
6
  }
@@ -7,5 +8,6 @@ export declare class AllbridgeCoreClient {
7
8
  private api;
8
9
  constructor(params: AllbridgeCoreClientParams);
9
10
  getTokensInfo(): Promise<TokensInfo>;
11
+ getTransferStatus(chainSymbol: ChainSymbol, txId: string): Promise<TransferStatusResponse>;
10
12
  getReceiveTransactionCost(args: ReceiveTransactionCostRequest): Promise<string>;
11
13
  }
@@ -20,6 +20,10 @@ class AllbridgeCoreClient {
20
20
  const { data } = await this.api.get("/token-info");
21
21
  return new tokens_info_1.TokensInfo((0, core_api_mapper_1.mapChainDetailsMapFromDTO)(data));
22
22
  }
23
+ async getTransferStatus(chainSymbol, txId) {
24
+ const { data } = await this.api.get(`/chain/${chainSymbol}/${txId}`);
25
+ return data;
26
+ }
23
27
  async getReceiveTransactionCost(args) {
24
28
  const { data } = await this.api.post("/receive-fee", args, {
25
29
  headers: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/core-api/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAqC;AACrC,mDAA+C;AAC/C,uDAA8D;AAW9D,MAAa,mBAAmB;IAG9B,YAAY,MAAiC;QAC3C,IAAI,CAAC,GAAG,GAAG,eAAK,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAqB,aAAa,CAAC,CAAC;QACvE,OAAO,IAAI,wBAAU,CAAC,IAAA,2CAAyB,EAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,IAAmC;QAEnC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAClC,cAAc,EACd,IAAI,EACJ;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF;AA/BD,kDA+BC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/core-api/index.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAqC;AAErC,mDAA+C;AAC/C,uDAA8D;AAY9D,MAAa,mBAAmB;IAG9B,YAAY,MAAiC;QAC3C,IAAI,CAAC,GAAG,GAAG,eAAK,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,MAAM,CAAC,MAAM;YACtB,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;aAC3B;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAqB,aAAa,CAAC,CAAC;QACvE,OAAO,IAAI,wBAAU,CAAC,IAAA,2CAAyB,EAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,WAAwB,EACxB,IAAY;QAEZ,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CACjC,UAAU,WAAW,IAAI,IAAI,EAAE,CAChC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,IAAmC;QAEnC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAClC,cAAc,EACd,IAAI,EACJ;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CACF,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF;AAzCD,kDAyCC"}