@allbridge/bridge-core-sdk 0.3.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 (84) hide show
  1. package/README.md +1 -0
  2. package/dist/browser/index.js +53800 -0
  3. package/dist/browser/index.js.map +7 -0
  4. package/dist/cjs/index.js +66231 -0
  5. package/dist/cjs/index.js.map +7 -0
  6. package/dist/esm/index.js +66219 -0
  7. package/dist/esm/index.js.map +7 -0
  8. package/dist/src/bridge/evm/abi/Abi.json +694 -0
  9. package/dist/src/bridge/evm/index.d.ts +17 -0
  10. package/dist/src/bridge/evm/index.js +126 -0
  11. package/dist/src/bridge/evm/index.js.map +1 -0
  12. package/dist/src/bridge/evm/types/Abi.d.ts +85 -0
  13. package/dist/src/bridge/evm/types/Abi.js +6 -0
  14. package/dist/src/bridge/evm/types/Abi.js.map +1 -0
  15. package/dist/src/bridge/evm/types/index.d.ts +1 -0
  16. package/dist/src/bridge/evm/types/index.js +3 -0
  17. package/dist/src/bridge/evm/types/index.js.map +1 -0
  18. package/dist/src/bridge/evm/types/types.d.ts +44 -0
  19. package/dist/src/bridge/evm/types/types.js +3 -0
  20. package/dist/src/bridge/evm/types/types.js.map +1 -0
  21. package/dist/src/bridge/index.d.ts +10 -0
  22. package/dist/src/bridge/index.js +46 -0
  23. package/dist/src/bridge/index.js.map +1 -0
  24. package/dist/src/bridge/models/bridge.model.d.ts +86 -0
  25. package/dist/src/bridge/models/bridge.model.js +15 -0
  26. package/dist/src/bridge/models/bridge.model.js.map +1 -0
  27. package/dist/src/bridge/models/index.d.ts +1 -0
  28. package/dist/src/bridge/models/index.js +18 -0
  29. package/dist/src/bridge/models/index.js.map +1 -0
  30. package/dist/src/bridge/utils.d.ts +8 -0
  31. package/dist/src/bridge/utils.js +99 -0
  32. package/dist/src/bridge/utils.js.map +1 -0
  33. package/dist/src/chains/index.d.ts +38 -0
  34. package/dist/src/chains/index.js +98 -0
  35. package/dist/src/chains/index.js.map +1 -0
  36. package/dist/src/chains/models.d.ts +7 -0
  37. package/dist/src/chains/models.js +3 -0
  38. package/dist/src/chains/models.js.map +1 -0
  39. package/dist/src/client/core-api/core-api-mapper.d.ts +3 -0
  40. package/dist/src/client/core-api/core-api-mapper.js +61 -0
  41. package/dist/src/client/core-api/core-api-mapper.js.map +1 -0
  42. package/dist/src/client/core-api/core-api.model.d.ts +50 -0
  43. package/dist/src/client/core-api/core-api.model.js +14 -0
  44. package/dist/src/client/core-api/core-api.model.js.map +1 -0
  45. package/dist/src/client/core-api/index.d.ts +11 -0
  46. package/dist/src/client/core-api/index.js +33 -0
  47. package/dist/src/client/core-api/index.js.map +1 -0
  48. package/dist/src/configs/development.d.ts +3 -0
  49. package/dist/src/configs/development.js +7 -0
  50. package/dist/src/configs/development.js.map +1 -0
  51. package/dist/src/configs/index.d.ts +3 -0
  52. package/dist/src/configs/index.js +20 -0
  53. package/dist/src/configs/index.js.map +1 -0
  54. package/dist/src/configs/production.d.ts +3 -0
  55. package/dist/src/configs/production.js +7 -0
  56. package/dist/src/configs/production.js.map +1 -0
  57. package/dist/src/configs/staging.d.ts +3 -0
  58. package/dist/src/configs/staging.js +7 -0
  59. package/dist/src/configs/staging.js.map +1 -0
  60. package/dist/src/exceptions/index.d.ts +1 -0
  61. package/dist/src/exceptions/index.js +18 -0
  62. package/dist/src/exceptions/index.js.map +1 -0
  63. package/dist/src/exceptions/insufficient-pool-liquidity.d.ts +3 -0
  64. package/dist/src/exceptions/insufficient-pool-liquidity.js +11 -0
  65. package/dist/src/exceptions/insufficient-pool-liquidity.js.map +1 -0
  66. package/dist/src/index.d.ts +107 -0
  67. package/dist/src/index.js +183 -0
  68. package/dist/src/index.js.map +1 -0
  69. package/dist/src/models/index.d.ts +18 -0
  70. package/dist/src/models/index.js +8 -0
  71. package/dist/src/models/index.js.map +1 -0
  72. package/dist/src/tokens-info/index.d.ts +26 -0
  73. package/dist/src/tokens-info/index.js +47 -0
  74. package/dist/src/tokens-info/index.js.map +1 -0
  75. package/dist/src/tokens-info/tokens-info.model.d.ts +53 -0
  76. package/dist/src/tokens-info/tokens-info.model.js +3 -0
  77. package/dist/src/tokens-info/tokens-info.model.js.map +1 -0
  78. package/dist/src/utils/calculation/constants.d.ts +1 -0
  79. package/dist/src/utils/calculation/constants.js +5 -0
  80. package/dist/src/utils/calculation/constants.js.map +1 -0
  81. package/dist/src/utils/calculation/index.d.ts +11 -0
  82. package/dist/src/utils/calculation/index.js +88 -0
  83. package/dist/src/utils/calculation/index.js.map +1 -0
  84. package/package.json +100 -0
@@ -0,0 +1,126 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
8
+ return (mod && mod.__esModule) ? mod : { "default": mod };
9
+ };
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.EvmBridge = exports.MAX_AMOUNT = void 0;
12
+ const bn_js_1 = __importDefault(require("bn.js"));
13
+ const erc_20_abi_1 = __importDefault(require("erc-20-abi"));
14
+ const randombytes_1 = __importDefault(require("randombytes"));
15
+ const chains_1 = require("../../chains");
16
+ const index_1 = require("../index");
17
+ const models_1 = require("../models");
18
+ const utils_1 = require("../utils");
19
+ const Abi_json_1 = __importDefault(require("./abi/Abi.json"));
20
+ exports.MAX_AMOUNT = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
21
+ class EvmBridge extends models_1.ApprovalBridge {
22
+ constructor(api, web3) {
23
+ super();
24
+ this.api = api;
25
+ this.web3 = web3;
26
+ }
27
+ getTokenBalance(data) {
28
+ return this.getContract(erc_20_abi_1.default, data.tokenAddress)
29
+ .methods.balanceOf(data.account)
30
+ .call();
31
+ }
32
+ async send(params) {
33
+ let contractAddress;
34
+ let fromChainId;
35
+ let fromTokenAddress;
36
+ let toChainType;
37
+ let toChainId;
38
+ let toTokenAddress;
39
+ if (index_1.BridgeService.isSendParamsWithChainSymbol(params)) {
40
+ const tokensInfo = await this.api.getTokensInfo();
41
+ const chainDetailsMap = tokensInfo.chainDetailsMap();
42
+ contractAddress = chainDetailsMap[params.fromChainSymbol].bridgeAddress;
43
+ fromChainId = chainDetailsMap[params.fromChainSymbol].allbridgeChainId;
44
+ fromTokenAddress = params.fromTokenAddress;
45
+ toChainType = chains_1.chainProperties[params.toChainSymbol].chainType;
46
+ toChainId = chainDetailsMap[params.toChainSymbol].allbridgeChainId;
47
+ toTokenAddress = params.toTokenAddress;
48
+ }
49
+ else {
50
+ contractAddress = params.sourceChainToken.bridgeAddress;
51
+ fromChainId = params.sourceChainToken.allbridgeChainId;
52
+ fromTokenAddress = params.sourceChainToken.tokenAddress;
53
+ toChainType =
54
+ chains_1.chainProperties[params.destinationChainToken.chainSymbol].chainType;
55
+ toChainId = params.destinationChainToken.allbridgeChainId;
56
+ toTokenAddress = params.destinationChainToken.tokenAddress;
57
+ }
58
+ const { amount, fromAccountAddress, toAccountAddress, messenger } = params;
59
+ let { fee } = params;
60
+ if (fee == null) {
61
+ fee = await this.api.getReceiveTransactionCost({
62
+ sourceChainId: fromChainId,
63
+ destinationChainId: toChainId,
64
+ messenger,
65
+ });
66
+ }
67
+ return this.sendTx({
68
+ amount,
69
+ contractAddress,
70
+ fromAccountAddress,
71
+ fromTokenAddress,
72
+ toChainType,
73
+ toChainId,
74
+ toAccountAddress,
75
+ toTokenAddress,
76
+ messenger,
77
+ fee,
78
+ });
79
+ }
80
+ async sendTx(params) {
81
+ const { amount, contractAddress, fromAccountAddress, fromTokenAddress, toChainType, toChainId, toAccountAddress, toTokenAddress, messenger, fee, } = params;
82
+ const formattedFromTokenAddress = (0, utils_1.formatAddress)(fromTokenAddress, chains_1.ChainType.EVM, chains_1.ChainType.EVM);
83
+ const formattedToAccountAddress = (0, utils_1.formatAddress)(toAccountAddress, toChainType, chains_1.ChainType.EVM);
84
+ const formattedToTokenAddress = (0, utils_1.formatAddress)(toTokenAddress, toChainType, chains_1.ChainType.EVM);
85
+ const bridgeContract = this.getBridgeContract(contractAddress);
86
+ const nonce = new bn_js_1.default(EvmBridge.getNonce());
87
+ const swapAndBridgeMethod = bridgeContract.methods.swapAndBridge(formattedFromTokenAddress, amount, formattedToAccountAddress, toChainId, formattedToTokenAddress, nonce, messenger);
88
+ const estimateGas = await swapAndBridgeMethod.estimateGas({
89
+ from: fromAccountAddress,
90
+ value: fee,
91
+ });
92
+ const { transactionHash } = await swapAndBridgeMethod.send({
93
+ from: fromAccountAddress,
94
+ value: fee,
95
+ gas: estimateGas,
96
+ });
97
+ return { txId: transactionHash };
98
+ }
99
+ async approve(approveData) {
100
+ const { tokenAddress, spender, owner } = approveData;
101
+ const tokenContract = this.getContract(erc_20_abi_1.default, tokenAddress);
102
+ const approveMethod = await tokenContract.methods.approve(spender, exports.MAX_AMOUNT);
103
+ const estimateGas = await approveMethod.estimateGas({ from: owner });
104
+ const { transactionHash } = await approveMethod.send({
105
+ from: owner,
106
+ gas: estimateGas,
107
+ });
108
+ return { txId: transactionHash };
109
+ }
110
+ getAllowance(approveData) {
111
+ const { tokenAddress, spender, owner } = approveData;
112
+ const tokenContract = this.getContract(erc_20_abi_1.default, tokenAddress);
113
+ return tokenContract.methods.allowance(owner, spender).call();
114
+ }
115
+ getContract(abiItem, contractAddress) {
116
+ return new this.web3.eth.Contract(abiItem, contractAddress);
117
+ }
118
+ getBridgeContract(contractAddress) {
119
+ return this.getContract(Abi_json_1.default, contractAddress);
120
+ }
121
+ static getNonce() {
122
+ return (0, randombytes_1.default)(32);
123
+ }
124
+ }
125
+ exports.EvmBridge = EvmBridge;
126
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bridge/evm/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ /// <reference types="node" />
2
+ import type BN from "bn.js";
3
+ import type { ContractOptions } from "web3-eth-contract";
4
+ import type { EventLog } from "web3-core";
5
+ import type { EventEmitter } from "events";
6
+ import type { Callback, PayableTransactionObject, NonPayableTransactionObject, BlockType, ContractEventLog, BaseContract } from "./types";
7
+ export interface EventOptions {
8
+ filter?: object;
9
+ fromBlock?: BlockType;
10
+ topics?: string[];
11
+ }
12
+ export declare type OwnershipTransferred = ContractEventLog<{
13
+ previousOwner: string;
14
+ newOwner: string;
15
+ 0: string;
16
+ 1: string;
17
+ }>;
18
+ export declare type Received = ContractEventLog<{
19
+ 0: string;
20
+ 1: string;
21
+ }>;
22
+ export declare type TokensSent = ContractEventLog<{
23
+ amount: string;
24
+ recipient: string;
25
+ destinationChainId: string;
26
+ receiveToken: string;
27
+ nonce: string;
28
+ messenger: string;
29
+ 0: string;
30
+ 1: string;
31
+ 2: string;
32
+ 3: string;
33
+ 4: string;
34
+ 5: string;
35
+ }>;
36
+ export interface Abi extends BaseContract {
37
+ constructor(jsonInterface: any[], address?: string, options?: ContractOptions): Abi;
38
+ clone(): Abi;
39
+ methods: {
40
+ addBridgeToken(chainId_: number | string | BN, tokenAddress_: string | number[]): NonPayableTransactionObject<void>;
41
+ addPool(pool: string, token: string | number[]): NonPayableTransactionObject<void>;
42
+ allbridgeMessenger(): NonPayableTransactionObject<string>;
43
+ chainId(): NonPayableTransactionObject<string>;
44
+ gasUsage(arg0: number | string | BN): NonPayableTransactionObject<string>;
45
+ getMessageCost(chainId: number | string | BN, protocol: number | string | BN): NonPayableTransactionObject<string>;
46
+ getTransactionCost(chainId_: number | string | BN): NonPayableTransactionObject<string>;
47
+ hasReceivedMessage(message: string | number[], protocol: number | string | BN): NonPayableTransactionObject<boolean>;
48
+ hasSentMessage(message: string | number[]): NonPayableTransactionObject<boolean>;
49
+ hashMessage(amount: number | string | BN, recipient: string | number[], sourceChainId: number | string | BN, destinationChainId: number | string | BN, receiveToken: string | number[], nonce: number | string | BN, messenger: number | string | BN): NonPayableTransactionObject<string>;
50
+ otherBridgeTokens(arg0: number | string | BN, arg1: string | number[]): NonPayableTransactionObject<boolean>;
51
+ otherBridges(arg0: number | string | BN): NonPayableTransactionObject<string>;
52
+ owner(): NonPayableTransactionObject<string>;
53
+ pools(arg0: string | number[]): NonPayableTransactionObject<string>;
54
+ processedMessages(arg0: string | number[]): NonPayableTransactionObject<boolean>;
55
+ receiveTokens(amount: number | string | BN, recipient: string | number[], sourceChainId: number | string | BN, receiveToken: string | number[], nonce: number | string | BN, messenger: number | string | BN): NonPayableTransactionObject<void>;
56
+ registerBridge(chainId_: number | string | BN, bridgeAddress_: string | number[]): NonPayableTransactionObject<void>;
57
+ removeBridgeToken(chainId_: number | string | BN, tokenAddress_: string | number[]): NonPayableTransactionObject<void>;
58
+ renounceOwnership(): NonPayableTransactionObject<void>;
59
+ sentMessages(arg0: string | number[]): NonPayableTransactionObject<boolean>;
60
+ setAllbridgeMessenger(_allbridgeMessenger: string): NonPayableTransactionObject<void>;
61
+ setGasOracle(gasOracle_: string): NonPayableTransactionObject<void>;
62
+ setGasUsage(chainId_: number | string | BN, gasUsage_: number | string | BN): NonPayableTransactionObject<void>;
63
+ setWormholeMessenger(_wormholeMessenger: string): NonPayableTransactionObject<void>;
64
+ swap(amount: number | string | BN, token: string | number[], receiveToken: string | number[], recipient: string): NonPayableTransactionObject<void>;
65
+ swapAndBridge(token: string | number[], amount: number | string | BN, recipient: string | number[], destinationChainId: number | string | BN, receiveToken: string | number[], nonce: number | string | BN, messenger: number | string | BN): PayableTransactionObject<void>;
66
+ transferOwnership(newOwner: string): NonPayableTransactionObject<void>;
67
+ withdrawGasTokens(amount: number | string | BN): NonPayableTransactionObject<void>;
68
+ wormholeMessenger(): NonPayableTransactionObject<string>;
69
+ };
70
+ events: {
71
+ OwnershipTransferred(cb?: Callback<OwnershipTransferred>): EventEmitter;
72
+ OwnershipTransferred(options?: EventOptions, cb?: Callback<OwnershipTransferred>): EventEmitter;
73
+ Received(cb?: Callback<Received>): EventEmitter;
74
+ Received(options?: EventOptions, cb?: Callback<Received>): EventEmitter;
75
+ TokensSent(cb?: Callback<TokensSent>): EventEmitter;
76
+ TokensSent(options?: EventOptions, cb?: Callback<TokensSent>): EventEmitter;
77
+ allEvents(options?: EventOptions, cb?: Callback<EventLog>): EventEmitter;
78
+ };
79
+ once(event: "OwnershipTransferred", cb: Callback<OwnershipTransferred>): void;
80
+ once(event: "OwnershipTransferred", options: EventOptions, cb: Callback<OwnershipTransferred>): void;
81
+ once(event: "Received", cb: Callback<Received>): void;
82
+ once(event: "Received", options: EventOptions, cb: Callback<Received>): void;
83
+ once(event: "TokensSent", cb: Callback<TokensSent>): void;
84
+ once(event: "TokensSent", options: EventOptions, cb: Callback<TokensSent>): void;
85
+ }
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /* Autogenerated file. Do not edit manually. */
3
+ /* tslint:disable */
4
+ /* eslint-disable */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=Abi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Abi.js","sourceRoot":"","sources":["../../../../../src/bridge/evm/types/Abi.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,oBAAoB;AACpB,oBAAoB"}
@@ -0,0 +1 @@
1
+ export type { Abi } from "./Abi";
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/bridge/evm/types/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,44 @@
1
+ /// <reference types="node" />
2
+ import type BN from "bn.js";
3
+ import type { EventEmitter } from "events";
4
+ import type { EventLog, PromiEvent, TransactionReceipt } from "web3-core/types";
5
+ import type { Contract } from "web3-eth-contract";
6
+ export declare type Callback<T> = (error: Error, result: T) => void;
7
+ export interface ContractEventLog<T> extends EventLog {
8
+ returnValues: T;
9
+ }
10
+ export interface ContractEventEmitter<T> extends EventEmitter {
11
+ on(event: "connected", listener: (subscriptionId: string) => void): this;
12
+ on(event: "data" | "changed", listener: (event: ContractEventLog<T>) => void): this;
13
+ on(event: "error", listener: (error: Error) => void): this;
14
+ }
15
+ export interface NonPayableTx {
16
+ nonce?: string | number | BN;
17
+ chainId?: string | number | BN;
18
+ from?: string;
19
+ to?: string;
20
+ data?: string;
21
+ gas?: string | number | BN;
22
+ maxPriorityFeePerGas?: string | number | BN;
23
+ maxFeePerGas?: string | number | BN;
24
+ gasPrice?: string | number | BN;
25
+ }
26
+ export interface PayableTx extends NonPayableTx {
27
+ value?: string | number | BN;
28
+ }
29
+ export interface NonPayableTransactionObject<T> {
30
+ arguments: any[];
31
+ call(tx?: NonPayableTx, block?: BlockType): Promise<T>;
32
+ send(tx?: NonPayableTx): PromiEvent<TransactionReceipt>;
33
+ estimateGas(tx?: NonPayableTx): Promise<number>;
34
+ encodeABI(): string;
35
+ }
36
+ export interface PayableTransactionObject<T> {
37
+ arguments: any[];
38
+ call(tx?: PayableTx, block?: BlockType): Promise<T>;
39
+ send(tx?: PayableTx): PromiEvent<TransactionReceipt>;
40
+ estimateGas(tx?: PayableTx): Promise<number>;
41
+ encodeABI(): string;
42
+ }
43
+ export declare type BlockType = "latest" | "pending" | "genesis" | "earliest" | number | BN;
44
+ export declare type BaseContract = Omit<Contract, "clone" | "once">;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/bridge/evm/types/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ import Web3 from "web3";
2
+ import { AllbridgeCoreClient } from "../client/core-api";
3
+ import { ApproveData, SendParamsWithChainSymbols, SendParamsWithTokenInfos, TransactionResponse } from "./models";
4
+ export declare class BridgeService {
5
+ api: AllbridgeCoreClient;
6
+ 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;
10
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/restrict-template-expressions */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.BridgeService = void 0;
5
+ const chains_1 = require("../chains");
6
+ const evm_1 = require("./evm");
7
+ class BridgeService {
8
+ constructor(api) {
9
+ this.api = api;
10
+ }
11
+ async evmApprove(web3, approveData) {
12
+ const evmBridge = new evm_1.EvmBridge(this.api, web3);
13
+ return evmBridge.approve(approveData);
14
+ }
15
+ async send(web3, params) {
16
+ let chainType;
17
+ if (BridgeService.isSendParamsWithChainSymbol(params)) {
18
+ chainType = chains_1.chainProperties[params.fromChainSymbol].chainType;
19
+ }
20
+ 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
+ }
38
+ }
39
+ }
40
+ static isSendParamsWithChainSymbol(params) {
41
+ /* eslint-disable-next-line @typescript-eslint/no-unnecessary-condition */
42
+ return params.fromChainSymbol !== undefined;
43
+ }
44
+ }
45
+ exports.BridgeService = BridgeService;
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"}
@@ -0,0 +1,86 @@
1
+ import { ChainSymbol, ChainType } from "../../chains";
2
+ import { Messenger } from "../../client/core-api/core-api.model";
3
+ import { TokenInfoWithChainDetails } from "../../tokens-info";
4
+ export declare abstract class Bridge {
5
+ abstract getTokenBalance(data: GetTokenBalanceData): Promise<string>;
6
+ abstract send(params: BaseSendParams): Promise<TransactionResponse>;
7
+ }
8
+ export declare abstract class ApprovalBridge extends Bridge {
9
+ isNeededApprove(approveData: ApproveData): Promise<boolean>;
10
+ abstract approve(approveData: ApproveData): Promise<TransactionResponse>;
11
+ abstract getAllowance(approveData: ApproveData): Promise<string>;
12
+ }
13
+ export interface ApproveData {
14
+ tokenAddress: string;
15
+ owner: string;
16
+ spender: string;
17
+ }
18
+ export interface GetTokenBalanceData {
19
+ tokenAddress: string;
20
+ account: string;
21
+ }
22
+ export interface TransactionResponse {
23
+ txId: string;
24
+ }
25
+ /**
26
+ * @internal
27
+ */
28
+ export interface BaseSendParams {
29
+ /**
30
+ * The integer amount of tokens to transfer.
31
+ */
32
+ amount: string;
33
+ /**
34
+ * The account address to transfer tokens from.
35
+ */
36
+ fromAccountAddress: string;
37
+ /**
38
+ * The account address to transfer tokens to.
39
+ */
40
+ toAccountAddress: string;
41
+ messenger: Messenger;
42
+ /**
43
+ * The amount of gas fee to pay for the transfer in the smallest denomination of the source chain currency.
44
+ */
45
+ fee?: string;
46
+ }
47
+ export interface SendParamsWithChainSymbols extends BaseSendParams {
48
+ /**
49
+ * The chain symbol to transfer tokens from.
50
+ */
51
+ fromChainSymbol: ChainSymbol;
52
+ /**
53
+ * The token contract address on the source chain.
54
+ */
55
+ fromTokenAddress: string;
56
+ /**
57
+ * The chain symbol to transfer tokens to.
58
+ */
59
+ toChainSymbol: ChainSymbol;
60
+ /**
61
+ * The token contract address on the destination chain.
62
+ */
63
+ toTokenAddress: string;
64
+ }
65
+ export interface SendParamsWithTokenInfos extends BaseSendParams {
66
+ /**
67
+ * {@link TokenInfoWithChainDetails |The token info object} on the source chain.
68
+ */
69
+ sourceChainToken: TokenInfoWithChainDetails;
70
+ /**
71
+ * {@link TokenInfoWithChainDetails |The token info object} on the destination chain.
72
+ */
73
+ destinationChainToken: TokenInfoWithChainDetails;
74
+ }
75
+ export interface TxSendParams {
76
+ amount: string;
77
+ contractAddress: string;
78
+ fromAccountAddress: string;
79
+ fromTokenAddress: string;
80
+ toChainType: ChainType;
81
+ toChainId: number;
82
+ toAccountAddress: string;
83
+ toTokenAddress: string;
84
+ messenger: Messenger;
85
+ fee: string;
86
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApprovalBridge = exports.Bridge = void 0;
4
+ const big_js_1 = require("big.js");
5
+ class Bridge {
6
+ }
7
+ exports.Bridge = Bridge;
8
+ class ApprovalBridge extends Bridge {
9
+ async isNeededApprove(approveData) {
10
+ const allowance = await this.getAllowance(approveData);
11
+ return (0, big_js_1.Big)(allowance).eq(0);
12
+ }
13
+ }
14
+ exports.ApprovalBridge = ApprovalBridge;
15
+ //# sourceMappingURL=bridge.model.js.map
@@ -0,0 +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"}
@@ -0,0 +1 @@
1
+ export * from "./bridge.model";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./bridge.model"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/bridge/models/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B"}
@@ -0,0 +1,8 @@
1
+ /// <reference types="node" />
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;
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.bufferToSize = exports.tronAddressToEthAddress = exports.tronAddressToBuffer32 = exports.evmAddressToBuffer32 = exports.hexToBuffer = exports.formatAddress = void 0;
27
+ /* eslint-disable @typescript-eslint/restrict-template-expressions */
28
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
29
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
30
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
31
+ /* @ts-expect-error Could not find a declaration file for module "tronweb"*/
32
+ const TronWebLib = __importStar(require("tronweb"));
33
+ const chains_1 = require("../chains");
34
+ function formatAddress(address, from, to) {
35
+ let buffer;
36
+ switch (from) {
37
+ case chains_1.ChainType.EVM: {
38
+ buffer = evmAddressToBuffer32(address);
39
+ break;
40
+ }
41
+ case chains_1.ChainType.SOLANA: {
42
+ throw new Error(`Error in formatAddress method: method not implemented for SOLANA`);
43
+ }
44
+ case chains_1.ChainType.TRX: {
45
+ buffer = tronAddressToBuffer32(address);
46
+ break;
47
+ }
48
+ default: {
49
+ throw new Error(`Error in formatAddress method: unknown chain type ${from}, or method not implemented`);
50
+ }
51
+ }
52
+ switch (to) {
53
+ case chains_1.ChainType.EVM: {
54
+ return "0x" + buffer.toString("hex");
55
+ }
56
+ case chains_1.ChainType.SOLANA: {
57
+ throw new Error(`Error in formatAddress method: method not implemented for toChainType: SOLANA`);
58
+ }
59
+ case chains_1.ChainType.TRX: {
60
+ return buffer.toString();
61
+ }
62
+ default: {
63
+ throw new Error(`Error in formatAddress method: unknown chain type ${to}, or method not implemented`);
64
+ }
65
+ }
66
+ }
67
+ exports.formatAddress = formatAddress;
68
+ function hexToBuffer(hex) {
69
+ return Buffer.from(hex.replace(/^0x/i, ""), "hex");
70
+ }
71
+ exports.hexToBuffer = hexToBuffer;
72
+ function evmAddressToBuffer32(address) {
73
+ const length = 32;
74
+ const buff = hexToBuffer(address);
75
+ return Buffer.concat([Buffer.alloc(length - buff.length, 0), buff], length);
76
+ }
77
+ exports.evmAddressToBuffer32 = evmAddressToBuffer32;
78
+ function tronAddressToBuffer32(address) {
79
+ const ethAddress = tronAddressToEthAddress(address);
80
+ const buffer = hexToBuffer(ethAddress);
81
+ return bufferToSize(buffer, 32);
82
+ }
83
+ exports.tronAddressToBuffer32 = tronAddressToBuffer32;
84
+ function tronAddressToEthAddress(address) {
85
+ return Buffer.from(TronWebLib.utils.crypto.decodeBase58Address(address))
86
+ .toString("hex")
87
+ .replace(/^41/, "0x");
88
+ }
89
+ exports.tronAddressToEthAddress = tronAddressToEthAddress;
90
+ function bufferToSize(buffer, size) {
91
+ if (buffer.length >= size) {
92
+ return buffer;
93
+ }
94
+ const result = Buffer.alloc(size, 0);
95
+ buffer.copy(result, size - buffer.length);
96
+ return result;
97
+ }
98
+ exports.bufferToSize = bufferToSize;
99
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/bridge/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAAqE;AACrE,0DAA0D;AAC1D,+DAA+D;AAC/D,uDAAuD;AACvD,6EAA6E;AAC7E,oDAAsC;AACtC,sCAAsC;AAEtC,SAAgB,aAAa,CAC3B,OAAe,EACf,IAAe,EACf,EAAa;IAEb,IAAI,MAAc,CAAC;IACnB,QAAQ,IAAI,EAAE;QACZ,KAAK,kBAAS,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM;SACP;QACD,KAAK,kBAAS,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;SACH;QACD,KAAK,kBAAS,CAAC,GAAG,CAAC,CAAC;YAClB,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM;SACP;QACD,OAAO,CAAC,CAAC;YACP,MAAM,IAAI,KAAK,CACb,qDAAqD,IAAI,6BAA6B,CACvF,CAAC;SACH;KACF;IAED,QAAQ,EAAE,EAAE;QACV,KAAK,kBAAS,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtC;QACD,KAAK,kBAAS,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;SACH;QACD,KAAK,kBAAS,CAAC,GAAG,CAAC,CAAC;YAClB,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;SAC1B;QACD,OAAO,CAAC,CAAC;YACP,MAAM,IAAI,KAAK,CACb,qDAAqD,EAAE,6BAA6B,CACrF,CAAC;SACH;KACF;AACH,CAAC;AA7CD,sCA6CC;AAED,SAAgB,WAAW,CAAC,GAAW;IACrC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACrD,CAAC;AAFD,kCAEC;AAED,SAAgB,oBAAoB,CAAC,OAAe;IAClD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAJD,oDAIC;AAED,SAAgB,qBAAqB,CAAC,OAAe;IACnD,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IACvC,OAAO,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAJD,sDAIC;AAED,SAAgB,uBAAuB,CAAC,OAAe;IACrD,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;SACrE,QAAQ,CAAC,KAAK,CAAC;SACf,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AAC1B,CAAC;AAJD,0DAIC;AAED,SAAgB,YAAY,CAAC,MAAc,EAAE,IAAY;IACvD,IAAI,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;QACzB,OAAO,MAAM,CAAC;KACf;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACrC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAPD,oCAOC"}
@@ -0,0 +1,38 @@
1
+ import { BasicChainProperties } from "./models";
2
+ export * from "./models";
3
+ export declare enum ChainSymbol {
4
+ /**
5
+ * The Kovan testnet.
6
+ */
7
+ KVN = "KVN",
8
+ /**
9
+ * The Ropsten testnet.
10
+ */
11
+ RPS = "RPS",
12
+ /**
13
+ * The Goerli testnet.
14
+ */
15
+ GRL = "GRL",
16
+ /**
17
+ * The BNB Smart Chain main network.
18
+ */
19
+ BSC = "BSC",
20
+ /**
21
+ * The Ethereum main network.
22
+ */
23
+ ETH = "ETH",
24
+ /**
25
+ * The Solana network.
26
+ */
27
+ SOL = "SOL",
28
+ /**
29
+ * The TRON network.
30
+ */
31
+ TRX = "TRX"
32
+ }
33
+ export declare enum ChainType {
34
+ EVM = "EVM",
35
+ SOLANA = "SOLANA",
36
+ TRX = "TRX"
37
+ }
38
+ export declare const chainProperties: Record<string, BasicChainProperties>;