@velora-dex/sdk 8.0.0 → 8.1.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 +73 -11
- package/dist/examples/helpers/delta.d.ts +5 -0
- package/dist/examples/helpers/delta.d.ts.map +1 -0
- package/dist/helpers/misc.d.ts +4 -0
- package/dist/helpers/misc.d.ts.map +1 -1
- package/dist/methods/delta/buildCrosschainOrderBridge.d.ts +1 -1
- package/dist/methods/delta/buildCrosschainOrderBridge.d.ts.map +1 -1
- package/dist/methods/delta/buildDeltaOrder.d.ts +1 -1
- package/dist/methods/delta/buildDeltaOrder.d.ts.map +1 -1
- package/dist/methods/delta/getDeltaPrice.d.ts +2 -0
- package/dist/methods/delta/getDeltaPrice.d.ts.map +1 -1
- package/dist/methods/delta/helpers/across.d.ts +3 -6
- package/dist/methods/delta/helpers/across.d.ts.map +1 -1
- package/dist/methods/quote/getQuote.d.ts +25 -4
- package/dist/methods/quote/getQuote.d.ts.map +1 -1
- package/dist/sdk.cjs.development.js +67 -143
- package/dist/sdk.cjs.development.js.map +1 -1
- package/dist/sdk.cjs.production.min.js +1 -1
- package/dist/sdk.cjs.production.min.js.map +1 -1
- package/dist/sdk.esm.js +67 -143
- package/dist/sdk.esm.js.map +1 -1
- package/docs/DELTA.md +69 -7
- package/package.json +1 -1
- package/src/examples/delta.ts +5 -10
- package/src/examples/helpers/delta.ts +39 -0
- package/src/examples/quote.ts +6 -8
- package/src/examples/simpleQuote.ts +3 -5
- package/src/helpers/misc.ts +8 -0
- package/src/methods/delta/buildCrosschainOrderBridge.ts +12 -9
- package/src/methods/delta/buildDeltaOrder.ts +20 -18
- package/src/methods/delta/getDeltaPrice.ts +2 -0
- package/src/methods/delta/helpers/across.ts +25 -91
- package/src/methods/quote/getQuote.ts +59 -5
package/dist/sdk.esm.js
CHANGED
|
@@ -464,6 +464,7 @@ var FetcherError = /*#__PURE__*/function (_Error) {
|
|
|
464
464
|
status = response.status;
|
|
465
465
|
_this.status = status;
|
|
466
466
|
_this.message = isDataWithError(data) ? data.error : message;
|
|
467
|
+
_this.message = isDataWithError2(data) ? "" + data.errorType + (data.description ? ": " + data.description : '') : _this.message;
|
|
467
468
|
return _this;
|
|
468
469
|
}
|
|
469
470
|
_inheritsLoose(FetcherError, _Error);
|
|
@@ -476,6 +477,9 @@ function isObject(obj) {
|
|
|
476
477
|
function isDataWithError(data) {
|
|
477
478
|
return isObject(data) && typeof data['error'] === 'string';
|
|
478
479
|
}
|
|
480
|
+
function isDataWithError2(data) {
|
|
481
|
+
return isObject(data) && typeof data['errorType'] === 'string';
|
|
482
|
+
}
|
|
479
483
|
// checks that array has at least one element
|
|
480
484
|
var isFilledArray = function isFilledArray(array) {
|
|
481
485
|
return array.length > 0;
|
|
@@ -3818,6 +3822,8 @@ var ACROSS_WETH_ADDRESSES_MAP = {
|
|
|
3818
3822
|
81457: '0x4300000000000000000000000000000000000004',
|
|
3819
3823
|
// Blast Sepolia
|
|
3820
3824
|
168587773: '0x4200000000000000000000000000000000000023',
|
|
3825
|
+
// BSC
|
|
3826
|
+
56: '0x2170Ed0880ac9A755fd29B2688956BD959F933F8',
|
|
3821
3827
|
// Ink
|
|
3822
3828
|
57073: '0x4200000000000000000000000000000000000006',
|
|
3823
3829
|
// Ink Sepolia
|
|
@@ -3868,150 +3874,71 @@ var ETH_ADDRESS_LOWERCASE = /*#__PURE__*/ETH_ADDRESS.toLowerCase();
|
|
|
3868
3874
|
function isETHaddress(tokenAddress) {
|
|
3869
3875
|
return tokenAddress.toLowerCase() === ETH_ADDRESS_LOWERCASE;
|
|
3870
3876
|
}
|
|
3871
|
-
function
|
|
3872
|
-
return
|
|
3877
|
+
function getDeltaBridge(_x) {
|
|
3878
|
+
return _getDeltaBridge.apply(this, arguments);
|
|
3873
3879
|
}
|
|
3874
|
-
function
|
|
3875
|
-
|
|
3876
|
-
var destTokenDestChain, destChainId,
|
|
3880
|
+
function _getDeltaBridge() {
|
|
3881
|
+
_getDeltaBridge = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
|
|
3882
|
+
var destTokenDestChain, destChainId, bridgeFee, bridgeOutputToken, beneficiaryType, getMulticallHandler, outputToken, multiCallHandler, bridge;
|
|
3877
3883
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
3878
3884
|
while (1) switch (_context.prev = _context.next) {
|
|
3879
3885
|
case 0:
|
|
3880
|
-
destTokenDestChain = _ref.destTokenDestChain, destChainId = _ref.destChainId,
|
|
3886
|
+
destTokenDestChain = _ref.destTokenDestChain, destChainId = _ref.destChainId, bridgeFee = _ref.bridgeFee, bridgeOutputToken = _ref.bridgeOutputToken, beneficiaryType = _ref.beneficiaryType, getMulticallHandler = _ref.getMulticallHandler;
|
|
3881
3887
|
assert(beneficiaryType === 'EOA' || beneficiaryType === 'SmartContract', 'beneficiaryType must be EOA or SmartContract');
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
if (
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
outputToken: destTokenDestChain,
|
|
3893
|
-
multiCallHandler: ZERO_ADDRESS
|
|
3894
|
-
};
|
|
3895
|
-
return _context.abrupt("return", {
|
|
3896
|
-
bridge: _bridge,
|
|
3897
|
-
orderChanges: {
|
|
3898
|
-
destToken: destTokenSrcChain
|
|
3899
|
-
}
|
|
3900
|
-
});
|
|
3901
|
-
case 7:
|
|
3902
|
-
if (!(beneficiaryType === 'EOA' && isETHaddress(destTokenDestChain))) {
|
|
3903
|
-
_context.next = 10;
|
|
3904
|
-
break;
|
|
3888
|
+
outputToken = bridgeOutputToken.toLowerCase(); // for uniformity
|
|
3889
|
+
multiCallHandler = ZERO_ADDRESS;
|
|
3890
|
+
if (beneficiaryType === 'EOA' && isETHaddress(destTokenDestChain)) {
|
|
3891
|
+
/*
|
|
3892
|
+
if beneficiary is an EOA and destToken on destChain = ETH
|
|
3893
|
+
order.destToken=ETH (deltaPrice already contains correct destToken)
|
|
3894
|
+
order.bridge.outputToken=WETH_DEST_CHAIN (deltaPrice already contains correct bridge.outputToken)
|
|
3895
|
+
order.bridge.multiCallHandler=NULL_ADDRESS
|
|
3896
|
+
*/
|
|
3897
|
+
multiCallHandler = ZERO_ADDRESS;
|
|
3905
3898
|
}
|
|
3906
|
-
/*
|
|
3907
|
-
if beneficiary is an EOA and destToken on destChain = ETH
|
|
3908
|
-
order.destToken=ETH
|
|
3909
|
-
order.bridge.outputToken=WETH_DEST_CHAIN
|
|
3910
|
-
order.bridge.multiCallHandler=NULL_ADDRESS
|
|
3911
|
-
*/
|
|
3912
|
-
_bridge2 = {
|
|
3913
|
-
maxRelayerFee: bridgeFee,
|
|
3914
|
-
destinationChainId: destChainId,
|
|
3915
|
-
outputToken: WETH_DEST_CHAIN,
|
|
3916
|
-
multiCallHandler: ZERO_ADDRESS
|
|
3917
|
-
};
|
|
3918
|
-
return _context.abrupt("return", {
|
|
3919
|
-
bridge: _bridge2,
|
|
3920
|
-
orderChanges: {
|
|
3921
|
-
destToken: ETH_ADDRESS
|
|
3922
|
-
}
|
|
3923
|
-
});
|
|
3924
|
-
case 10:
|
|
3925
3899
|
if (!(beneficiaryType === 'EOA' && isAcrossWETH(destTokenDestChain, destChainId))) {
|
|
3926
|
-
_context.next =
|
|
3900
|
+
_context.next = 9;
|
|
3927
3901
|
break;
|
|
3928
3902
|
}
|
|
3929
|
-
_context.
|
|
3930
|
-
_context.t1 = destChainId;
|
|
3931
|
-
_context.t2 = WETH_DEST_CHAIN;
|
|
3932
|
-
_context.next = 16;
|
|
3903
|
+
_context.next = 8;
|
|
3933
3904
|
return getMulticallHandler(destChainId);
|
|
3934
|
-
case
|
|
3935
|
-
|
|
3936
|
-
|
|
3937
|
-
maxRelayerFee: _context.t0,
|
|
3938
|
-
destinationChainId: _context.t1,
|
|
3939
|
-
outputToken: _context.t2,
|
|
3940
|
-
multiCallHandler: _context.t3
|
|
3941
|
-
};
|
|
3942
|
-
return _context.abrupt("return", {
|
|
3943
|
-
bridge: _bridge3,
|
|
3944
|
-
orderChanges: {
|
|
3945
|
-
destToken: WETH_SRC_CHAIN
|
|
3946
|
-
}
|
|
3947
|
-
});
|
|
3948
|
-
case 19:
|
|
3905
|
+
case 8:
|
|
3906
|
+
multiCallHandler = _context.sent;
|
|
3907
|
+
case 9:
|
|
3949
3908
|
if (!(beneficiaryType === 'SmartContract' && isETHaddress(destTokenDestChain))) {
|
|
3950
|
-
_context.next =
|
|
3909
|
+
_context.next = 13;
|
|
3951
3910
|
break;
|
|
3952
3911
|
}
|
|
3953
|
-
_context.
|
|
3954
|
-
_context.t5 = destChainId;
|
|
3955
|
-
_context.t6 = WETH_DEST_CHAIN;
|
|
3956
|
-
_context.next = 25;
|
|
3912
|
+
_context.next = 12;
|
|
3957
3913
|
return getMulticallHandler(destChainId);
|
|
3958
|
-
case
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3962
|
-
|
|
3963
|
-
|
|
3964
|
-
|
|
3965
|
-
|
|
3966
|
-
|
|
3967
|
-
|
|
3968
|
-
|
|
3969
|
-
destToken: ETH_ADDRESS
|
|
3970
|
-
}
|
|
3971
|
-
});
|
|
3972
|
-
case 28:
|
|
3973
|
-
if (!(beneficiaryType === 'SmartContract' && isAcrossWETH(destTokenDestChain, destChainId))) {
|
|
3974
|
-
_context.next = 31;
|
|
3975
|
-
break;
|
|
3914
|
+
case 12:
|
|
3915
|
+
multiCallHandler = _context.sent;
|
|
3916
|
+
case 13:
|
|
3917
|
+
if (beneficiaryType === 'SmartContract' && isAcrossWETH(destTokenDestChain, destChainId)) {
|
|
3918
|
+
/*
|
|
3919
|
+
if beneficiary is a contract and destToken on destChain = WETH
|
|
3920
|
+
order.destToken=WETH (deltaPrice already contains correct destToken)
|
|
3921
|
+
order.bridge.outputToken=WETH_DEST_CHAIN (deltaPrice already contains correct bridge.outputToken)
|
|
3922
|
+
order.bridge.multiCallHandler=NULL_ADDRESS
|
|
3923
|
+
*/
|
|
3924
|
+
multiCallHandler = ZERO_ADDRESS;
|
|
3976
3925
|
}
|
|
3977
|
-
/*
|
|
3978
|
-
if beneficiary is a contract and destToken on destChain = WETH
|
|
3979
|
-
order.destToken=WETH
|
|
3980
|
-
order.bridge.outputToken=WETH_DEST_CHAIN
|
|
3981
|
-
order.bridge.multiCallHandler=NULL_ADDRESS
|
|
3982
|
-
*/
|
|
3983
|
-
_bridge5 = {
|
|
3984
|
-
maxRelayerFee: bridgeFee,
|
|
3985
|
-
destinationChainId: destChainId,
|
|
3986
|
-
outputToken: WETH_DEST_CHAIN,
|
|
3987
|
-
multiCallHandler: ZERO_ADDRESS
|
|
3988
|
-
};
|
|
3989
|
-
return _context.abrupt("return", {
|
|
3990
|
-
bridge: _bridge5,
|
|
3991
|
-
orderChanges: {
|
|
3992
|
-
destToken: WETH_SRC_CHAIN
|
|
3993
|
-
}
|
|
3994
|
-
});
|
|
3995
|
-
case 31:
|
|
3996
3926
|
bridge = {
|
|
3997
3927
|
maxRelayerFee: bridgeFee,
|
|
3998
3928
|
destinationChainId: destChainId,
|
|
3999
|
-
outputToken:
|
|
4000
|
-
multiCallHandler:
|
|
3929
|
+
outputToken: outputToken,
|
|
3930
|
+
multiCallHandler: multiCallHandler
|
|
4001
3931
|
};
|
|
4002
3932
|
return _context.abrupt("return", {
|
|
4003
|
-
bridge: bridge
|
|
4004
|
-
orderChanges: {
|
|
4005
|
-
destToken: destTokenSrcChain
|
|
4006
|
-
}
|
|
3933
|
+
bridge: bridge
|
|
4007
3934
|
});
|
|
4008
|
-
case
|
|
3935
|
+
case 16:
|
|
4009
3936
|
case "end":
|
|
4010
3937
|
return _context.stop();
|
|
4011
3938
|
}
|
|
4012
3939
|
}, _callee);
|
|
4013
3940
|
}));
|
|
4014
|
-
return
|
|
3941
|
+
return _getDeltaBridge.apply(this, arguments);
|
|
4015
3942
|
}
|
|
4016
3943
|
|
|
4017
3944
|
var constructBuildCrosschainOrderBridge = function constructBuildCrosschainOrderBridge(options) {
|
|
@@ -4021,12 +3948,13 @@ var constructBuildCrosschainOrderBridge = function constructBuildCrosschainOrder
|
|
|
4021
3948
|
getMulticallHandlers = _constructGetMultical.getMulticallHandlers;
|
|
4022
3949
|
var buildCrosschainOrderBridge = /*#__PURE__*/function () {
|
|
4023
3950
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref, requestParams) {
|
|
4024
|
-
var destToken, destChainId, beneficiaryType, deltaPrice, getMulticallHandler, _yield$getDeltaBridge, bridge
|
|
3951
|
+
var destToken, destChainId, beneficiaryType, deltaPrice, getMulticallHandler, _yield$getDeltaBridge, bridge;
|
|
4025
3952
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
4026
3953
|
while (1) switch (_context2.prev = _context2.next) {
|
|
4027
3954
|
case 0:
|
|
4028
3955
|
destToken = _ref.destToken, destChainId = _ref.destChainId, beneficiaryType = _ref.beneficiaryType, deltaPrice = _ref.deltaPrice;
|
|
4029
|
-
assert(chainId !==
|
|
3956
|
+
assert(chainId !== deltaPrice.bridge.destinationChainId, '`deltaPrice.bridge.destinationChainId` must be different from `chainId` for crosschain Order.bridge');
|
|
3957
|
+
assert(destChainId === deltaPrice.bridge.destinationChainId, '`destChainId` must match `deltaPrice.bridge.destinationChainId` for crosschain Order.bridge');
|
|
4030
3958
|
getMulticallHandler = /*#__PURE__*/function () {
|
|
4031
3959
|
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(chainId) {
|
|
4032
3960
|
var multicallHandlersMap, multicallHandler;
|
|
@@ -4050,23 +3978,20 @@ var constructBuildCrosschainOrderBridge = function constructBuildCrosschainOrder
|
|
|
4050
3978
|
return _ref3.apply(this, arguments);
|
|
4051
3979
|
};
|
|
4052
3980
|
}();
|
|
4053
|
-
_context2.next =
|
|
4054
|
-
return
|
|
3981
|
+
_context2.next = 6;
|
|
3982
|
+
return getDeltaBridge({
|
|
4055
3983
|
destTokenDestChain: destToken,
|
|
4056
3984
|
destChainId: destChainId,
|
|
4057
|
-
destTokenSrcChain: deltaPrice.destToken,
|
|
4058
|
-
srcChainId: chainId,
|
|
4059
3985
|
bridgeFee: deltaPrice.bridgeFee,
|
|
3986
|
+
bridgeOutputToken: deltaPrice.bridge.outputToken,
|
|
4060
3987
|
beneficiaryType: beneficiaryType,
|
|
4061
3988
|
getMulticallHandler: getMulticallHandler
|
|
4062
3989
|
});
|
|
4063
|
-
case
|
|
3990
|
+
case 6:
|
|
4064
3991
|
_yield$getDeltaBridge = _context2.sent;
|
|
4065
3992
|
bridge = _yield$getDeltaBridge.bridge;
|
|
4066
|
-
orderChanges = _yield$getDeltaBridge.orderChanges;
|
|
4067
3993
|
return _context2.abrupt("return", {
|
|
4068
|
-
bridge: bridge
|
|
4069
|
-
orderChanges: orderChanges
|
|
3994
|
+
bridge: bridge
|
|
4070
3995
|
});
|
|
4071
3996
|
case 9:
|
|
4072
3997
|
case "end":
|
|
@@ -4102,8 +4027,8 @@ var constructBuildDeltaOrder = function constructBuildDeltaOrder(options) {
|
|
|
4102
4027
|
buildCrosschainOrderBridge = _constructBuildCrossc.buildCrosschainOrderBridge;
|
|
4103
4028
|
var buildDeltaOrder = /*#__PURE__*/function () {
|
|
4104
4029
|
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(options, requestParams) {
|
|
4105
|
-
var _options$partnerFeeBp,
|
|
4106
|
-
var ParaswapDelta, partnerAddress, partnerFeeBps, partnerTakesSurplus, feeOrTakeSurplusSupplied, _partnerAddress, _partnerFeeBps, _partnerTakesSurplus, partner, partnerFeeResponse, bridge,
|
|
4030
|
+
var _options$partnerFeeBp, _options$nonce;
|
|
4031
|
+
var ParaswapDelta, partnerAddress, partnerFeeBps, partnerTakesSurplus, feeOrTakeSurplusSupplied, _partnerAddress, _partnerFeeBps, _partnerTakesSurplus, partner, partnerFeeResponse, bridge, _options$beneficiaryT, deltaPrice, _yield$buildCrosschai, constructedBridge, input;
|
|
4107
4032
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
4108
4033
|
while (1) switch (_context.prev = _context.next) {
|
|
4109
4034
|
case 0:
|
|
@@ -4141,19 +4066,19 @@ var constructBuildDeltaOrder = function constructBuildDeltaOrder(options) {
|
|
|
4141
4066
|
case 17:
|
|
4142
4067
|
////// Bridge logic //////
|
|
4143
4068
|
// Bridge is necessary for Crosschain Delta Orders
|
|
4144
|
-
bridge = options.bridge;
|
|
4145
|
-
partialChangedOrder = null; // give preference to user-provided bridge
|
|
4069
|
+
bridge = options.bridge; // give preference to user-provided bridge
|
|
4146
4070
|
if (bridge) {
|
|
4147
|
-
_context.next =
|
|
4071
|
+
_context.next = 31;
|
|
4148
4072
|
break;
|
|
4149
4073
|
}
|
|
4150
4074
|
if (!(options.destChainId && chainId !== options.destChainId)) {
|
|
4151
|
-
_context.next =
|
|
4075
|
+
_context.next = 30;
|
|
4152
4076
|
break;
|
|
4153
4077
|
}
|
|
4154
4078
|
// crosschain Delta Order
|
|
4155
4079
|
deltaPrice = options.deltaPrice;
|
|
4156
4080
|
assert(deltaPrice.bridgeFee, '`bridgeFee` is required in `deltaPrice` for crosschain Delta Orders');
|
|
4081
|
+
assert(deltaPrice.bridge, '`bridge` is required in `deltaPrice` for crosschain Delta Orders');
|
|
4157
4082
|
_context.next = 25;
|
|
4158
4083
|
return buildCrosschainOrderBridge({
|
|
4159
4084
|
destToken: options.destToken,
|
|
@@ -4161,27 +4086,26 @@ var constructBuildDeltaOrder = function constructBuildDeltaOrder(options) {
|
|
|
4161
4086
|
beneficiaryType: (_options$beneficiaryT = options.beneficiaryType) != null ? _options$beneficiaryT : 'EOA',
|
|
4162
4087
|
deltaPrice: {
|
|
4163
4088
|
bridgeFee: deltaPrice.bridgeFee,
|
|
4164
|
-
|
|
4089
|
+
bridge: deltaPrice.bridge // already contains destChainId and outputToken
|
|
4165
4090
|
}
|
|
4166
4091
|
}, requestParams);
|
|
4167
4092
|
case 25:
|
|
4168
4093
|
_yield$buildCrosschai = _context.sent;
|
|
4169
4094
|
constructedBridge = _yield$buildCrosschai.bridge;
|
|
4170
|
-
orderChanges = _yield$buildCrosschai.orderChanges;
|
|
4171
4095
|
bridge = constructedBridge;
|
|
4172
|
-
|
|
4173
|
-
_context.next = 33;
|
|
4096
|
+
_context.next = 31;
|
|
4174
4097
|
break;
|
|
4175
|
-
case
|
|
4098
|
+
case 30:
|
|
4176
4099
|
// 0-values bridge for same-chain Orders
|
|
4177
4100
|
bridge = DEFAULT_BRIDGE;
|
|
4178
|
-
case
|
|
4101
|
+
case 31:
|
|
4179
4102
|
input = {
|
|
4180
4103
|
owner: options.owner,
|
|
4181
4104
|
beneficiary: options.beneficiary,
|
|
4182
4105
|
srcToken: options.srcToken,
|
|
4183
|
-
// for some cases of WETH
|
|
4184
|
-
|
|
4106
|
+
// for some cases of WETH->ETH crosschain swaps, the destToken is changed to WETH or ETH,
|
|
4107
|
+
// this is already reflected in deltaPrice
|
|
4108
|
+
destToken: options.deltaPrice.destToken,
|
|
4185
4109
|
srcAmount: options.srcAmount,
|
|
4186
4110
|
destAmount: options.destAmount,
|
|
4187
4111
|
expectedDestAmount: options.deltaPrice.destAmount,
|
|
@@ -4196,7 +4120,7 @@ var constructBuildDeltaOrder = function constructBuildDeltaOrder(options) {
|
|
|
4196
4120
|
bridge: bridge
|
|
4197
4121
|
};
|
|
4198
4122
|
return _context.abrupt("return", buildDeltaSignableOrderData(input));
|
|
4199
|
-
case
|
|
4123
|
+
case 33:
|
|
4200
4124
|
case "end":
|
|
4201
4125
|
return _context.stop();
|
|
4202
4126
|
}
|