@velora-dex/sdk 8.0.0 → 8.1.1-dev.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 (66) hide show
  1. package/README.md +73 -11
  2. package/dist/examples/helpers/delta.d.ts +5 -0
  3. package/dist/examples/helpers/delta.d.ts.map +1 -0
  4. package/dist/helpers/misc.d.ts +4 -0
  5. package/dist/helpers/misc.d.ts.map +1 -1
  6. package/dist/helpers/providers/viem.d.ts +1 -1
  7. package/dist/helpers/providers/viem.d.ts.map +1 -1
  8. package/dist/index.d.ts +3 -2
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/methods/delta/buildCrosschainOrderBridge.d.ts +1 -1
  11. package/dist/methods/delta/buildCrosschainOrderBridge.d.ts.map +1 -1
  12. package/dist/methods/delta/buildDeltaOrder.d.ts +9 -6
  13. package/dist/methods/delta/buildDeltaOrder.d.ts.map +1 -1
  14. package/dist/methods/delta/cancelDeltaOrder.d.ts +22 -0
  15. package/dist/methods/delta/cancelDeltaOrder.d.ts.map +1 -0
  16. package/dist/methods/delta/getDeltaOrders.d.ts +11 -1
  17. package/dist/methods/delta/getDeltaOrders.d.ts.map +1 -1
  18. package/dist/methods/delta/getDeltaPrice.d.ts +28 -9
  19. package/dist/methods/delta/getDeltaPrice.d.ts.map +1 -1
  20. package/dist/methods/delta/helpers/across.d.ts +3 -6
  21. package/dist/methods/delta/helpers/across.d.ts.map +1 -1
  22. package/dist/methods/delta/helpers/buildCancelDeltaOrderData.d.ts +25 -0
  23. package/dist/methods/delta/helpers/buildCancelDeltaOrderData.d.ts.map +1 -0
  24. package/dist/methods/delta/helpers/buildDeltaOrderData.d.ts +3 -3
  25. package/dist/methods/delta/helpers/buildDeltaOrderData.d.ts.map +1 -1
  26. package/dist/methods/delta/helpers/misc.d.ts +1 -1
  27. package/dist/methods/delta/helpers/misc.d.ts.map +1 -1
  28. package/dist/methods/delta/helpers/types.d.ts +34 -6
  29. package/dist/methods/delta/helpers/types.d.ts.map +1 -1
  30. package/dist/methods/delta/index.d.ts +7 -5
  31. package/dist/methods/delta/index.d.ts.map +1 -1
  32. package/dist/methods/delta/postDeltaOrder.d.ts +9 -1
  33. package/dist/methods/delta/postDeltaOrder.d.ts.map +1 -1
  34. package/dist/methods/quote/getQuote.d.ts +27 -6
  35. package/dist/methods/quote/getQuote.d.ts.map +1 -1
  36. package/dist/sdk.cjs.development.js +364 -490
  37. package/dist/sdk.cjs.development.js.map +1 -1
  38. package/dist/sdk.cjs.production.min.js +1 -1
  39. package/dist/sdk.cjs.production.min.js.map +1 -1
  40. package/dist/sdk.esm.js +364 -491
  41. package/dist/sdk.esm.js.map +1 -1
  42. package/docs/DELTA.md +69 -7
  43. package/package.json +1 -1
  44. package/src/examples/delta.ts +5 -10
  45. package/src/examples/helpers/delta.ts +39 -0
  46. package/src/examples/quote.ts +6 -8
  47. package/src/examples/simpleQuote.ts +3 -5
  48. package/src/helpers/misc.ts +8 -0
  49. package/src/helpers/providers/viem.ts +4 -1
  50. package/src/index.ts +6 -0
  51. package/src/methods/delta/buildCrosschainOrderBridge.ts +25 -13
  52. package/src/methods/delta/buildDeltaOrder.ts +36 -66
  53. package/src/methods/delta/cancelDeltaOrder.ts +111 -0
  54. package/src/methods/delta/getDeltaOrders.ts +38 -0
  55. package/src/methods/delta/getDeltaPrice.ts +59 -14
  56. package/src/methods/delta/helpers/across.ts +26 -92
  57. package/src/methods/delta/helpers/buildCancelDeltaOrderData.ts +48 -0
  58. package/src/methods/delta/helpers/buildDeltaOrderData.ts +36 -11
  59. package/src/methods/delta/helpers/misc.ts +6 -2
  60. package/src/methods/delta/helpers/types.ts +55 -7
  61. package/src/methods/delta/index.ts +19 -4
  62. package/src/methods/delta/postDeltaOrder.ts +11 -1
  63. package/src/methods/quote/getQuote.ts +60 -9
  64. package/dist/methods/delta/helpers/composePermit.d.ts +0 -5
  65. package/dist/methods/delta/helpers/composePermit.d.ts.map +0 -1
  66. package/src/methods/delta/helpers/composePermit.ts +0 -76
@@ -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;
@@ -698,7 +702,7 @@ var constructApproveToken = function constructApproveToken(options) {
698
702
  };
699
703
  };
700
704
 
701
- var _excluded$9 = ["tokenType", "mainConnector", "connectors", "network"];
705
+ var _excluded$a = ["tokenType", "mainConnector", "connectors", "network"];
702
706
  var constructToken = function constructToken(tokenProps) {
703
707
  var _tokenProps$tokenType = tokenProps.tokenType,
704
708
  tokenType = _tokenProps$tokenType === void 0 ? 'ERC20' : _tokenProps$tokenType,
@@ -708,7 +712,7 @@ var constructToken = function constructToken(tokenProps) {
708
712
  connectorsInput = _tokenProps$connector === void 0 ? [] : _tokenProps$connector,
709
713
  _tokenProps$network = tokenProps.network,
710
714
  network = _tokenProps$network === void 0 ? 1 : _tokenProps$network,
711
- rest = _objectWithoutPropertiesLoose(tokenProps, _excluded$9);
715
+ rest = _objectWithoutPropertiesLoose(tokenProps, _excluded$a);
712
716
  var connectors = connectorsInput.length > 0 ? connectorsInput : [mainConnector];
713
717
  return _extends({
714
718
  tokenType: tokenType,
@@ -906,12 +910,12 @@ var constructGetAdapters = function constructGetAdapters(_ref) {
906
910
  };
907
911
  };
908
912
 
909
- var _excluded$8 = ["options"],
913
+ var _excluded$9 = ["options"],
910
914
  _excluded2$4 = ["excludeContractMethods", "includeContractMethods", "partner", "includeDEXS", "excludeDEXS", "excludePools"];
911
915
  function normalizeRateOptions(_ref) {
912
916
  var _ref$options = _ref.options,
913
917
  options = _ref$options === void 0 ? {} : _ref$options,
914
- restInput = _objectWithoutPropertiesLoose(_ref, _excluded$8);
918
+ restInput = _objectWithoutPropertiesLoose(_ref, _excluded$9);
915
919
  var excludeContractMethods = options.excludeContractMethods,
916
920
  includeContractMethods = options.includeContractMethods,
917
921
  partner = options.partner,
@@ -940,7 +944,7 @@ function normalizeRateOptions(_ref) {
940
944
  return _extends({}, transformed, restOptions, restInput);
941
945
  }
942
946
 
943
- var _excluded$7 = ["srcToken", "destToken"],
947
+ var _excluded$8 = ["srcToken", "destToken"],
944
948
  _excluded2$3 = ["route"];
945
949
  var INVALID_ROUTE = 'Invalid Route';
946
950
  var constructGetRate = function constructGetRate(_ref) {
@@ -957,7 +961,7 @@ var constructGetRate = function constructGetRate(_ref) {
957
961
  return _regeneratorRuntime().wrap(function _callee$(_context) {
958
962
  while (1) switch (_context.prev = _context.next) {
959
963
  case 0:
960
- srcToken = _ref2.srcToken, destToken = _ref2.destToken, rest = _objectWithoutPropertiesLoose(_ref2, _excluded$7);
964
+ srcToken = _ref2.srcToken, destToken = _ref2.destToken, rest = _objectWithoutPropertiesLoose(_ref2, _excluded$8);
961
965
  parsedOptions = normalizeRateOptions(rest); // always pass explicit type to make sure UrlSearchParams are correct
962
966
  search = constructSearchString(_extends({
963
967
  srcToken: srcToken,
@@ -1032,7 +1036,7 @@ var constructGetRate = function constructGetRate(_ref) {
1032
1036
  };
1033
1037
  };
1034
1038
 
1035
- var _excluded$6 = ["srcToken", "destToken", "amount", "route"];
1039
+ var _excluded$7 = ["srcToken", "destToken", "amount", "route"];
1036
1040
  var constructSwapTx = function constructSwapTx(_ref) {
1037
1041
  var _ref$apiURL = _ref.apiURL,
1038
1042
  apiURL = _ref$apiURL === void 0 ? API_URL : _ref$apiURL,
@@ -1047,7 +1051,7 @@ var constructSwapTx = function constructSwapTx(_ref) {
1047
1051
  return _regeneratorRuntime().wrap(function _callee$(_context) {
1048
1052
  while (1) switch (_context.prev = _context.next) {
1049
1053
  case 0:
1050
- srcToken = _ref2.srcToken, destToken = _ref2.destToken, amount = _ref2.amount, route = _ref2.route, rest = _objectWithoutPropertiesLoose(_ref2, _excluded$6);
1054
+ srcToken = _ref2.srcToken, destToken = _ref2.destToken, amount = _ref2.amount, route = _ref2.route, rest = _objectWithoutPropertiesLoose(_ref2, _excluded$7);
1051
1055
  parsedOptions = normalizeRateOptions(rest);
1052
1056
  _route = route == null ? void 0 : route.join('-'); // always pass explicit type to make sure UrlSearchParams are correct
1053
1057
  search = constructSearchString(_extends({
@@ -2259,7 +2263,7 @@ var constructGetLimitOrdersContract = function constructGetLimitOrdersContract(o
2259
2263
  };
2260
2264
  };
2261
2265
 
2262
- var _excluded$5 = ["srcToken", "destToken", "amount", "options"];
2266
+ var _excluded$6 = ["srcToken", "destToken", "amount", "options"];
2263
2267
  var constructBuildLimitOrderTx = function constructBuildLimitOrderTx(_ref) {
2264
2268
  var _ref$apiURL = _ref.apiURL,
2265
2269
  apiURL = _ref$apiURL === void 0 ? API_URL : _ref$apiURL,
@@ -2288,7 +2292,7 @@ var constructBuildLimitOrderTx = function constructBuildLimitOrderTx(_ref) {
2288
2292
  return _regeneratorRuntime().wrap(function _callee$(_context) {
2289
2293
  while (1) switch (_context.prev = _context.next) {
2290
2294
  case 0:
2291
- srcToken = _ref2.srcToken, destToken = _ref2.destToken, amount = _ref2.amount, _ref2$options = _ref2.options, _options = _ref2$options === void 0 ? {} : _ref2$options, rest = _objectWithoutPropertiesLoose(_ref2, _excluded$5);
2295
+ srcToken = _ref2.srcToken, destToken = _ref2.destToken, amount = _ref2.amount, _ref2$options = _ref2.options, _options = _ref2$options === void 0 ? {} : _ref2$options, rest = _objectWithoutPropertiesLoose(_ref2, _excluded$6);
2292
2296
  tsEssentials.assert(orders.length > 0, 'must pass at least 1 order');
2293
2297
  _checkAndParseOrders = checkAndParseOrders$1(orders), totalTakerAmount = _checkAndParseOrders.totalTakerAmount, takerAsset = _checkAndParseOrders.takerAsset;
2294
2298
  tsEssentials.assert(takerAsset.toLowerCase() === destToken.toLowerCase(), 'All orders must have the same takerAsset as destToken');
@@ -2655,7 +2659,7 @@ var constructApproveTokenForNFTOrder = function constructApproveTokenForNFTOrder
2655
2659
  };
2656
2660
  };
2657
2661
 
2658
- var _excluded$4 = ["srcToken", "destToken", "amount", "options"];
2662
+ var _excluded$5 = ["srcToken", "destToken", "amount", "options"];
2659
2663
  var constructBuildNFTOrderTx = function constructBuildNFTOrderTx(_ref) {
2660
2664
  var _ref$apiURL = _ref.apiURL,
2661
2665
  apiURL = _ref$apiURL === void 0 ? API_URL : _ref$apiURL,
@@ -2684,7 +2688,7 @@ var constructBuildNFTOrderTx = function constructBuildNFTOrderTx(_ref) {
2684
2688
  return _regeneratorRuntime().wrap(function _callee$(_context) {
2685
2689
  while (1) switch (_context.prev = _context.next) {
2686
2690
  case 0:
2687
- srcToken = _ref2.srcToken, destToken = _ref2.destToken, amount = _ref2.amount, _ref2$options = _ref2.options, _options = _ref2$options === void 0 ? {} : _ref2$options, rest = _objectWithoutPropertiesLoose(_ref2, _excluded$4);
2691
+ srcToken = _ref2.srcToken, destToken = _ref2.destToken, amount = _ref2.amount, _ref2$options = _ref2.options, _options = _ref2$options === void 0 ? {} : _ref2$options, rest = _objectWithoutPropertiesLoose(_ref2, _excluded$5);
2688
2692
  tsEssentials.assert(orders.length > 0, 'must pass at least 1 order');
2689
2693
  _checkAndParseOrders = checkAndParseOrders(orders), totalTakerAmount = _checkAndParseOrders.totalTakerAmount, takerAsset = _checkAndParseOrders.takerAsset;
2690
2694
  tsEssentials.assert(takerAsset.toLowerCase() === destToken.toLowerCase(), 'All orders must have the same takerAsset as destToken');
@@ -2793,7 +2797,7 @@ function uintToAssetAddress(assetUint) {
2793
2797
  return '0x' + (BigInt(assetUint) & (BigInt(1) << BigInt(160)) - BigInt(1)).toString(16);
2794
2798
  }
2795
2799
 
2796
- var _excluded$3 = ["requestParams"];
2800
+ var _excluded$4 = ["requestParams"];
2797
2801
  var constructFetcher$2 = function constructFetcher(axios, extra) {
2798
2802
  return /*#__PURE__*/function () {
2799
2803
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(params) {
@@ -2802,7 +2806,7 @@ var constructFetcher$2 = function constructFetcher(axios, extra) {
2802
2806
  while (1) switch (_context.prev = _context.next) {
2803
2807
  case 0:
2804
2808
  _context.prev = 0;
2805
- requestParams = params.requestParams, rest = _objectWithoutPropertiesLoose(params, _excluded$3); // adding apiKey to headers if it's provided
2809
+ requestParams = params.requestParams, rest = _objectWithoutPropertiesLoose(params, _excluded$4); // adding apiKey to headers if it's provided
2806
2810
  headers = extra != null && extra.apiKey ? _extends({
2807
2811
  'X-API-KEY': extra.apiKey
2808
2812
  }, rest.headers, requestParams == null ? void 0 : requestParams.headers) : _extends({}, rest.headers, requestParams == null ? void 0 : requestParams.headers);
@@ -2910,7 +2914,7 @@ var constructFetcher$1 = function constructFetcher(fetch, extra) {
2910
2914
  }();
2911
2915
  };
2912
2916
 
2913
- var _excluded$2 = ["block", "gas"],
2917
+ var _excluded$3 = ["block", "gas"],
2914
2918
  _excluded2$2 = ["gas", "from"];
2915
2919
  var constructEthersV5ContractCaller = function constructEthersV5ContractCaller(_ref, account) {
2916
2920
  var providerOrSigner = _ref.ethersProviderOrSigner,
@@ -2926,7 +2930,7 @@ var constructEthersV5ContractCaller = function constructEthersV5ContractCaller(_
2926
2930
  contract = new Contract(address, abi, providerOrSigner);
2927
2931
  assertEthersContractHasMethodsV5(contract, contractMethod);
2928
2932
  // drop keys not in CallOverrides
2929
- block = overrides.block, gas = overrides.gas, restOverrides = _objectWithoutPropertiesLoose(overrides, _excluded$2); // reassign values to keys in CallOverrides
2933
+ block = overrides.block, gas = overrides.gas, restOverrides = _objectWithoutPropertiesLoose(overrides, _excluded$3); // reassign values to keys in CallOverrides
2930
2934
  normalizedOverrides = _extends({}, restOverrides, {
2931
2935
  blockTag: block,
2932
2936
  gasLimit: gas
@@ -3033,7 +3037,7 @@ function assertEthersContractHasMethodsV5(contract) {
3033
3037
  tsEssentials.assert(ethersContractHasMethodsV5.apply(void 0, [contract].concat(methods)), "Contract must have methods: " + methods.join(', '));
3034
3038
  }
3035
3039
 
3036
- var _excluded$1 = ["block", "gas"],
3040
+ var _excluded$2 = ["block", "gas"],
3037
3041
  _excluded2$1 = ["gas", "from"];
3038
3042
  var constructContractCaller$2 = function constructContractCaller(_ref, account) {
3039
3043
  var providerOrSigner = _ref.ethersV6ProviderOrSigner,
@@ -3046,7 +3050,7 @@ var constructContractCaller$2 = function constructContractCaller(_ref, account)
3046
3050
  case 0:
3047
3051
  address = params.address, abi = params.abi, contractMethod = params.contractMethod, args = params.args, overrides = params.overrides;
3048
3052
  contract = new Contract(address, abi, providerOrSigner); // drop keys not in CallOverrides
3049
- block = overrides.block, gas = overrides.gas, restOverrides = _objectWithoutPropertiesLoose(overrides, _excluded$1); // reassign values to keys in CallOverrides
3053
+ block = overrides.block, gas = overrides.gas, restOverrides = _objectWithoutPropertiesLoose(overrides, _excluded$2); // reassign values to keys in CallOverrides
3050
3054
  normalizedOverrides = _extends({}, restOverrides, {
3051
3055
  blockTag: block,
3052
3056
  gasLimit: gas
@@ -3179,7 +3183,7 @@ function findPrimaryType(types) {
3179
3183
  return primaryType;
3180
3184
  }
3181
3185
 
3182
- var _excluded = ["block", "gas", "value"],
3186
+ var _excluded$1 = ["block", "gas", "value"],
3183
3187
  _excluded2 = ["gas", "from", "value", "nonce"];
3184
3188
  var constructContractCaller$1 = function constructContractCaller(web3, account) {
3185
3189
  var staticCall = /*#__PURE__*/function () {
@@ -3195,7 +3199,7 @@ var constructContractCaller$1 = function constructContractCaller(web3, account)
3195
3199
  // FIXME abi types ethers dependant
3196
3200
  address);
3197
3201
  assertWeb3ContractHasMethods(contract, contractMethod);
3198
- gas = overrides.gas, value = overrides.value, restOverrides = _objectWithoutPropertiesLoose(overrides, _excluded);
3202
+ gas = overrides.gas, value = overrides.value, restOverrides = _objectWithoutPropertiesLoose(overrides, _excluded$1);
3199
3203
  normalizedOverrides = _extends({}, restOverrides, {
3200
3204
  gas: gas == null ? void 0 : gas.toString(10),
3201
3205
  value: value == null ? void 0 : value.toString(10)
@@ -3565,62 +3569,6 @@ var constructGetPartnerFee = function constructGetPartnerFee(_ref) {
3565
3569
  };
3566
3570
  };
3567
3571
 
3568
- function composeDeltaOrderPermit(_ref) {
3569
- var permit = _ref.permit,
3570
- nonce = _ref.nonce;
3571
- // Can be empty Permit if allowance is available for srcToken
3572
- if (permit === '0x' || permit === '0x01') {
3573
- // 0x01 is a special permit value that signifies existing Permit2 allowance.
3574
- return permit;
3575
- }
3576
- // In the Contract, specifically for Permit2 transferFrom, we have signature consisting of
3577
- // bytes32(permit2nonce) + bytes64(compacted signature) = bytes96 Permit2 Transfer format
3578
- if (permit.length >= 194) {
3579
- // "0x".length + 96bytes*2 = 194, means permit already concatenated with nonce
3580
- // or it's a different type of Permit all together
3581
- return permit;
3582
- }
3583
- return encodePermit2Transfer(BigInt(nonce), permit);
3584
- }
3585
- function uintTo32ByteArrayBuffer(nonce) {
3586
- // Create a 32-byte ArrayBuffer
3587
- var buffer = new Uint8Array(32);
3588
- // Convert nonce to hex string and pad it to 64 hex characters (32 bytes)
3589
- var nonceHex = nonce.toString(16).padStart(64, '0');
3590
- // Convert the hex string to bytes and fill the ArrayBuffer
3591
- for (var i = 0; i < 32; i++) {
3592
- buffer[i] = parseInt(nonceHex.slice(i * 2, i * 2 + 2), 16);
3593
- }
3594
- return buffer;
3595
- }
3596
- function hexToByteArray(hexString) {
3597
- // Remove "0x" prefix if present
3598
- hexString = hexString.replace(/^0x/, '');
3599
- // Convert hex string to Uint8Array
3600
- var byteArray = new Uint8Array(hexString.length / 2);
3601
- for (var i = 0; i < hexString.length; i += 2) {
3602
- byteArray[i / 2] = parseInt(hexString.slice(i, i + 2), 16);
3603
- }
3604
- return byteArray;
3605
- }
3606
- function encodePermit2Transfer(nonce, signature) {
3607
- // Get 32-byte ArrayBuffer for nonce
3608
- var nonceBuffer = uintTo32ByteArrayBuffer(nonce);
3609
- // Convert signature hex string to Uint8Array (64 bytes)
3610
- var signatureBuffer = hexToByteArray(signature);
3611
- if (signatureBuffer.length !== 64) {
3612
- throw new Error('Signature must be exactly 64 bytes');
3613
- }
3614
- // Concatenate nonceBuffer and signatureBuffer
3615
- var packedBuffer = new Uint8Array(32 + 64);
3616
- packedBuffer.set(nonceBuffer, 0); // Copy nonceBuffer at the start
3617
- packedBuffer.set(signatureBuffer, 32); // Copy signatureBuffer after nonce
3618
- // Convert to hex string for output
3619
- return '0x' + Array.from(packedBuffer).map(function (b) {
3620
- return b.toString(16).padStart(2, '0');
3621
- }).join('');
3622
- }
3623
-
3624
3572
  // Order(address owner,address beneficiary,address srcToken,address destToken,uint256 srcAmount,uint256 destAmount,uint256 deadline,uint256 nonce,bytes permit, bridge Bridge)";
3625
3573
  var SWAP_ORDER_EIP_712_TYPES = {
3626
3574
  Order: [{
@@ -3642,11 +3590,14 @@ var SWAP_ORDER_EIP_712_TYPES = {
3642
3590
  name: 'destAmount',
3643
3591
  type: 'uint256'
3644
3592
  }, {
3645
- name: 'expectedDestAmount',
3593
+ name: 'expectedAmount',
3646
3594
  type: 'uint256'
3647
3595
  }, {
3648
3596
  name: 'deadline',
3649
3597
  type: 'uint256'
3598
+ }, {
3599
+ name: 'kind',
3600
+ type: 'uint8'
3650
3601
  }, {
3651
3602
  name: 'nonce',
3652
3603
  type: 'uint256'
@@ -3656,13 +3607,16 @@ var SWAP_ORDER_EIP_712_TYPES = {
3656
3607
  }, {
3657
3608
  name: 'permit',
3658
3609
  type: 'bytes'
3610
+ }, {
3611
+ name: 'metadata',
3612
+ type: 'bytes'
3659
3613
  }, {
3660
3614
  name: 'bridge',
3661
3615
  type: 'Bridge'
3662
3616
  }],
3663
3617
  Bridge: [{
3664
- name: 'maxRelayerFee',
3665
- type: 'uint256'
3618
+ name: 'protocolSelector',
3619
+ type: 'bytes4'
3666
3620
  }, {
3667
3621
  name: 'destinationChainId',
3668
3622
  type: 'uint256'
@@ -3670,8 +3624,11 @@ var SWAP_ORDER_EIP_712_TYPES = {
3670
3624
  name: 'outputToken',
3671
3625
  type: 'address'
3672
3626
  }, {
3673
- name: 'multiCallHandler',
3674
- type: 'address'
3627
+ name: 'scalingFactor',
3628
+ type: 'int8'
3629
+ }, {
3630
+ name: 'protocolData',
3631
+ type: 'bytes'
3675
3632
  }]
3676
3633
  };
3677
3634
  function produceDeltaOrderTypedData(_ref) {
@@ -3693,7 +3650,7 @@ function produceDeltaOrderTypedData(_ref) {
3693
3650
  };
3694
3651
  return typedData;
3695
3652
  }
3696
- // default deadline = 1 hour from now (may be changed later)
3653
+ // default deadline = 1 hour for now (may be changed later)
3697
3654
  var DELTA_DEFAULT_EXPIRY = 60 * 60; // seconds
3698
3655
  function buildDeltaSignableOrderData(_ref2) {
3699
3656
  var owner = _ref2.owner,
@@ -3703,13 +3660,16 @@ function buildDeltaSignableOrderData(_ref2) {
3703
3660
  destToken = _ref2.destToken,
3704
3661
  srcAmount = _ref2.srcAmount,
3705
3662
  destAmount = _ref2.destAmount,
3706
- expectedDestAmount = _ref2.expectedDestAmount,
3663
+ expectedAmount = _ref2.expectedAmount,
3707
3664
  _ref2$deadline = _ref2.deadline,
3708
3665
  deadline = _ref2$deadline === void 0 ? Math.floor(Date.now() / 1000 + DELTA_DEFAULT_EXPIRY) : _ref2$deadline,
3709
3666
  _ref2$nonce = _ref2.nonce,
3710
3667
  nonce = _ref2$nonce === void 0 ? Date.now().toString(10) : _ref2$nonce,
3711
3668
  _ref2$permit = _ref2.permit,
3712
3669
  permit = _ref2$permit === void 0 ? '0x' : _ref2$permit,
3670
+ kind = _ref2.kind,
3671
+ _ref2$metadata = _ref2.metadata,
3672
+ metadata = _ref2$metadata === void 0 ? '0x' : _ref2$metadata,
3713
3673
  partnerAddress = _ref2.partnerAddress,
3714
3674
  partnerFeeBps = _ref2.partnerFeeBps,
3715
3675
  _ref2$partnerTakesSur = _ref2.partnerTakesSurplus,
@@ -3724,19 +3684,18 @@ function buildDeltaSignableOrderData(_ref2) {
3724
3684
  destToken: destToken,
3725
3685
  srcAmount: srcAmount,
3726
3686
  destAmount: destAmount,
3727
- expectedDestAmount: expectedDestAmount,
3687
+ expectedAmount: expectedAmount,
3728
3688
  deadline: deadline,
3729
3689
  nonce: nonce,
3730
- permit: composeDeltaOrderPermit({
3731
- permit: permit,
3732
- nonce: nonce
3733
- }),
3690
+ permit: permit,
3734
3691
  partnerAndFee: producePartnerAndFee({
3735
3692
  partnerFeeBps: partnerFeeBps,
3736
3693
  partnerAddress: partnerAddress,
3737
3694
  partnerTakesSurplus: partnerTakesSurplus
3738
3695
  }),
3739
- bridge: bridge
3696
+ bridge: bridge,
3697
+ kind: kind,
3698
+ metadata: metadata
3740
3699
  };
3741
3700
  return produceDeltaOrderTypedData({
3742
3701
  orderInput: orderInput,
@@ -3754,345 +3713,14 @@ function producePartnerAndFee(_ref3) {
3754
3713
  return partnerAndFee.toString(10);
3755
3714
  }
3756
3715
 
3757
- var constructGetMulticallHandlers = function constructGetMulticallHandlers(_ref) {
3758
- var _ref$apiURL = _ref.apiURL,
3759
- apiURL = _ref$apiURL === void 0 ? API_URL : _ref$apiURL,
3760
- fetcher = _ref.fetcher;
3761
- var multicallHandlersUrl = apiURL + "/delta/prices/multicall-handlers";
3762
- var _getMulticallHandlers = /*#__PURE__*/function () {
3763
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(requestParams) {
3764
- var data;
3765
- return _regeneratorRuntime().wrap(function _callee$(_context) {
3766
- while (1) switch (_context.prev = _context.next) {
3767
- case 0:
3768
- _context.next = 2;
3769
- return fetcher({
3770
- url: multicallHandlersUrl,
3771
- method: 'GET',
3772
- requestParams: requestParams
3773
- });
3774
- case 2:
3775
- data = _context.sent;
3776
- return _context.abrupt("return", data);
3777
- case 4:
3778
- case "end":
3779
- return _context.stop();
3780
- }
3781
- }, _callee);
3782
- }));
3783
- return function _getMulticallHandlers(_x) {
3784
- return _ref2.apply(this, arguments);
3785
- };
3786
- }();
3787
- // cached for the same instance of `{getMulticallHandlers} = constructGetMulticallHandlers()`
3788
- // so should persist across same apiUrl & network (and response is even network agnostic)
3789
- var getMulticallHandlers = runOnceAndCache(_getMulticallHandlers);
3790
- return {
3791
- getMulticallHandlers: getMulticallHandlers
3792
- };
3793
- };
3794
-
3795
- var ACROSS_WETH_ADDRESSES_MAP = {
3796
- // Mainnet
3797
- 1: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
3798
- // Sepolia
3799
- 11155111: '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14',
3800
- // Base
3801
- 8453: '0x4200000000000000000000000000000000000006',
3802
- // Base Sepolia
3803
- 84532: '0x4200000000000000000000000000000000000006',
3804
- // Optimism
3805
- 10: '0x4200000000000000000000000000000000000006',
3806
- // Optimism Sepolia
3807
- 11155420: '0x4200000000000000000000000000000000000006',
3808
- // Polygon
3809
- 137: '0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619',
3810
- // Polygon Amoy
3811
- 80002: '0x52eF3d68BaB452a294342DC3e5f464d7f610f72E',
3812
- // Aleph Zero
3813
- 41455: '0xB3f0eE446723f4258862D949B4c9688e7e7d35d3',
3814
- // Arbitrum
3815
- 42161: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
3816
- // Arbitrum Sepolia
3817
- 421614: '0x980B62Da83eFf3D4576C647993b0c1D7faf17c73',
3818
- // Boba
3819
- 288: '0xDeadDeAddeAddEAddeadDEaDDEAdDeaDDeAD0000',
3820
- // Blast
3821
- 81457: '0x4300000000000000000000000000000000000004',
3822
- // Blast Sepolia
3823
- 168587773: '0x4200000000000000000000000000000000000023',
3824
- // Ink
3825
- 57073: '0x4200000000000000000000000000000000000006',
3826
- // Ink Sepolia
3827
- 763373: '0x4200000000000000000000000000000000000006',
3828
- // Lens
3829
- 232: '0xE5ecd226b3032910CEaa43ba92EE8232f8237553',
3830
- // Lens Sepolia
3831
- 37111: '0xaA91D645D7a6C1aeaa5988e0547267B77d33fe16',
3832
- // Linea
3833
- 59144: '0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f',
3834
- // Lisk
3835
- 1135: '0x4200000000000000000000000000000000000006',
3836
- // Lisk Sepolia
3837
- 4202: '0x4200000000000000000000000000000000000006',
3838
- // Mode
3839
- 34443: '0x4200000000000000000000000000000000000006',
3840
- // Mode Sepolia
3841
- 919: '0x4200000000000000000000000000000000000006',
3842
- // Redstone
3843
- 690: '0x4200000000000000000000000000000000000006',
3844
- // Scroll
3845
- 534352: '0x5300000000000000000000000000000000000004',
3846
- // Scroll Sepolia
3847
- 534351: '0x5300000000000000000000000000000000000004',
3848
- // Soneium
3849
- 1868: '0x4200000000000000000000000000000000000006',
3850
- // Tatara
3851
- 129399: '0x17B8Ee96E3bcB3b04b3e8334de4524520C51caB4',
3852
- // Unichain
3853
- 130: '0x4200000000000000000000000000000000000006',
3854
- // Unichain Sepolia
3855
- 1301: '0x4200000000000000000000000000000000000006',
3856
- // World Chain
3857
- 480: '0x4200000000000000000000000000000000000006',
3858
- // ZK Sync
3859
- 324: '0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91',
3860
- // ZK Sync Sepolia
3861
- 300: '0x2D6Db36B3117802E996f13073A08A685D3FeF7eD',
3862
- // Zora
3863
- 7777777: '0x4200000000000000000000000000000000000006'
3864
- };
3865
- function isAcrossWETH(tokenAddress, chainId) {
3866
- var _ACROSS_WETH_ADDRESSE;
3867
- return ((_ACROSS_WETH_ADDRESSE = ACROSS_WETH_ADDRESSES_MAP[chainId]) == null ? void 0 : _ACROSS_WETH_ADDRESSE.toLowerCase()) === tokenAddress.toLowerCase();
3868
- }
3869
- var ETH_ADDRESS = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';
3870
- var ETH_ADDRESS_LOWERCASE = /*#__PURE__*/ETH_ADDRESS.toLowerCase();
3871
- function isETHaddress(tokenAddress) {
3872
- return tokenAddress.toLowerCase() === ETH_ADDRESS_LOWERCASE;
3873
- }
3874
- function getDeltaBridgeAndDestToken(_x) {
3875
- return _getDeltaBridgeAndDestToken.apply(this, arguments);
3876
- }
3877
- function _getDeltaBridgeAndDestToken() {
3878
- _getDeltaBridgeAndDestToken = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref) {
3879
- var destTokenDestChain, destChainId, destTokenSrcChain, srcChainId, bridgeFee, beneficiaryType, getMulticallHandler, WETH_SRC_CHAIN, WETH_DEST_CHAIN, _bridge, _bridge2, _bridge3, _bridge4, _bridge5, bridge;
3880
- return _regeneratorRuntime().wrap(function _callee$(_context) {
3881
- while (1) switch (_context.prev = _context.next) {
3882
- case 0:
3883
- destTokenDestChain = _ref.destTokenDestChain, destChainId = _ref.destChainId, destTokenSrcChain = _ref.destTokenSrcChain, srcChainId = _ref.srcChainId, bridgeFee = _ref.bridgeFee, beneficiaryType = _ref.beneficiaryType, getMulticallHandler = _ref.getMulticallHandler;
3884
- tsEssentials.assert(beneficiaryType === 'EOA' || beneficiaryType === 'SmartContract', 'beneficiaryType must be EOA or SmartContract');
3885
- WETH_SRC_CHAIN = ACROSS_WETH_ADDRESSES_MAP[srcChainId];
3886
- WETH_DEST_CHAIN = ACROSS_WETH_ADDRESSES_MAP[destChainId];
3887
- if (!(!WETH_SRC_CHAIN || !WETH_DEST_CHAIN)) {
3888
- _context.next = 7;
3889
- break;
3890
- }
3891
- // this should never happen as we only expect crosschain Delta Orders for supported chains
3892
- _bridge = {
3893
- maxRelayerFee: bridgeFee,
3894
- destinationChainId: destChainId,
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;
3908
- }
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
- if (!(beneficiaryType === 'EOA' && isAcrossWETH(destTokenDestChain, destChainId))) {
3929
- _context.next = 19;
3930
- break;
3931
- }
3932
- _context.t0 = bridgeFee;
3933
- _context.t1 = destChainId;
3934
- _context.t2 = WETH_DEST_CHAIN;
3935
- _context.next = 16;
3936
- return getMulticallHandler(destChainId);
3937
- case 16:
3938
- _context.t3 = _context.sent;
3939
- _bridge3 = {
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:
3952
- if (!(beneficiaryType === 'SmartContract' && isETHaddress(destTokenDestChain))) {
3953
- _context.next = 28;
3954
- break;
3955
- }
3956
- _context.t4 = bridgeFee;
3957
- _context.t5 = destChainId;
3958
- _context.t6 = WETH_DEST_CHAIN;
3959
- _context.next = 25;
3960
- return getMulticallHandler(destChainId);
3961
- case 25:
3962
- _context.t7 = _context.sent;
3963
- _bridge4 = {
3964
- maxRelayerFee: _context.t4,
3965
- destinationChainId: _context.t5,
3966
- outputToken: _context.t6,
3967
- multiCallHandler: _context.t7
3968
- };
3969
- return _context.abrupt("return", {
3970
- bridge: _bridge4,
3971
- orderChanges: {
3972
- destToken: ETH_ADDRESS
3973
- }
3974
- });
3975
- case 28:
3976
- if (!(beneficiaryType === 'SmartContract' && isAcrossWETH(destTokenDestChain, destChainId))) {
3977
- _context.next = 31;
3978
- break;
3979
- }
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
- bridge = {
4000
- maxRelayerFee: bridgeFee,
4001
- destinationChainId: destChainId,
4002
- outputToken: destTokenDestChain,
4003
- multiCallHandler: ZERO_ADDRESS
4004
- };
4005
- return _context.abrupt("return", {
4006
- bridge: bridge,
4007
- orderChanges: {
4008
- destToken: destTokenSrcChain
4009
- }
4010
- });
4011
- case 33:
4012
- case "end":
4013
- return _context.stop();
4014
- }
4015
- }, _callee);
4016
- }));
4017
- return _getDeltaBridgeAndDestToken.apply(this, arguments);
4018
- }
4019
-
4020
- var constructBuildCrosschainOrderBridge = function constructBuildCrosschainOrderBridge(options) {
4021
- var chainId = options.chainId;
4022
- // cached internally for `multicall` contracts
4023
- var _constructGetMultical = constructGetMulticallHandlers(options),
4024
- getMulticallHandlers = _constructGetMultical.getMulticallHandlers;
4025
- var buildCrosschainOrderBridge = /*#__PURE__*/function () {
4026
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(_ref, requestParams) {
4027
- var destToken, destChainId, beneficiaryType, deltaPrice, getMulticallHandler, _yield$getDeltaBridge, bridge, orderChanges;
4028
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
4029
- while (1) switch (_context2.prev = _context2.next) {
4030
- case 0:
4031
- destToken = _ref.destToken, destChainId = _ref.destChainId, beneficiaryType = _ref.beneficiaryType, deltaPrice = _ref.deltaPrice;
4032
- tsEssentials.assert(chainId !== destChainId, '`destChainId` must be different from `chainId` for crosschain Order.bridge');
4033
- getMulticallHandler = /*#__PURE__*/function () {
4034
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(chainId) {
4035
- var multicallHandlersMap, multicallHandler;
4036
- return _regeneratorRuntime().wrap(function _callee$(_context) {
4037
- while (1) switch (_context.prev = _context.next) {
4038
- case 0:
4039
- _context.next = 2;
4040
- return getMulticallHandlers(requestParams);
4041
- case 2:
4042
- multicallHandlersMap = _context.sent;
4043
- multicallHandler = multicallHandlersMap[chainId];
4044
- tsEssentials.assert(multicallHandler, "Multicall handler not found for chain " + chainId);
4045
- return _context.abrupt("return", multicallHandler);
4046
- case 6:
4047
- case "end":
4048
- return _context.stop();
4049
- }
4050
- }, _callee);
4051
- }));
4052
- return function getMulticallHandler(_x3) {
4053
- return _ref3.apply(this, arguments);
4054
- };
4055
- }();
4056
- _context2.next = 5;
4057
- return getDeltaBridgeAndDestToken({
4058
- destTokenDestChain: destToken,
4059
- destChainId: destChainId,
4060
- destTokenSrcChain: deltaPrice.destToken,
4061
- srcChainId: chainId,
4062
- bridgeFee: deltaPrice.bridgeFee,
4063
- beneficiaryType: beneficiaryType,
4064
- getMulticallHandler: getMulticallHandler
4065
- });
4066
- case 5:
4067
- _yield$getDeltaBridge = _context2.sent;
4068
- bridge = _yield$getDeltaBridge.bridge;
4069
- orderChanges = _yield$getDeltaBridge.orderChanges;
4070
- return _context2.abrupt("return", {
4071
- bridge: bridge,
4072
- orderChanges: orderChanges
4073
- });
4074
- case 9:
4075
- case "end":
4076
- return _context2.stop();
4077
- }
4078
- }, _callee2);
4079
- }));
4080
- return function buildCrosschainOrderBridge(_x, _x2) {
4081
- return _ref2.apply(this, arguments);
4082
- };
4083
- }();
4084
- return {
4085
- buildCrosschainOrderBridge: buildCrosschainOrderBridge
4086
- };
4087
- };
3716
+ var _SwapSideToOrderKind;
3717
+ var OrderKind;
3718
+ (function (OrderKind) {
3719
+ OrderKind[OrderKind["Sell"] = 0] = "Sell";
3720
+ OrderKind[OrderKind["Buy"] = 1] = "Buy";
3721
+ })(OrderKind || (OrderKind = {}));
3722
+ var SwapSideToOrderKind = (_SwapSideToOrderKind = {}, _SwapSideToOrderKind[core.SwapSide.SELL] = OrderKind.Sell, _SwapSideToOrderKind[core.SwapSide.BUY] = OrderKind.Buy, _SwapSideToOrderKind);
4088
3723
 
4089
- // for same-chain Orders, all 0 params
4090
- var DEFAULT_BRIDGE = {
4091
- maxRelayerFee: '0',
4092
- destinationChainId: 0,
4093
- outputToken: ZERO_ADDRESS,
4094
- multiCallHandler: ZERO_ADDRESS
4095
- };
4096
3724
  var constructBuildDeltaOrder = function constructBuildDeltaOrder(options) {
4097
3725
  var chainId = options.chainId;
4098
3726
  // cached internally
@@ -4101,12 +3729,10 @@ var constructBuildDeltaOrder = function constructBuildDeltaOrder(options) {
4101
3729
  // cached internally for `partner`
4102
3730
  var _constructGetPartnerF = constructGetPartnerFee(options),
4103
3731
  getPartnerFee = _constructGetPartnerF.getPartnerFee;
4104
- var _constructBuildCrossc = constructBuildCrosschainOrderBridge(options),
4105
- buildCrosschainOrderBridge = _constructBuildCrossc.buildCrosschainOrderBridge;
4106
3732
  var buildDeltaOrder = /*#__PURE__*/function () {
4107
3733
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(options, requestParams) {
4108
- var _options$partnerFeeBp, _partialChangedOrder$, _partialChangedOrder, _options$nonce;
4109
- var ParaswapDelta, partnerAddress, partnerFeeBps, partnerTakesSurplus, feeOrTakeSurplusSupplied, _partnerAddress, _partnerFeeBps, _partnerTakesSurplus, partner, partnerFeeResponse, bridge, partialChangedOrder, _options$beneficiaryT, deltaPrice, _yield$buildCrosschai, constructedBridge, orderChanges, input;
3734
+ var _options$partnerFeeBp, _options$side, _options$nonce;
3735
+ var ParaswapDelta, partnerAddress, partnerFeeBps, partnerTakesSurplus, feeOrTakeSurplusSupplied, _partnerAddress, _partnerFeeBps, _partnerTakesSurplus, partner, partnerFeeResponse, swapSide, expectedAmount, input;
4110
3736
  return _regeneratorRuntime().wrap(function _callee$(_context) {
4111
3737
  while (1) switch (_context.prev = _context.next) {
4112
3738
  case 0:
@@ -4142,64 +3768,32 @@ var constructBuildDeltaOrder = function constructBuildDeltaOrder(options) {
4142
3768
  partnerFeeBps = (_partnerFeeBps = partnerFeeBps) != null ? _partnerFeeBps : partnerFeeResponse.partnerFee;
4143
3769
  partnerTakesSurplus = (_partnerTakesSurplus = partnerTakesSurplus) != null ? _partnerTakesSurplus : partnerFeeResponse.takeSurplus;
4144
3770
  case 17:
4145
- ////// Bridge logic //////
4146
- // Bridge is necessary for Crosschain Delta Orders
4147
- bridge = options.bridge;
4148
- partialChangedOrder = null; // give preference to user-provided bridge
4149
- if (bridge) {
4150
- _context.next = 33;
4151
- break;
4152
- }
4153
- if (!(options.destChainId && chainId !== options.destChainId)) {
4154
- _context.next = 32;
4155
- break;
4156
- }
4157
- // crosschain Delta Order
4158
- deltaPrice = options.deltaPrice;
4159
- tsEssentials.assert(deltaPrice.bridgeFee, '`bridgeFee` is required in `deltaPrice` for crosschain Delta Orders');
4160
- _context.next = 25;
4161
- return buildCrosschainOrderBridge({
4162
- destToken: options.destToken,
4163
- destChainId: options.destChainId,
4164
- beneficiaryType: (_options$beneficiaryT = options.beneficiaryType) != null ? _options$beneficiaryT : 'EOA',
4165
- deltaPrice: {
4166
- bridgeFee: deltaPrice.bridgeFee,
4167
- destToken: deltaPrice.destToken
4168
- }
4169
- }, requestParams);
4170
- case 25:
4171
- _yield$buildCrosschai = _context.sent;
4172
- constructedBridge = _yield$buildCrosschai.bridge;
4173
- orderChanges = _yield$buildCrosschai.orderChanges;
4174
- bridge = constructedBridge;
4175
- partialChangedOrder = orderChanges;
4176
- _context.next = 33;
4177
- break;
4178
- case 32:
4179
- // 0-values bridge for same-chain Orders
4180
- bridge = DEFAULT_BRIDGE;
4181
- case 33:
3771
+ swapSide = (_options$side = options.side) != null ? _options$side : core.SwapSide.SELL;
3772
+ expectedAmount = swapSide === core.SwapSide.SELL ? options.deltaPrice.destAmount : options.deltaPrice.srcAmount;
4182
3773
  input = {
4183
3774
  owner: options.owner,
4184
3775
  beneficiary: options.beneficiary,
4185
3776
  srcToken: options.srcToken,
4186
- // for some cases of WETH<->ETH crosschain swaps, the destToken is to WETH or ETH
4187
- destToken: (_partialChangedOrder$ = (_partialChangedOrder = partialChangedOrder) == null ? void 0 : _partialChangedOrder.destToken) != null ? _partialChangedOrder$ : options.destToken,
3777
+ // for some cases of WETH->ETH crosschain swaps, the destToken is changed to WETH or ETH,
3778
+ // this is already reflected in deltaPrice
3779
+ destToken: options.deltaPrice.destToken,
4188
3780
  srcAmount: options.srcAmount,
4189
3781
  destAmount: options.destAmount,
4190
- expectedDestAmount: options.deltaPrice.destAmount,
3782
+ expectedAmount: expectedAmount,
4191
3783
  deadline: options.deadline,
4192
3784
  nonce: (_options$nonce = options.nonce) == null ? void 0 : _options$nonce.toString(10),
4193
3785
  permit: options.permit,
3786
+ kind: SwapSideToOrderKind[swapSide],
3787
+ metadata: options.metadata,
4194
3788
  chainId: chainId,
4195
3789
  paraswapDeltaAddress: ParaswapDelta,
4196
3790
  partnerAddress: partnerAddress,
4197
3791
  partnerTakesSurplus: partnerTakesSurplus,
4198
3792
  partnerFeeBps: partnerFeeBps,
4199
- bridge: bridge
3793
+ bridge: options.deltaPrice.bridge // ZERO_BRIDGE for same-chain Orders
4200
3794
  };
4201
3795
  return _context.abrupt("return", buildDeltaSignableOrderData(input));
4202
- case 35:
3796
+ case 21:
4203
3797
  case "end":
4204
3798
  return _context.stop();
4205
3799
  }
@@ -4214,6 +3808,62 @@ var constructBuildDeltaOrder = function constructBuildDeltaOrder(options) {
4214
3808
  };
4215
3809
  };
4216
3810
 
3811
+ var constructBuildCrosschainOrderBridge = function constructBuildCrosschainOrderBridge(options) {
3812
+ var chainId = options.chainId;
3813
+ // cached internally for `multicall` contracts
3814
+ // const { getMulticallHandlers } = constructGetMulticallHandlers(options);
3815
+ var buildCrosschainOrderBridge = /*#__PURE__*/function () {
3816
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref, requestParams) {
3817
+ var destChainId, deltaPrice, bridge;
3818
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
3819
+ while (1) switch (_context.prev = _context.next) {
3820
+ case 0:
3821
+ destChainId = _ref.destChainId, deltaPrice = _ref.deltaPrice;
3822
+ tsEssentials.assert(chainId !== deltaPrice.bridge.destinationChainId, '`deltaPrice.bridge.destinationChainId` must be different from `chainId` for crosschain Order.bridge');
3823
+ tsEssentials.assert(destChainId === deltaPrice.bridge.destinationChainId, '`destChainId` must match `deltaPrice.bridge.destinationChainId` for crosschain Order.bridge');
3824
+ /* const getMulticallHandler = async (chainId: number) => {
3825
+ const multicallHandlersMap = await getMulticallHandlers(requestParams);
3826
+ const multicallHandler = multicallHandlersMap[chainId];
3827
+ assert(
3828
+ multicallHandler,
3829
+ `Multicall handler not found for chain ${chainId}`
3830
+ );
3831
+ return multicallHandler;
3832
+ };
3833
+ const { bridge } = await getDeltaBridge({
3834
+ destTokenDestChain: destToken,
3835
+ destChainId,
3836
+ bridgeFee: deltaPrice.bridgeFee,
3837
+ bridgeOutputToken: deltaPrice.bridge.outputToken,
3838
+ beneficiaryType,
3839
+ getMulticallHandler,
3840
+ }); */
3841
+ // @TODO remove the whole buildCrosschainOrderBridge() when API provides BridgePrice.bridge = whole Bridge object
3842
+ bridge = {
3843
+ protocolSelector: '0x00000000',
3844
+ scalingFactor: 0,
3845
+ protocolData: '0x',
3846
+ destinationChainId: deltaPrice.bridge.destinationChainId,
3847
+ outputToken: deltaPrice.bridge.outputToken
3848
+ };
3849
+ return _context.abrupt("return", {
3850
+ bridge: bridge
3851
+ });
3852
+ case 5:
3853
+ case "end":
3854
+ return _context.stop();
3855
+ }
3856
+ }, _callee);
3857
+ }));
3858
+ return function buildCrosschainOrderBridge(_x, _x2) {
3859
+ return _ref2.apply(this, arguments);
3860
+ };
3861
+ }();
3862
+ return {
3863
+ buildCrosschainOrderBridge: buildCrosschainOrderBridge
3864
+ };
3865
+ };
3866
+
4217
3867
  var constructPostDeltaOrder = function constructPostDeltaOrder(_ref) {
4218
3868
  var _ref$apiURL = _ref.apiURL,
4219
3869
  apiURL = _ref$apiURL === void 0 ? API_URL : _ref$apiURL,
@@ -4243,12 +3893,14 @@ function sanitizeDeltaOrderData(_ref) {
4243
3893
  destToken = _ref.destToken,
4244
3894
  srcAmount = _ref.srcAmount,
4245
3895
  destAmount = _ref.destAmount,
4246
- expectedDestAmount = _ref.expectedDestAmount,
3896
+ expectedAmount = _ref.expectedAmount,
4247
3897
  deadline = _ref.deadline,
4248
3898
  nonce = _ref.nonce,
4249
3899
  permit = _ref.permit,
4250
3900
  partnerAndFee = _ref.partnerAndFee,
4251
- bridge = _ref.bridge;
3901
+ bridge = _ref.bridge,
3902
+ kind = _ref.kind,
3903
+ metadata = _ref.metadata;
4252
3904
  return {
4253
3905
  owner: owner,
4254
3906
  beneficiary: beneficiary,
@@ -4256,12 +3908,14 @@ function sanitizeDeltaOrderData(_ref) {
4256
3908
  destToken: destToken,
4257
3909
  srcAmount: srcAmount,
4258
3910
  destAmount: destAmount,
4259
- expectedDestAmount: expectedDestAmount,
3911
+ expectedAmount: expectedAmount,
4260
3912
  deadline: deadline,
4261
3913
  nonce: nonce,
4262
3914
  permit: permit,
4263
3915
  partnerAndFee: partnerAndFee,
4264
- bridge: bridge
3916
+ bridge: bridge,
3917
+ kind: kind,
3918
+ metadata: metadata
4265
3919
  };
4266
3920
  }
4267
3921
 
@@ -4298,6 +3952,7 @@ var constructSignDeltaOrder = function constructSignDeltaOrder(options) {
4298
3952
  };
4299
3953
  };
4300
3954
 
3955
+ var _excluded = ["includeAgents", "excludeAgents"];
4301
3956
  var constructGetDeltaPrice = function constructGetDeltaPrice(_ref) {
4302
3957
  var _ref$apiURL = _ref.apiURL,
4303
3958
  apiURL = _ref$apiURL === void 0 ? API_URL : _ref$apiURL,
@@ -4309,25 +3964,31 @@ var constructGetDeltaPrice = function constructGetDeltaPrice(_ref) {
4309
3964
  }
4310
3965
  function _getDeltaPrice() {
4311
3966
  _getDeltaPrice = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(options, requestParams) {
4312
- var search, fetchURL, data;
3967
+ var _options$side;
3968
+ var includeAgents, excludeAgents, rest, includeAgentsString, excludeAgentsString, search, fetchURL, data;
4313
3969
  return _regeneratorRuntime().wrap(function _callee$(_context) {
4314
3970
  while (1) switch (_context.prev = _context.next) {
4315
3971
  case 0:
4316
- search = constructSearchString(_extends({}, options, {
3972
+ includeAgents = options.includeAgents, excludeAgents = options.excludeAgents, rest = _objectWithoutPropertiesLoose(options, _excluded);
3973
+ includeAgentsString = includeAgents ? includeAgents.join(',') : undefined;
3974
+ excludeAgentsString = excludeAgents ? excludeAgents.join(',') : undefined;
3975
+ search = constructSearchString(_extends({}, rest, {
4317
3976
  chainId: chainId,
4318
- side: core.SwapSide.SELL // so far SELL side only
3977
+ side: (_options$side = options.side) != null ? _options$side : core.SwapSide.SELL,
3978
+ includeAgents: includeAgentsString,
3979
+ excludeAgents: excludeAgentsString
4319
3980
  }));
4320
3981
  fetchURL = pricesUrl + "/" + search;
4321
- _context.next = 4;
3982
+ _context.next = 7;
4322
3983
  return fetcher({
4323
3984
  url: fetchURL,
4324
3985
  method: 'GET',
4325
3986
  requestParams: requestParams
4326
3987
  });
4327
- case 4:
3988
+ case 7:
4328
3989
  data = _context.sent;
4329
3990
  return _context.abrupt("return", data.price);
4330
- case 6:
3991
+ case 9:
4331
3992
  case "end":
4332
3993
  return _context.stop();
4333
3994
  }
@@ -4343,7 +4004,8 @@ var constructGetDeltaPrice = function constructGetDeltaPrice(_ref) {
4343
4004
  var constructGetDeltaOrders = function constructGetDeltaOrders(_ref) {
4344
4005
  var _ref$apiURL = _ref.apiURL,
4345
4006
  apiURL = _ref$apiURL === void 0 ? API_URL : _ref$apiURL,
4346
- fetcher = _ref.fetcher;
4007
+ fetcher = _ref.fetcher,
4008
+ chainId = _ref.chainId;
4347
4009
  var baseUrl = apiURL + "/delta/orders";
4348
4010
  var getDeltaOrderById = /*#__PURE__*/function () {
4349
4011
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(orderId, requestParams) {
@@ -4406,7 +4068,9 @@ var constructGetDeltaOrders = function constructGetDeltaOrders(_ref) {
4406
4068
  search = constructSearchString({
4407
4069
  userAddress: options.userAddress,
4408
4070
  page: options.page,
4409
- limit: options.limit
4071
+ limit: options.limit,
4072
+ chainId: options.chainId,
4073
+ type: options.type
4410
4074
  });
4411
4075
  fetchURL = "" + baseUrl + search;
4412
4076
  _context3.next = 4;
@@ -4428,10 +4092,38 @@ var constructGetDeltaOrders = function constructGetDeltaOrders(_ref) {
4428
4092
  return _ref4.apply(this, arguments);
4429
4093
  };
4430
4094
  }();
4095
+ var getRequiredBalanceForDeltaLimitOrders = /*#__PURE__*/function () {
4096
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(userParams, requestParams) {
4097
+ var userURL, fetchURL, response;
4098
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
4099
+ while (1) switch (_context4.prev = _context4.next) {
4100
+ case 0:
4101
+ userURL = baseUrl + "/fillablebalance/" + chainId + "/" + userParams.userAddress;
4102
+ fetchURL = userParams.tokenAddress ? userURL + "/" + userParams.tokenAddress : userURL;
4103
+ _context4.next = 4;
4104
+ return fetcher({
4105
+ url: fetchURL,
4106
+ method: 'GET',
4107
+ requestParams: requestParams
4108
+ });
4109
+ case 4:
4110
+ response = _context4.sent;
4111
+ return _context4.abrupt("return", response);
4112
+ case 6:
4113
+ case "end":
4114
+ return _context4.stop();
4115
+ }
4116
+ }, _callee4);
4117
+ }));
4118
+ return function getRequiredBalanceForDeltaLimitOrders(_x7, _x8) {
4119
+ return _ref5.apply(this, arguments);
4120
+ };
4121
+ }();
4431
4122
  return {
4432
4123
  getDeltaOrderById: getDeltaOrderById,
4433
4124
  getDeltaOrderByHash: getDeltaOrderByHash,
4434
- getDeltaOrders: getDeltaOrders
4125
+ getDeltaOrders: getDeltaOrders,
4126
+ getRequiredBalanceForDeltaLimitOrders: getRequiredBalanceForDeltaLimitOrders
4435
4127
  };
4436
4128
  };
4437
4129
 
@@ -4510,6 +4202,44 @@ var constructGetBridgeInfo = function constructGetBridgeInfo(_ref) {
4510
4202
  };
4511
4203
  };
4512
4204
 
4205
+ var constructGetMulticallHandlers = function constructGetMulticallHandlers(_ref) {
4206
+ var _ref$apiURL = _ref.apiURL,
4207
+ apiURL = _ref$apiURL === void 0 ? API_URL : _ref$apiURL,
4208
+ fetcher = _ref.fetcher;
4209
+ var multicallHandlersUrl = apiURL + "/delta/prices/multicall-handlers";
4210
+ var _getMulticallHandlers = /*#__PURE__*/function () {
4211
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(requestParams) {
4212
+ var data;
4213
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
4214
+ while (1) switch (_context.prev = _context.next) {
4215
+ case 0:
4216
+ _context.next = 2;
4217
+ return fetcher({
4218
+ url: multicallHandlersUrl,
4219
+ method: 'GET',
4220
+ requestParams: requestParams
4221
+ });
4222
+ case 2:
4223
+ data = _context.sent;
4224
+ return _context.abrupt("return", data);
4225
+ case 4:
4226
+ case "end":
4227
+ return _context.stop();
4228
+ }
4229
+ }, _callee);
4230
+ }));
4231
+ return function _getMulticallHandlers(_x) {
4232
+ return _ref2.apply(this, arguments);
4233
+ };
4234
+ }();
4235
+ // cached for the same instance of `{getMulticallHandlers} = constructGetMulticallHandlers()`
4236
+ // so should persist across same apiUrl & network (and response is even network agnostic)
4237
+ var getMulticallHandlers = runOnceAndCache(_getMulticallHandlers);
4238
+ return {
4239
+ getMulticallHandlers: getMulticallHandlers
4240
+ };
4241
+ };
4242
+
4513
4243
  var constructIsTokenSupportedInDelta = function constructIsTokenSupportedInDelta(_ref) {
4514
4244
  var _ref$apiURL = _ref.apiURL,
4515
4245
  apiURL = _ref$apiURL === void 0 ? API_URL : _ref$apiURL,
@@ -4562,13 +4292,14 @@ var constructGetQuote = function constructGetQuote(_ref) {
4562
4292
  }
4563
4293
  function _getQuote() {
4564
4294
  _getQuote = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(options, requestParams) {
4295
+ var _options$side;
4565
4296
  var search, fetchURL, data;
4566
4297
  return _regeneratorRuntime().wrap(function _callee$(_context) {
4567
4298
  while (1) switch (_context.prev = _context.next) {
4568
4299
  case 0:
4569
4300
  search = constructSearchString(_extends({}, options, {
4570
- chainId: chainId
4571
- // side: SwapSide.SELL, // so far SELL side only for Delta
4301
+ chainId: chainId,
4302
+ side: (_options$side = options.side) != null ? _options$side : core.SwapSide.SELL
4572
4303
  }));
4573
4304
  fetchURL = pricesUrl + "/" + search;
4574
4305
  _context.next = 4;
@@ -4593,6 +4324,143 @@ var constructGetQuote = function constructGetQuote(_ref) {
4593
4324
  };
4594
4325
  };
4595
4326
 
4327
+ var ORDER_CANCELLATIONS_EIP_712_TYPES = {
4328
+ OrderCancellations: [{
4329
+ name: 'orderIds',
4330
+ type: 'string[]'
4331
+ }]
4332
+ };
4333
+ function buildCancelDeltaOrderSignableData(_ref) {
4334
+ var orderInput = _ref.orderInput,
4335
+ chainId = _ref.chainId,
4336
+ paraswapDeltaAddress = _ref.paraswapDeltaAddress;
4337
+ var typedData = {
4338
+ types: {
4339
+ OrderCancellations: ORDER_CANCELLATIONS_EIP_712_TYPES.OrderCancellations
4340
+ },
4341
+ domain: {
4342
+ name: 'Portikus',
4343
+ version: '2.0.0',
4344
+ chainId: chainId,
4345
+ verifyingContract: paraswapDeltaAddress
4346
+ },
4347
+ data: {
4348
+ // explicityly pick only the necessary fields,
4349
+ // otherwise signing will break if more is present
4350
+ orderIds: orderInput.orderIds
4351
+ }
4352
+ };
4353
+ return typedData;
4354
+ }
4355
+
4356
+ var constructCancelDeltaOrder = function constructCancelDeltaOrder(options) {
4357
+ // cached internally
4358
+ var _constructGetDeltaCon = constructGetDeltaContract(options),
4359
+ getDeltaContract = _constructGetDeltaCon.getDeltaContract;
4360
+ var signCancelLimitDeltaOrderRequest = /*#__PURE__*/function () {
4361
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(params, requestParams) {
4362
+ var ParaswapDelta, typedData, signature;
4363
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
4364
+ while (1) switch (_context.prev = _context.next) {
4365
+ case 0:
4366
+ _context.next = 2;
4367
+ return getDeltaContract(requestParams);
4368
+ case 2:
4369
+ ParaswapDelta = _context.sent;
4370
+ if (ParaswapDelta) {
4371
+ _context.next = 5;
4372
+ break;
4373
+ }
4374
+ throw new Error("Delta is not available on chain " + options.chainId);
4375
+ case 5:
4376
+ typedData = buildCancelDeltaOrderSignableData({
4377
+ orderInput: params,
4378
+ paraswapDeltaAddress: ParaswapDelta,
4379
+ chainId: options.chainId
4380
+ });
4381
+ _context.next = 8;
4382
+ return options.contractCaller.signTypedDataCall(typedData);
4383
+ case 8:
4384
+ signature = _context.sent;
4385
+ return _context.abrupt("return", signature);
4386
+ case 10:
4387
+ case "end":
4388
+ return _context.stop();
4389
+ }
4390
+ }, _callee);
4391
+ }));
4392
+ return function signCancelLimitDeltaOrderRequest(_x, _x2) {
4393
+ return _ref.apply(this, arguments);
4394
+ };
4395
+ }();
4396
+ var postCancelLimitDeltaOrderRequest = /*#__PURE__*/function () {
4397
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(params, requestParams) {
4398
+ var cancelUrl, res;
4399
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
4400
+ while (1) switch (_context2.prev = _context2.next) {
4401
+ case 0:
4402
+ cancelUrl = options.apiURL + "/delta/orders/cancel";
4403
+ _context2.next = 3;
4404
+ return options.fetcher({
4405
+ url: cancelUrl,
4406
+ method: 'POST',
4407
+ data: params,
4408
+ requestParams: requestParams
4409
+ });
4410
+ case 3:
4411
+ res = _context2.sent;
4412
+ return _context2.abrupt("return", res);
4413
+ case 5:
4414
+ case "end":
4415
+ return _context2.stop();
4416
+ }
4417
+ }, _callee2);
4418
+ }));
4419
+ return function postCancelLimitDeltaOrderRequest(_x3, _x4) {
4420
+ return _ref2.apply(this, arguments);
4421
+ };
4422
+ }();
4423
+ var cancelLimitDeltaOrders = /*#__PURE__*/function () {
4424
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(params, requestParams) {
4425
+ var orderIds, signature, res;
4426
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
4427
+ while (1) switch (_context3.prev = _context3.next) {
4428
+ case 0:
4429
+ orderIds = params.map(function (_ref4) {
4430
+ var id = _ref4.id;
4431
+ return id;
4432
+ });
4433
+ _context3.next = 3;
4434
+ return signCancelLimitDeltaOrderRequest({
4435
+ orderIds: orderIds
4436
+ }, requestParams);
4437
+ case 3:
4438
+ signature = _context3.sent;
4439
+ _context3.next = 6;
4440
+ return postCancelLimitDeltaOrderRequest({
4441
+ orderIds: orderIds,
4442
+ signature: signature
4443
+ }, requestParams);
4444
+ case 6:
4445
+ res = _context3.sent;
4446
+ return _context3.abrupt("return", res);
4447
+ case 8:
4448
+ case "end":
4449
+ return _context3.stop();
4450
+ }
4451
+ }, _callee3);
4452
+ }));
4453
+ return function cancelLimitDeltaOrders(_x5, _x6) {
4454
+ return _ref3.apply(this, arguments);
4455
+ };
4456
+ }();
4457
+ return {
4458
+ signCancelLimitDeltaOrderRequest: signCancelLimitDeltaOrderRequest,
4459
+ postCancelLimitDeltaOrderRequest: postCancelLimitDeltaOrderRequest,
4460
+ cancelLimitDeltaOrders: cancelLimitDeltaOrders
4461
+ };
4462
+ };
4463
+
4596
4464
  /** @description construct composable SDK with methods you choose yourself */
4597
4465
  var constructPartialSDK = function constructPartialSDK(config) {
4598
4466
  var _config$apiURL, _config$version;
@@ -4756,7 +4624,11 @@ var constructSubmitDeltaOrder = function constructSubmitDeltaOrder(options) {
4756
4624
  signature: signature,
4757
4625
  partner: orderParams.partner,
4758
4626
  order: orderData.data,
4759
- partiallyFillable: orderParams.partiallyFillable
4627
+ partiallyFillable: orderParams.partiallyFillable,
4628
+ referrerAddress: orderParams.referrerAddress,
4629
+ type: orderParams.type,
4630
+ includeAgents: orderParams.includeAgents,
4631
+ excludeAgents: orderParams.excludeAgents
4760
4632
  });
4761
4633
  case 8:
4762
4634
  response = _context.sent;
@@ -4790,7 +4662,8 @@ var constructAllDeltaOrdersHandlers = function constructAllDeltaOrdersHandlers(o
4790
4662
  var deltaOrdersBuild = constructBuildDeltaOrder(options);
4791
4663
  var deltaOrdersSign = constructSignDeltaOrder(options);
4792
4664
  var deltaOrdersPost = constructPostDeltaOrder(options);
4793
- return _extends({}, deltaOrdersGetters, deltaOrdersContractGetter, deltaPrice, partnerFee, bridgeInfo, isTokenSupportedInDelta, multicallHandlers, approveTokenForDelta, deltaOrdersSubmit, deltaOrdersBuild, deltaOrdersSign, deltaOrdersPost, buildCrosschainOrderBridge);
4665
+ var deltaOrdersCancel = constructCancelDeltaOrder(options);
4666
+ return _extends({}, deltaOrdersGetters, deltaOrdersContractGetter, deltaPrice, partnerFee, bridgeInfo, isTokenSupportedInDelta, multicallHandlers, approveTokenForDelta, deltaOrdersSubmit, deltaOrdersBuild, deltaOrdersSign, deltaOrdersPost, deltaOrdersCancel, buildCrosschainOrderBridge);
4794
4667
  };
4795
4668
 
4796
4669
  var constructSubmitNFTOrder = function constructSubmitNFTOrder(options) {
@@ -5135,6 +5008,7 @@ exports.constructBuildLimitOrderTx = constructBuildLimitOrderTx;
5135
5008
  exports.constructBuildNFTOrder = constructBuildNFTOrder;
5136
5009
  exports.constructBuildNFTOrderTx = constructBuildNFTOrderTx;
5137
5010
  exports.constructBuildTx = constructBuildTx;
5011
+ exports.constructCancelDeltaOrder = constructCancelDeltaOrder;
5138
5012
  exports.constructCancelLimitOrder = constructCancelLimitOrder;
5139
5013
  exports.constructCancelNFTOrder = constructCancelNFTOrder;
5140
5014
  exports.constructEthersContractCaller = constructEthersV5ContractCaller;