@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.
- package/README.md +32 -13
- package/dist/browser/index.js +255 -168
- package/dist/browser/index.js.map +4 -4
- package/dist/cjs/index.js +256 -168
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/index.js +255 -168
- package/dist/esm/index.js.map +4 -4
- package/dist/src/bridge/evm/index.d.ts +4 -7
- package/dist/src/bridge/evm/index.js +5 -60
- package/dist/src/bridge/evm/index.js.map +1 -1
- package/dist/src/bridge/index.d.ts +5 -5
- package/dist/src/bridge/index.js +16 -28
- package/dist/src/bridge/index.js.map +1 -1
- package/dist/src/bridge/models/bridge.model.d.ts +12 -5
- package/dist/src/bridge/models/bridge.model.js.map +1 -1
- package/dist/src/bridge/trx/index.d.ts +15 -0
- package/dist/src/bridge/trx/index.js +79 -0
- package/dist/src/bridge/trx/index.js.map +1 -0
- package/dist/src/bridge/utils.d.ts +7 -6
- package/dist/src/bridge/utils.js +70 -7
- package/dist/src/bridge/utils.js.map +1 -1
- package/dist/src/client/core-api/core-api.model.d.ts +33 -0
- package/dist/src/client/core-api/core-api.model.js.map +1 -1
- package/dist/src/client/core-api/index.d.ts +3 -1
- package/dist/src/client/core-api/index.js +4 -0
- package/dist/src/client/core-api/index.js.map +1 -1
- package/dist/src/index.d.ts +14 -7
- package/dist/src/index.js +15 -7
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/index.d.ts +4 -4
- package/dist/src/models/index.js +2 -1
- package/dist/src/models/index.js.map +1 -1
- package/package.json +2 -1
package/dist/cjs/index.js
CHANGED
|
@@ -10595,13 +10595,13 @@ var require_lib14 = __commonJS({
|
|
|
10595
10595
|
return TransactionOrderForkEvent2;
|
|
10596
10596
|
}(ForkEvent);
|
|
10597
10597
|
exports.TransactionOrderForkEvent = TransactionOrderForkEvent;
|
|
10598
|
-
var
|
|
10599
|
-
function
|
|
10598
|
+
var Provider2 = function() {
|
|
10599
|
+
function Provider3() {
|
|
10600
10600
|
var _newTarget = this.constructor;
|
|
10601
|
-
logger.checkAbstract(_newTarget,
|
|
10601
|
+
logger.checkAbstract(_newTarget, Provider3);
|
|
10602
10602
|
(0, properties_1.defineReadOnly)(this, "_isProvider", true);
|
|
10603
10603
|
}
|
|
10604
|
-
|
|
10604
|
+
Provider3.prototype.getFeeData = function() {
|
|
10605
10605
|
return __awaiter(this, void 0, void 0, function() {
|
|
10606
10606
|
var _a, block, gasPrice, lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas;
|
|
10607
10607
|
return __generator(this, function(_b) {
|
|
@@ -10626,18 +10626,18 @@ var require_lib14 = __commonJS({
|
|
|
10626
10626
|
});
|
|
10627
10627
|
});
|
|
10628
10628
|
};
|
|
10629
|
-
|
|
10629
|
+
Provider3.prototype.addListener = function(eventName, listener) {
|
|
10630
10630
|
return this.on(eventName, listener);
|
|
10631
10631
|
};
|
|
10632
|
-
|
|
10632
|
+
Provider3.prototype.removeListener = function(eventName, listener) {
|
|
10633
10633
|
return this.off(eventName, listener);
|
|
10634
10634
|
};
|
|
10635
|
-
|
|
10635
|
+
Provider3.isProvider = function(value) {
|
|
10636
10636
|
return !!(value && value._isProvider);
|
|
10637
10637
|
};
|
|
10638
|
-
return
|
|
10638
|
+
return Provider3;
|
|
10639
10639
|
}();
|
|
10640
|
-
exports.Provider =
|
|
10640
|
+
exports.Provider = Provider2;
|
|
10641
10641
|
}
|
|
10642
10642
|
});
|
|
10643
10643
|
|
|
@@ -61648,6 +61648,7 @@ var src_exports = {};
|
|
|
61648
61648
|
__export(src_exports, {
|
|
61649
61649
|
AllbridgeCoreSdk: () => AllbridgeCoreSdk,
|
|
61650
61650
|
ChainSymbol: () => ChainSymbol,
|
|
61651
|
+
ChainType: () => ChainType,
|
|
61651
61652
|
Messenger: () => Messenger,
|
|
61652
61653
|
TokensInfo: () => TokensInfo,
|
|
61653
61654
|
production: () => production
|
|
@@ -62178,46 +62179,6 @@ P.valueOf = function() {
|
|
|
62178
62179
|
};
|
|
62179
62180
|
var Big = _Big_();
|
|
62180
62181
|
|
|
62181
|
-
// src/chains/index.ts
|
|
62182
|
-
var ChainSymbol = /* @__PURE__ */ ((ChainSymbol3) => {
|
|
62183
|
-
ChainSymbol3["GRL"] = "GRL";
|
|
62184
|
-
ChainSymbol3["BSC"] = "BSC";
|
|
62185
|
-
ChainSymbol3["ETH"] = "ETH";
|
|
62186
|
-
ChainSymbol3["SOL"] = "SOL";
|
|
62187
|
-
ChainSymbol3["TRX"] = "TRX";
|
|
62188
|
-
return ChainSymbol3;
|
|
62189
|
-
})(ChainSymbol || {});
|
|
62190
|
-
var chainProperties = {
|
|
62191
|
-
["GRL" /* GRL */]: {
|
|
62192
|
-
chainSymbol: "GRL" /* GRL */,
|
|
62193
|
-
chainId: "0x5",
|
|
62194
|
-
name: "Goerli",
|
|
62195
|
-
chainType: "EVM" /* EVM */
|
|
62196
|
-
},
|
|
62197
|
-
["BSC" /* BSC */]: {
|
|
62198
|
-
chainSymbol: "BSC" /* BSC */,
|
|
62199
|
-
chainId: "0x38",
|
|
62200
|
-
name: "BNB Chain",
|
|
62201
|
-
chainType: "EVM" /* EVM */
|
|
62202
|
-
},
|
|
62203
|
-
["ETH" /* ETH */]: {
|
|
62204
|
-
chainSymbol: "ETH" /* ETH */,
|
|
62205
|
-
chainId: "0x1",
|
|
62206
|
-
name: "Ethereum",
|
|
62207
|
-
chainType: "EVM" /* EVM */
|
|
62208
|
-
},
|
|
62209
|
-
["SOL" /* SOL */]: {
|
|
62210
|
-
chainSymbol: "SOL" /* SOL */,
|
|
62211
|
-
name: "Solana",
|
|
62212
|
-
chainType: "SOLANA" /* SOLANA */
|
|
62213
|
-
},
|
|
62214
|
-
["TRX" /* TRX */]: {
|
|
62215
|
-
chainSymbol: "TRX" /* TRX */,
|
|
62216
|
-
name: "Tron",
|
|
62217
|
-
chainType: "TRX" /* TRX */
|
|
62218
|
-
}
|
|
62219
|
-
};
|
|
62220
|
-
|
|
62221
62182
|
// src/bridge/evm/index.ts
|
|
62222
62183
|
var import_bn = __toESM(require_bn());
|
|
62223
62184
|
|
|
@@ -62447,8 +62408,65 @@ var abi_default = [
|
|
|
62447
62408
|
}
|
|
62448
62409
|
];
|
|
62449
62410
|
|
|
62450
|
-
// src/
|
|
62411
|
+
// src/chains/index.ts
|
|
62412
|
+
var ChainSymbol = /* @__PURE__ */ ((ChainSymbol3) => {
|
|
62413
|
+
ChainSymbol3["GRL"] = "GRL";
|
|
62414
|
+
ChainSymbol3["BSC"] = "BSC";
|
|
62415
|
+
ChainSymbol3["ETH"] = "ETH";
|
|
62416
|
+
ChainSymbol3["SOL"] = "SOL";
|
|
62417
|
+
ChainSymbol3["TRX"] = "TRX";
|
|
62418
|
+
return ChainSymbol3;
|
|
62419
|
+
})(ChainSymbol || {});
|
|
62420
|
+
var ChainType = /* @__PURE__ */ ((ChainType2) => {
|
|
62421
|
+
ChainType2["EVM"] = "EVM";
|
|
62422
|
+
ChainType2["SOLANA"] = "SOLANA";
|
|
62423
|
+
ChainType2["TRX"] = "TRX";
|
|
62424
|
+
return ChainType2;
|
|
62425
|
+
})(ChainType || {});
|
|
62426
|
+
var chainProperties = {
|
|
62427
|
+
["GRL" /* GRL */]: {
|
|
62428
|
+
chainSymbol: "GRL" /* GRL */,
|
|
62429
|
+
chainId: "0x5",
|
|
62430
|
+
name: "Goerli",
|
|
62431
|
+
chainType: "EVM" /* EVM */
|
|
62432
|
+
},
|
|
62433
|
+
["BSC" /* BSC */]: {
|
|
62434
|
+
chainSymbol: "BSC" /* BSC */,
|
|
62435
|
+
chainId: "0x38",
|
|
62436
|
+
name: "BNB Chain",
|
|
62437
|
+
chainType: "EVM" /* EVM */
|
|
62438
|
+
},
|
|
62439
|
+
["ETH" /* ETH */]: {
|
|
62440
|
+
chainSymbol: "ETH" /* ETH */,
|
|
62441
|
+
chainId: "0x1",
|
|
62442
|
+
name: "Ethereum",
|
|
62443
|
+
chainType: "EVM" /* EVM */
|
|
62444
|
+
},
|
|
62445
|
+
["SOL" /* SOL */]: {
|
|
62446
|
+
chainSymbol: "SOL" /* SOL */,
|
|
62447
|
+
name: "Solana",
|
|
62448
|
+
chainType: "SOLANA" /* SOLANA */
|
|
62449
|
+
},
|
|
62450
|
+
["TRX" /* TRX */]: {
|
|
62451
|
+
chainSymbol: "TRX" /* TRX */,
|
|
62452
|
+
name: "Tron",
|
|
62453
|
+
chainType: "TRX" /* TRX */
|
|
62454
|
+
}
|
|
62455
|
+
};
|
|
62456
|
+
|
|
62457
|
+
// src/bridge/models/bridge.model.ts
|
|
62458
|
+
var Bridge = class {
|
|
62459
|
+
};
|
|
62460
|
+
var ApprovalBridge = class extends Bridge {
|
|
62461
|
+
async isNeededApprove(approveData) {
|
|
62462
|
+
const allowance = await this.getAllowance(approveData);
|
|
62463
|
+
return Big(allowance).eq(0);
|
|
62464
|
+
}
|
|
62465
|
+
};
|
|
62466
|
+
|
|
62467
|
+
// src/bridge/utils.ts
|
|
62451
62468
|
var import_randombytes = __toESM(require_randombytes());
|
|
62469
|
+
var TronWebLib = __toESM(require_TronWeb_node());
|
|
62452
62470
|
|
|
62453
62471
|
// src/utils/calculation/constants.ts
|
|
62454
62472
|
var SYSTEM_PRECISION = 3;
|
|
@@ -62552,18 +62570,7 @@ function getY(x, a, d) {
|
|
|
62552
62570
|
return commonPartBig.times(x).plus(sqrtBig).div(dividerBig).round(0, 0).plus(1);
|
|
62553
62571
|
}
|
|
62554
62572
|
|
|
62555
|
-
// src/bridge/models/bridge.model.ts
|
|
62556
|
-
var Bridge = class {
|
|
62557
|
-
};
|
|
62558
|
-
var ApprovalBridge = class extends Bridge {
|
|
62559
|
-
async isNeededApprove(approveData) {
|
|
62560
|
-
const allowance = await this.getAllowance(approveData);
|
|
62561
|
-
return Big(allowance).eq(0);
|
|
62562
|
-
}
|
|
62563
|
-
};
|
|
62564
|
-
|
|
62565
62573
|
// src/bridge/utils.ts
|
|
62566
|
-
var TronWebLib = __toESM(require_TronWeb_node());
|
|
62567
62574
|
function formatAddress(address, from, to) {
|
|
62568
62575
|
let buffer;
|
|
62569
62576
|
switch (from) {
|
|
@@ -62596,7 +62603,7 @@ function formatAddress(address, from, to) {
|
|
|
62596
62603
|
);
|
|
62597
62604
|
}
|
|
62598
62605
|
case "TRX" /* TRX */: {
|
|
62599
|
-
return buffer.
|
|
62606
|
+
return buffer.toJSON().data;
|
|
62600
62607
|
}
|
|
62601
62608
|
default: {
|
|
62602
62609
|
throw new Error(
|
|
@@ -62629,6 +62636,84 @@ function bufferToSize(buffer, size) {
|
|
|
62629
62636
|
buffer.copy(result, size - buffer.length);
|
|
62630
62637
|
return result;
|
|
62631
62638
|
}
|
|
62639
|
+
function getDecimalsByContractAddress(chainDetailsMap, chainSymbol, contractAddress) {
|
|
62640
|
+
const sourceTokenInfoWithChainDetails = chainDetailsMap[chainSymbol].tokens.find(
|
|
62641
|
+
(value) => value.tokenAddress.toUpperCase() === contractAddress.toUpperCase()
|
|
62642
|
+
);
|
|
62643
|
+
if (!sourceTokenInfoWithChainDetails) {
|
|
62644
|
+
throw new Error("Cannot find source token info");
|
|
62645
|
+
}
|
|
62646
|
+
return sourceTokenInfoWithChainDetails.decimals;
|
|
62647
|
+
}
|
|
62648
|
+
function getNonce() {
|
|
62649
|
+
return (0, import_randombytes.default)(32);
|
|
62650
|
+
}
|
|
62651
|
+
async function prepareTxSendParams(bridgeChainType, params, api) {
|
|
62652
|
+
const txSendParams = {};
|
|
62653
|
+
let fromChainId;
|
|
62654
|
+
let toChainType;
|
|
62655
|
+
if (isSendParamsWithChainSymbol(params)) {
|
|
62656
|
+
const chainDetailsMap = (await api.getTokensInfo()).chainDetailsMap();
|
|
62657
|
+
fromChainId = chainDetailsMap[params.fromChainSymbol].allbridgeChainId;
|
|
62658
|
+
toChainType = chainProperties[params.toChainSymbol].chainType;
|
|
62659
|
+
txSendParams.contractAddress = chainDetailsMap[params.fromChainSymbol].bridgeAddress;
|
|
62660
|
+
txSendParams.fromTokenAddress = params.fromTokenAddress;
|
|
62661
|
+
txSendParams.toChainId = chainDetailsMap[params.toChainSymbol].allbridgeChainId;
|
|
62662
|
+
txSendParams.toTokenAddress = params.toTokenAddress;
|
|
62663
|
+
txSendParams.amount = convertFloatAmountToInt(
|
|
62664
|
+
params.amount,
|
|
62665
|
+
getDecimalsByContractAddress(
|
|
62666
|
+
chainDetailsMap,
|
|
62667
|
+
params.fromChainSymbol,
|
|
62668
|
+
txSendParams.fromTokenAddress
|
|
62669
|
+
)
|
|
62670
|
+
).toFixed();
|
|
62671
|
+
} else {
|
|
62672
|
+
fromChainId = params.sourceChainToken.allbridgeChainId;
|
|
62673
|
+
toChainType = chainProperties[params.destinationChainToken.chainSymbol].chainType;
|
|
62674
|
+
txSendParams.contractAddress = params.sourceChainToken.bridgeAddress;
|
|
62675
|
+
txSendParams.fromTokenAddress = params.sourceChainToken.tokenAddress;
|
|
62676
|
+
txSendParams.toChainId = params.destinationChainToken.allbridgeChainId;
|
|
62677
|
+
txSendParams.toTokenAddress = params.destinationChainToken.tokenAddress;
|
|
62678
|
+
txSendParams.amount = convertFloatAmountToInt(
|
|
62679
|
+
params.amount,
|
|
62680
|
+
params.sourceChainToken.decimals
|
|
62681
|
+
).toFixed();
|
|
62682
|
+
}
|
|
62683
|
+
txSendParams.messenger = params.messenger;
|
|
62684
|
+
txSendParams.fromAccountAddress = params.fromAccountAddress;
|
|
62685
|
+
let { fee } = params;
|
|
62686
|
+
if (fee == null) {
|
|
62687
|
+
fee = await api.getReceiveTransactionCost({
|
|
62688
|
+
sourceChainId: fromChainId,
|
|
62689
|
+
destinationChainId: txSendParams.toChainId,
|
|
62690
|
+
messenger: txSendParams.messenger
|
|
62691
|
+
});
|
|
62692
|
+
}
|
|
62693
|
+
txSendParams.fee = fee;
|
|
62694
|
+
txSendParams.fromTokenAddress = formatAddress(
|
|
62695
|
+
txSendParams.fromTokenAddress,
|
|
62696
|
+
bridgeChainType,
|
|
62697
|
+
bridgeChainType
|
|
62698
|
+
);
|
|
62699
|
+
txSendParams.toAccountAddress = formatAddress(
|
|
62700
|
+
params.toAccountAddress,
|
|
62701
|
+
toChainType,
|
|
62702
|
+
bridgeChainType
|
|
62703
|
+
);
|
|
62704
|
+
txSendParams.toTokenAddress = formatAddress(
|
|
62705
|
+
txSendParams.toTokenAddress,
|
|
62706
|
+
toChainType,
|
|
62707
|
+
bridgeChainType
|
|
62708
|
+
);
|
|
62709
|
+
return txSendParams;
|
|
62710
|
+
}
|
|
62711
|
+
function isSendParamsWithChainSymbol(params) {
|
|
62712
|
+
return params.fromChainSymbol !== void 0;
|
|
62713
|
+
}
|
|
62714
|
+
function sleep(ms) {
|
|
62715
|
+
return new Promise((resolve) => setTimeout(() => resolve(), ms));
|
|
62716
|
+
}
|
|
62632
62717
|
|
|
62633
62718
|
// src/bridge/evm/abi/Abi.json
|
|
62634
62719
|
var Abi_default = [
|
|
@@ -63329,73 +63414,13 @@ var Abi_default = [
|
|
|
63329
63414
|
// src/bridge/evm/index.ts
|
|
63330
63415
|
var MAX_AMOUNT = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
|
|
63331
63416
|
var EvmBridge = class extends ApprovalBridge {
|
|
63332
|
-
constructor(
|
|
63417
|
+
constructor(web3) {
|
|
63333
63418
|
super();
|
|
63334
|
-
this.api = api;
|
|
63335
63419
|
this.web3 = web3;
|
|
63336
63420
|
}
|
|
63337
|
-
|
|
63338
|
-
|
|
63339
|
-
|
|
63340
|
-
async send(params) {
|
|
63341
|
-
const txSendParams = {};
|
|
63342
|
-
let fromChainId;
|
|
63343
|
-
let toChainType;
|
|
63344
|
-
if (BridgeService.isSendParamsWithChainSymbol(params)) {
|
|
63345
|
-
const chainDetailsMap = (await this.api.getTokensInfo()).chainDetailsMap();
|
|
63346
|
-
fromChainId = chainDetailsMap[params.fromChainSymbol].allbridgeChainId;
|
|
63347
|
-
toChainType = chainProperties[params.toChainSymbol].chainType;
|
|
63348
|
-
txSendParams.contractAddress = chainDetailsMap[params.fromChainSymbol].bridgeAddress;
|
|
63349
|
-
txSendParams.fromTokenAddress = params.fromTokenAddress;
|
|
63350
|
-
txSendParams.toChainId = chainDetailsMap[params.toChainSymbol].allbridgeChainId;
|
|
63351
|
-
txSendParams.toTokenAddress = params.toTokenAddress;
|
|
63352
|
-
txSendParams.amount = convertFloatAmountToInt(
|
|
63353
|
-
params.amount,
|
|
63354
|
-
this.getDecimalsByContractAddress(
|
|
63355
|
-
chainDetailsMap,
|
|
63356
|
-
params.fromChainSymbol,
|
|
63357
|
-
txSendParams.fromTokenAddress
|
|
63358
|
-
)
|
|
63359
|
-
).toFixed();
|
|
63360
|
-
} else {
|
|
63361
|
-
fromChainId = params.sourceChainToken.allbridgeChainId;
|
|
63362
|
-
toChainType = chainProperties[params.destinationChainToken.chainSymbol].chainType;
|
|
63363
|
-
txSendParams.contractAddress = params.sourceChainToken.bridgeAddress;
|
|
63364
|
-
txSendParams.fromTokenAddress = params.sourceChainToken.tokenAddress;
|
|
63365
|
-
txSendParams.toChainId = params.destinationChainToken.allbridgeChainId;
|
|
63366
|
-
txSendParams.toTokenAddress = params.destinationChainToken.tokenAddress;
|
|
63367
|
-
txSendParams.amount = convertFloatAmountToInt(
|
|
63368
|
-
params.amount,
|
|
63369
|
-
params.sourceChainToken.decimals
|
|
63370
|
-
).toFixed();
|
|
63371
|
-
}
|
|
63372
|
-
txSendParams.messenger = params.messenger;
|
|
63373
|
-
txSendParams.fromAccountAddress = params.fromAccountAddress;
|
|
63374
|
-
let { fee } = params;
|
|
63375
|
-
if (fee == null) {
|
|
63376
|
-
fee = await this.api.getReceiveTransactionCost({
|
|
63377
|
-
sourceChainId: fromChainId,
|
|
63378
|
-
destinationChainId: txSendParams.toChainId,
|
|
63379
|
-
messenger: txSendParams.messenger
|
|
63380
|
-
});
|
|
63381
|
-
}
|
|
63382
|
-
txSendParams.fee = fee;
|
|
63383
|
-
txSendParams.fromTokenAddress = formatAddress(
|
|
63384
|
-
txSendParams.fromTokenAddress,
|
|
63385
|
-
"EVM" /* EVM */,
|
|
63386
|
-
"EVM" /* EVM */
|
|
63387
|
-
);
|
|
63388
|
-
txSendParams.toAccountAddress = formatAddress(
|
|
63389
|
-
params.toAccountAddress,
|
|
63390
|
-
toChainType,
|
|
63391
|
-
"EVM" /* EVM */
|
|
63392
|
-
);
|
|
63393
|
-
txSendParams.toTokenAddress = formatAddress(
|
|
63394
|
-
txSendParams.toTokenAddress,
|
|
63395
|
-
toChainType,
|
|
63396
|
-
"EVM" /* EVM */
|
|
63397
|
-
);
|
|
63398
|
-
return this.sendTx(txSendParams);
|
|
63421
|
+
chainType = "EVM" /* EVM */;
|
|
63422
|
+
async getTokenBalance(data) {
|
|
63423
|
+
return await this.getContract(abi_default, data.tokenAddress).methods.balanceOf(data.account).call();
|
|
63399
63424
|
}
|
|
63400
63425
|
async sendTx(params) {
|
|
63401
63426
|
const {
|
|
@@ -63410,7 +63435,7 @@ var EvmBridge = class extends ApprovalBridge {
|
|
|
63410
63435
|
fee
|
|
63411
63436
|
} = params;
|
|
63412
63437
|
const bridgeContract = this.getBridgeContract(contractAddress);
|
|
63413
|
-
const nonce = new import_bn.default(
|
|
63438
|
+
const nonce = new import_bn.default(getNonce());
|
|
63414
63439
|
const swapAndBridgeMethod = bridgeContract.methods.swapAndBridge(
|
|
63415
63440
|
fromTokenAddress,
|
|
63416
63441
|
amount,
|
|
@@ -63456,17 +63481,82 @@ var EvmBridge = class extends ApprovalBridge {
|
|
|
63456
63481
|
getBridgeContract(contractAddress) {
|
|
63457
63482
|
return this.getContract(Abi_default, contractAddress);
|
|
63458
63483
|
}
|
|
63459
|
-
|
|
63460
|
-
|
|
63484
|
+
};
|
|
63485
|
+
|
|
63486
|
+
// src/bridge/trx/index.ts
|
|
63487
|
+
var MAX_AMOUNT2 = "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff";
|
|
63488
|
+
var TronBridge = class extends ApprovalBridge {
|
|
63489
|
+
constructor(tronWeb) {
|
|
63490
|
+
super();
|
|
63491
|
+
this.tronWeb = tronWeb;
|
|
63492
|
+
}
|
|
63493
|
+
chainType = "TRX" /* TRX */;
|
|
63494
|
+
async getTokenBalance(data) {
|
|
63495
|
+
const contract = await this.getContract(data.tokenAddress);
|
|
63496
|
+
const balance = await contract.balanceOf(data.account).call();
|
|
63497
|
+
return balance.toString();
|
|
63461
63498
|
}
|
|
63462
|
-
|
|
63463
|
-
const
|
|
63464
|
-
|
|
63499
|
+
async sendTx(params) {
|
|
63500
|
+
const {
|
|
63501
|
+
amount,
|
|
63502
|
+
contractAddress,
|
|
63503
|
+
fromTokenAddress,
|
|
63504
|
+
toChainId,
|
|
63505
|
+
toAccountAddress,
|
|
63506
|
+
toTokenAddress,
|
|
63507
|
+
messenger,
|
|
63508
|
+
fee
|
|
63509
|
+
} = params;
|
|
63510
|
+
const bridgeContract = await this.getContract(contractAddress);
|
|
63511
|
+
const nonce = getNonce().toJSON().data;
|
|
63512
|
+
const swapAndBridgeMethod = bridgeContract.methods.swapAndBridge(
|
|
63513
|
+
fromTokenAddress,
|
|
63514
|
+
amount,
|
|
63515
|
+
toAccountAddress,
|
|
63516
|
+
toChainId,
|
|
63517
|
+
toTokenAddress,
|
|
63518
|
+
nonce,
|
|
63519
|
+
messenger
|
|
63465
63520
|
);
|
|
63466
|
-
|
|
63467
|
-
|
|
63521
|
+
const transactionHash = await swapAndBridgeMethod.send({
|
|
63522
|
+
callValue: fee
|
|
63523
|
+
});
|
|
63524
|
+
await this.verifyTx(transactionHash);
|
|
63525
|
+
return { txId: transactionHash };
|
|
63526
|
+
}
|
|
63527
|
+
async approve(approveData) {
|
|
63528
|
+
const { tokenAddress, spender, owner } = approveData;
|
|
63529
|
+
const tokenContract = await this.getContract(tokenAddress);
|
|
63530
|
+
const transactionHash = await tokenContract.approve(spender, MAX_AMOUNT2).send({ from: owner });
|
|
63531
|
+
await this.verifyTx(transactionHash);
|
|
63532
|
+
return { txId: transactionHash };
|
|
63533
|
+
}
|
|
63534
|
+
async getAllowance(approveData) {
|
|
63535
|
+
const { tokenAddress, spender, owner } = approveData;
|
|
63536
|
+
const tokenContract = await this.getContract(tokenAddress);
|
|
63537
|
+
const allowance = await tokenContract.allowance(owner, spender).call();
|
|
63538
|
+
return allowance.toString();
|
|
63539
|
+
}
|
|
63540
|
+
getContract(contractAddress) {
|
|
63541
|
+
return this.tronWeb.contract().at(contractAddress);
|
|
63542
|
+
}
|
|
63543
|
+
async verifyTx(txId, timeout = 1e4) {
|
|
63544
|
+
const start = Date.now();
|
|
63545
|
+
while (true) {
|
|
63546
|
+
if (Date.now() - start > timeout) {
|
|
63547
|
+
throw new Error("Transaction not found");
|
|
63548
|
+
}
|
|
63549
|
+
const result = await this.tronWeb.trx.getUnconfirmedTransactionInfo(txId);
|
|
63550
|
+
if (!result?.receipt) {
|
|
63551
|
+
await sleep(2e3);
|
|
63552
|
+
continue;
|
|
63553
|
+
}
|
|
63554
|
+
if (result.receipt.result === "SUCCESS") {
|
|
63555
|
+
return result;
|
|
63556
|
+
} else {
|
|
63557
|
+
throw new Error(`Transaction status is ${result.receipt.result}`);
|
|
63558
|
+
}
|
|
63468
63559
|
}
|
|
63469
|
-
return sourceTokenInfoWithChainDetails.decimals;
|
|
63470
63560
|
}
|
|
63471
63561
|
};
|
|
63472
63562
|
|
|
@@ -63475,39 +63565,27 @@ var BridgeService = class {
|
|
|
63475
63565
|
constructor(api) {
|
|
63476
63566
|
this.api = api;
|
|
63477
63567
|
}
|
|
63478
|
-
async
|
|
63479
|
-
|
|
63480
|
-
|
|
63568
|
+
async approve(provider, approveData) {
|
|
63569
|
+
return this.getBridge(provider).approve(approveData);
|
|
63570
|
+
}
|
|
63571
|
+
async send(provider, params) {
|
|
63572
|
+
const bridge = this.getBridge(provider);
|
|
63573
|
+
const txSendParams = await prepareTxSendParams(
|
|
63574
|
+
bridge.chainType,
|
|
63575
|
+
params,
|
|
63576
|
+
this.api
|
|
63577
|
+
);
|
|
63578
|
+
return bridge.sendTx(txSendParams);
|
|
63481
63579
|
}
|
|
63482
|
-
|
|
63483
|
-
|
|
63484
|
-
|
|
63485
|
-
chainType = chainProperties[params.fromChainSymbol].chainType;
|
|
63580
|
+
getBridge(provider) {
|
|
63581
|
+
if (this.isTronWeb(provider)) {
|
|
63582
|
+
return new TronBridge(provider);
|
|
63486
63583
|
} else {
|
|
63487
|
-
|
|
63488
|
-
}
|
|
63489
|
-
switch (chainType) {
|
|
63490
|
-
case "EVM" /* EVM */: {
|
|
63491
|
-
const evmBridge = new EvmBridge(this.api, web3);
|
|
63492
|
-
return evmBridge.send(params);
|
|
63493
|
-
}
|
|
63494
|
-
case "SOLANA" /* SOLANA */: {
|
|
63495
|
-
throw new Error(
|
|
63496
|
-
`Error in send method: method not implemented for SOLANA`
|
|
63497
|
-
);
|
|
63498
|
-
}
|
|
63499
|
-
case "TRX" /* TRX */: {
|
|
63500
|
-
throw new Error(`Error in send method: method not implemented for TRX`);
|
|
63501
|
-
}
|
|
63502
|
-
default: {
|
|
63503
|
-
throw new Error(
|
|
63504
|
-
`Error in send method: unknown chain type ${chainType}, or method not implemented`
|
|
63505
|
-
);
|
|
63506
|
-
}
|
|
63584
|
+
return new EvmBridge(provider);
|
|
63507
63585
|
}
|
|
63508
63586
|
}
|
|
63509
|
-
|
|
63510
|
-
return params.
|
|
63587
|
+
isTronWeb(params) {
|
|
63588
|
+
return params.trx !== void 0;
|
|
63511
63589
|
}
|
|
63512
63590
|
};
|
|
63513
63591
|
|
|
@@ -66070,6 +66148,12 @@ var AllbridgeCoreClient = class {
|
|
|
66070
66148
|
const { data } = await this.api.get("/token-info");
|
|
66071
66149
|
return new TokensInfo(mapChainDetailsMapFromDTO(data));
|
|
66072
66150
|
}
|
|
66151
|
+
async getTransferStatus(chainSymbol, txId) {
|
|
66152
|
+
const { data } = await this.api.get(
|
|
66153
|
+
`/chain/${chainSymbol}/${txId}`
|
|
66154
|
+
);
|
|
66155
|
+
return data;
|
|
66156
|
+
}
|
|
66073
66157
|
async getReceiveTransactionCost(args) {
|
|
66074
66158
|
const { data } = await this.api.post(
|
|
66075
66159
|
"/receive-fee",
|
|
@@ -66108,11 +66192,14 @@ var AllbridgeCoreSdk = class {
|
|
|
66108
66192
|
async getTokensInfo() {
|
|
66109
66193
|
return this.api.getTokensInfo();
|
|
66110
66194
|
}
|
|
66111
|
-
async
|
|
66112
|
-
return this.bridgeService.
|
|
66195
|
+
async approve(provider, approveData) {
|
|
66196
|
+
return await this.bridgeService.approve(provider, approveData);
|
|
66197
|
+
}
|
|
66198
|
+
async send(provider, params) {
|
|
66199
|
+
return this.bridgeService.send(provider, params);
|
|
66113
66200
|
}
|
|
66114
|
-
async
|
|
66115
|
-
return this.
|
|
66201
|
+
async getTransferStatus(chainSymbol, txId) {
|
|
66202
|
+
return this.api.getTransferStatus(chainSymbol, txId);
|
|
66116
66203
|
}
|
|
66117
66204
|
calculateFeePercentOnSourceChain(amountFloat, sourceChainToken) {
|
|
66118
66205
|
const amountInt = convertFloatAmountToInt(
|
|
@@ -66225,6 +66312,7 @@ var AllbridgeCoreSdk = class {
|
|
|
66225
66312
|
0 && (module.exports = {
|
|
66226
66313
|
AllbridgeCoreSdk,
|
|
66227
66314
|
ChainSymbol,
|
|
66315
|
+
ChainType,
|
|
66228
66316
|
Messenger,
|
|
66229
66317
|
TokensInfo,
|
|
66230
66318
|
production
|