hermes-swap 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.d.ts +5 -0
- package/dist/cjs/index.js +24 -1
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.js +48 -23
- package/package.json +1 -1
package/dist/cjs/index.d.ts
CHANGED
|
@@ -20,6 +20,11 @@ declare class Hermes {
|
|
|
20
20
|
to: string;
|
|
21
21
|
data: string;
|
|
22
22
|
};
|
|
23
|
+
getBridgeCallData(params: IBridgeParams): {
|
|
24
|
+
to: string;
|
|
25
|
+
data: string;
|
|
26
|
+
value: bigint;
|
|
27
|
+
};
|
|
23
28
|
bridge(params: IBridgeParams, txReq?: TransactionRequest): Promise<IReceipt>;
|
|
24
29
|
estimateBridgeFee(params: IBridgeParams): Promise<bigint>;
|
|
25
30
|
swapAndBridge(params: ISwapAndBridgeParams, txReq?: TransactionRequest): Promise<IReceipt>;
|
package/dist/cjs/index.js
CHANGED
|
@@ -77,7 +77,6 @@ var Hermes = class {
|
|
|
77
77
|
if (!wallet) {
|
|
78
78
|
throw new Error(`Wallet not configured for chain: ${params.chain}`);
|
|
79
79
|
}
|
|
80
|
-
console.log(`params: ${JSON.stringify(params, (sanitizePricing, value) => typeof value === "bigint" ? value.toString() : value)}`);
|
|
81
80
|
const response = await fetch(`${this.config.hermesSignalDomain}/api/v1/quote`, {
|
|
82
81
|
method: "POST",
|
|
83
82
|
headers: {
|
|
@@ -210,6 +209,30 @@ var Hermes = class {
|
|
|
210
209
|
data: calldata
|
|
211
210
|
};
|
|
212
211
|
}
|
|
212
|
+
getBridgeCallData(params) {
|
|
213
|
+
this.validateParams(params);
|
|
214
|
+
if (!params.bridgeType || !params.tokenAddress) {
|
|
215
|
+
throw new Error("bridge path not provided");
|
|
216
|
+
}
|
|
217
|
+
const aggregatorAddress = this.getAggregatorAddress(params.chain);
|
|
218
|
+
console.log("aggregator address: ", aggregatorAddress);
|
|
219
|
+
const bridgeArgs = {
|
|
220
|
+
bridge: params.bridgeType,
|
|
221
|
+
token: params.tokenAddress,
|
|
222
|
+
amount: params.amountInWei,
|
|
223
|
+
bridgeAddress: params.bridgeAddress,
|
|
224
|
+
destChain: params.destChain,
|
|
225
|
+
destUser: params.destUser,
|
|
226
|
+
extra: params.extra ?? "0x"
|
|
227
|
+
};
|
|
228
|
+
const iface = new import_ethers.ethers.Interface(import_aggregator.default);
|
|
229
|
+
const calldata = iface.encodeFunctionData("bridge", [params.user, bridgeArgs]);
|
|
230
|
+
return {
|
|
231
|
+
to: aggregatorAddress,
|
|
232
|
+
data: calldata,
|
|
233
|
+
value: params.bridgeFee
|
|
234
|
+
};
|
|
235
|
+
}
|
|
213
236
|
async bridge(params, txReq = {}) {
|
|
214
237
|
this.validateParams(params);
|
|
215
238
|
const aggregatorAddress = this.getAggregatorAddress(params.chain);
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -20,6 +20,11 @@ declare class Hermes {
|
|
|
20
20
|
to: string;
|
|
21
21
|
data: string;
|
|
22
22
|
};
|
|
23
|
+
getBridgeCallData(params: IBridgeParams): {
|
|
24
|
+
to: string;
|
|
25
|
+
data: string;
|
|
26
|
+
value: bigint;
|
|
27
|
+
};
|
|
23
28
|
bridge(params: IBridgeParams, txReq?: TransactionRequest): Promise<IReceipt>;
|
|
24
29
|
estimateBridgeFee(params: IBridgeParams): Promise<bigint>;
|
|
25
30
|
swapAndBridge(params: ISwapAndBridgeParams, txReq?: TransactionRequest): Promise<IReceipt>;
|
package/dist/esm/index.js
CHANGED
|
@@ -84,11 +84,7 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
84
84
|
}
|
|
85
85
|
throw new Error("Wallet not configured for chain: ".concat(params.chain));
|
|
86
86
|
case 3:
|
|
87
|
-
|
|
88
|
-
console.log("params: ".concat(JSON.stringify(params, function (sanitizePricing, value) {
|
|
89
|
-
return typeof value === 'bigint' ? value.toString() : value;
|
|
90
|
-
})));
|
|
91
|
-
_context.next = 6;
|
|
87
|
+
_context.next = 5;
|
|
92
88
|
return fetch("".concat(this.config.hermesSignalDomain, "/api/v1/quote"), {
|
|
93
89
|
method: 'POST',
|
|
94
90
|
headers: {
|
|
@@ -98,26 +94,26 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
98
94
|
return typeof value === 'bigint' ? value.toString() : value;
|
|
99
95
|
})
|
|
100
96
|
});
|
|
101
|
-
case
|
|
97
|
+
case 5:
|
|
102
98
|
response = _context.sent;
|
|
103
|
-
_context.next =
|
|
99
|
+
_context.next = 8;
|
|
104
100
|
return response.json();
|
|
105
|
-
case
|
|
101
|
+
case 8:
|
|
106
102
|
data = _context.sent;
|
|
107
103
|
if (!(data.message && !data.amountOutWei)) {
|
|
108
|
-
_context.next =
|
|
104
|
+
_context.next = 11;
|
|
109
105
|
break;
|
|
110
106
|
}
|
|
111
107
|
throw new Error("Hermes Signal API \u9519\u8BEF: ".concat(data.message));
|
|
112
|
-
case
|
|
108
|
+
case 11:
|
|
113
109
|
if (data.amountOutWei) {
|
|
114
|
-
_context.next =
|
|
110
|
+
_context.next = 13;
|
|
115
111
|
break;
|
|
116
112
|
}
|
|
117
113
|
throw new Error("Invalid response: amountOutWei is undefined. Response: ".concat(JSON.stringify(data)));
|
|
118
|
-
case
|
|
114
|
+
case 13:
|
|
119
115
|
return _context.abrupt("return", BigInt(data.amountOutWei));
|
|
120
|
-
case
|
|
116
|
+
case 14:
|
|
121
117
|
case "end":
|
|
122
118
|
return _context.stop();
|
|
123
119
|
}
|
|
@@ -400,11 +396,40 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
400
396
|
data: calldata
|
|
401
397
|
};
|
|
402
398
|
}
|
|
399
|
+
}, {
|
|
400
|
+
key: "getBridgeCallData",
|
|
401
|
+
value: function getBridgeCallData(params) {
|
|
402
|
+
var _params$extra;
|
|
403
|
+
this.validateParams(params);
|
|
404
|
+
if (!params.bridgeType || !params.tokenAddress) {
|
|
405
|
+
throw new Error('bridge path not provided');
|
|
406
|
+
}
|
|
407
|
+
var aggregatorAddress = this.getAggregatorAddress(params.chain);
|
|
408
|
+
console.log('aggregator address: ', aggregatorAddress);
|
|
409
|
+
|
|
410
|
+
// 准备 bridge 参数
|
|
411
|
+
var bridgeArgs = {
|
|
412
|
+
bridge: params.bridgeType,
|
|
413
|
+
token: params.tokenAddress,
|
|
414
|
+
amount: params.amountInWei,
|
|
415
|
+
bridgeAddress: params.bridgeAddress,
|
|
416
|
+
destChain: params.destChain,
|
|
417
|
+
destUser: params.destUser,
|
|
418
|
+
extra: (_params$extra = params.extra) !== null && _params$extra !== void 0 ? _params$extra : '0x'
|
|
419
|
+
};
|
|
420
|
+
var iface = new ethers.Interface(AggregatorAbi);
|
|
421
|
+
var calldata = iface.encodeFunctionData('bridge', [params.user, bridgeArgs]);
|
|
422
|
+
return {
|
|
423
|
+
to: aggregatorAddress,
|
|
424
|
+
data: calldata,
|
|
425
|
+
value: params.bridgeFee
|
|
426
|
+
};
|
|
427
|
+
}
|
|
403
428
|
}, {
|
|
404
429
|
key: "bridge",
|
|
405
430
|
value: function () {
|
|
406
431
|
var _bridge = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(params) {
|
|
407
|
-
var _params$
|
|
432
|
+
var _params$extra2;
|
|
408
433
|
var txReq,
|
|
409
434
|
aggregatorAddress,
|
|
410
435
|
wallet,
|
|
@@ -470,7 +495,7 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
470
495
|
bridgeAddress: params.bridgeAddress,
|
|
471
496
|
destChain: params.destChain,
|
|
472
497
|
destUser: params.destUser,
|
|
473
|
-
extra: (_params$
|
|
498
|
+
extra: (_params$extra2 = params.extra) !== null && _params$extra2 !== void 0 ? _params$extra2 : '0x'
|
|
474
499
|
};
|
|
475
500
|
if (txReq.value == null) {
|
|
476
501
|
txReq = _objectSpread(_objectSpread({}, txReq), {}, {
|
|
@@ -535,7 +560,7 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
535
560
|
key: "estimateBridgeFee",
|
|
536
561
|
value: function () {
|
|
537
562
|
var _estimateBridgeFee = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(params) {
|
|
538
|
-
var _params$
|
|
563
|
+
var _params$extra3;
|
|
539
564
|
var wallet, address, quoter, bridgeArgs, bridgeFee;
|
|
540
565
|
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
541
566
|
while (1) switch (_context5.prev = _context5.next) {
|
|
@@ -563,7 +588,7 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
563
588
|
bridgeAddress: params.bridgeAddress,
|
|
564
589
|
destChain: params.destChain,
|
|
565
590
|
destUser: params.destUser,
|
|
566
|
-
extra: (_params$
|
|
591
|
+
extra: (_params$extra3 = params.extra) !== null && _params$extra3 !== void 0 ? _params$extra3 : '0x'
|
|
567
592
|
};
|
|
568
593
|
_context5.next = 11;
|
|
569
594
|
return quoter.quoteBridge.staticCall(bridgeArgs, {
|
|
@@ -587,7 +612,7 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
587
612
|
key: "swapAndBridge",
|
|
588
613
|
value: function () {
|
|
589
614
|
var _swapAndBridge = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(params) {
|
|
590
|
-
var _params$
|
|
615
|
+
var _params$extra4;
|
|
591
616
|
var txReq,
|
|
592
617
|
aggregatorAddress,
|
|
593
618
|
wallet,
|
|
@@ -649,7 +674,7 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
649
674
|
bridgeAddress: params.bridgeAddress,
|
|
650
675
|
destChain: params.destChain,
|
|
651
676
|
destUser: params.destUser,
|
|
652
|
-
extra: (_params$
|
|
677
|
+
extra: (_params$extra4 = params.extra) !== null && _params$extra4 !== void 0 ? _params$extra4 : '0x'
|
|
653
678
|
};
|
|
654
679
|
if (txReq.value == null) {
|
|
655
680
|
txReq = _objectSpread(_objectSpread({}, txReq), {}, {
|
|
@@ -754,7 +779,7 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
754
779
|
key: "estimateGas",
|
|
755
780
|
value: function () {
|
|
756
781
|
var _estimateGas = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(estimateType, params) {
|
|
757
|
-
var _params$
|
|
782
|
+
var _params$extra5, _swapAndBridgeParams$;
|
|
758
783
|
var aggregatorAddress, wallet, aggregator, bridgeArgs1, txOverrides1, gasInBridge, swapParams1, swapGas, swapAndBridgeParams, swapParams, bridgeArgs, txOverrides, gas;
|
|
759
784
|
return _regeneratorRuntime().wrap(function _callee7$(_context7) {
|
|
760
785
|
while (1) switch (_context7.prev = _context7.next) {
|
|
@@ -788,7 +813,7 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
788
813
|
bridgeAddress: params.bridgeAddress,
|
|
789
814
|
destChain: params.destChain,
|
|
790
815
|
destUser: params.destUser,
|
|
791
|
-
extra: (_params$
|
|
816
|
+
extra: (_params$extra5 = params.extra) !== null && _params$extra5 !== void 0 ? _params$extra5 : '0x'
|
|
792
817
|
};
|
|
793
818
|
txOverrides1 = {
|
|
794
819
|
from: wallet.address,
|
|
@@ -1022,7 +1047,7 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
1022
1047
|
}, {
|
|
1023
1048
|
key: "genSwapAndBridgeCalldata",
|
|
1024
1049
|
value: function genSwapAndBridgeCalldata(params) {
|
|
1025
|
-
var _params$
|
|
1050
|
+
var _params$extra6;
|
|
1026
1051
|
this.validateParams(params);
|
|
1027
1052
|
if (!params.path || params.path.length === 0) {
|
|
1028
1053
|
throw new Error('Swap path not provided');
|
|
@@ -1049,7 +1074,7 @@ var Hermes = /*#__PURE__*/function () {
|
|
|
1049
1074
|
bridgeAddress: params.bridgeAddress,
|
|
1050
1075
|
destChain: params.destChain,
|
|
1051
1076
|
destUser: params.destUser,
|
|
1052
|
-
extra: (_params$
|
|
1077
|
+
extra: (_params$extra6 = params.extra) !== null && _params$extra6 !== void 0 ? _params$extra6 : '0x'
|
|
1053
1078
|
};
|
|
1054
1079
|
var amountIn = params.amountInWei;
|
|
1055
1080
|
|