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