@velora-dex/widget 0.4.9 → 0.4.11

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 (61) hide show
  1. package/dist/core/Updaters.d.ts.map +1 -1
  2. package/dist/core/Updaters.js +2 -0
  3. package/dist/core/Updaters.js.map +1 -1
  4. package/dist/hooks/permit/utils/deadlines.js +1 -1
  5. package/dist/hooks/permit/utils/deadlines.js.map +1 -1
  6. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.d.ts.map +1 -1
  7. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js +15 -0
  8. package/dist/hooks/swap/prices/delta/mutations/usePostDeltaOrder.js.map +1 -1
  9. package/dist/hooks/swap/prices/delta/mutations/utils.d.ts +1 -0
  10. package/dist/hooks/swap/prices/delta/mutations/utils.d.ts.map +1 -1
  11. package/dist/hooks/swap/prices/delta/mutations/utils.js +10 -1
  12. package/dist/hooks/swap/prices/delta/mutations/utils.js.map +1 -1
  13. package/dist/hooks/swap/prices/delta/orders/unposted/const.d.ts +5 -0
  14. package/dist/hooks/swap/prices/delta/orders/unposted/const.d.ts.map +1 -0
  15. package/dist/hooks/swap/prices/delta/orders/unposted/const.js +8 -0
  16. package/dist/hooks/swap/prices/delta/orders/unposted/const.js.map +1 -0
  17. package/dist/hooks/swap/prices/delta/orders/unposted/effect.d.ts +2 -0
  18. package/dist/hooks/swap/prices/delta/orders/unposted/effect.d.ts.map +1 -0
  19. package/dist/hooks/swap/prices/delta/orders/unposted/effect.js +28 -0
  20. package/dist/hooks/swap/prices/delta/orders/unposted/effect.js.map +1 -0
  21. package/dist/hooks/swap/prices/delta/orders/unposted/index.d.ts +8 -0
  22. package/dist/hooks/swap/prices/delta/orders/unposted/index.d.ts.map +1 -0
  23. package/dist/hooks/swap/prices/delta/orders/unposted/index.js +34 -0
  24. package/dist/hooks/swap/prices/delta/orders/unposted/index.js.map +1 -0
  25. package/dist/hooks/swap/prices/delta/orders/unposted/storage.d.ts +8 -0
  26. package/dist/hooks/swap/prices/delta/orders/unposted/storage.d.ts.map +1 -0
  27. package/dist/hooks/swap/prices/delta/orders/unposted/storage.js +47 -0
  28. package/dist/hooks/swap/prices/delta/orders/unposted/storage.js.map +1 -0
  29. package/dist/hooks/swap/prices/delta/orders/unposted/types.d.ts +16 -0
  30. package/dist/hooks/swap/prices/delta/orders/unposted/types.d.ts.map +1 -0
  31. package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts +3 -0
  32. package/dist/hooks/swap/prices/delta/orders/unposted/utils.d.ts.map +1 -0
  33. package/dist/hooks/swap/prices/delta/orders/unposted/utils.js +103 -0
  34. package/dist/hooks/swap/prices/delta/orders/unposted/utils.js.map +1 -0
  35. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts +9 -4
  36. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.d.ts.map +1 -1
  37. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js +19 -1
  38. package/dist/hooks/swap/prices/delta/queries/useDeltaOrders.js.map +1 -1
  39. package/dist/hooks/swap/prices/useSwapPrices.d.ts.map +1 -1
  40. package/dist/hooks/swap/prices/useSwapPrices.js.map +1 -1
  41. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.d.ts.map +1 -1
  42. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js +17 -9
  43. package/dist/hooks/swap/tradeFlow/common/useDepositAndSubmitDeltaOrder.js.map +1 -1
  44. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.d.ts.map +1 -1
  45. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js +21 -35
  46. package/dist/hooks/swap/tradeFlow/common/usePreSignAndSubmitDeltaOrder.js.map +1 -1
  47. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +1 -0
  48. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  49. package/dist/hooks/useSDK.js +2 -34
  50. package/dist/hooks/useSDK.js.map +1 -1
  51. package/dist/transactions/state/transactionsAtom.d.ts +2 -1
  52. package/dist/transactions/state/transactionsAtom.d.ts.map +1 -1
  53. package/dist/transactions/state/transactionsAtom.js +6 -2
  54. package/dist/transactions/state/transactionsAtom.js.map +1 -1
  55. package/dist/transactions/types.d.ts +1 -0
  56. package/dist/transactions/types.d.ts.map +1 -1
  57. package/dist/transactions/utils.d.ts +2 -1
  58. package/dist/transactions/utils.d.ts.map +1 -1
  59. package/dist/transactions/utils.js +4 -1
  60. package/dist/transactions/utils.js.map +1 -1
  61. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Updaters.d.ts","sourceRoot":"","sources":["../../src/core/Updaters.tsx"],"names":[],"mappings":"AAqBA,eAAO,MAAM,QAAQ,YAwDpB,CAAC"}
1
+ {"version":3,"file":"Updaters.d.ts","sourceRoot":"","sources":["../../src/core/Updaters.tsx"],"names":[],"mappings":"AAsBA,eAAO,MAAM,QAAQ,YA2DpB,CAAC"}
@@ -19,6 +19,7 @@ import { useOnPriceUpdates } from '../events/hooks/useOnPriceUpdates.js';
19
19
  import { useBridgeProtocolsQuery } from '../hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols.js';
20
20
  import { useCacheMinViemClient } from '../hooks/useMinViemClient.js';
21
21
  import { useIsAccountContract } from '../hooks/getCode/useIsAccountContract.js';
22
+ import { useActivateUnpostedOrdersEffect } from '../hooks/swap/prices/delta/orders/unposted/effect.js';
22
23
 
23
24
  const Updaters = () => {
24
25
  const $ = distExports.c(2);
@@ -60,6 +61,7 @@ const Updaters = () => {
60
61
  useActivateEffects$2();
61
62
  useActivateFormInputEffects();
62
63
  useActivateConfigEffect();
64
+ useActivateUnpostedOrdersEffect();
63
65
  useCacheMinViemClient();
64
66
  return null;
65
67
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Updaters.js","sources":["../../src/core/Updaters.tsx"],"sourcesContent":["import { useTokenFromPermit1Nonce } from \"@/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce\";\nimport { useTokenFromPermit2TransferFromNonce } from \"@/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce\";\nimport { useTokenFromPermit2AllowanceQuery } from \"@/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance\";\nimport { useTokenFromPermitInfo } from \"@/hooks/permit/hooks/permit1/useTokenFromPermitInfo\";\nimport { useGetContracts } from \"@/hooks/sdk/useGetContracts\";\nimport { useGetBridgeInfo } from \"@/hooks/useBridgeInfo\";\nimport { useFetchTokenLists } from \"@/tokens/queries\";\nimport { usePrefetchTokenBalances } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport { useSafeInfo } from \"@/lib/web3/wagmi/isInsideSafeIframe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useOnWalletConnected } from \"@/events/hooks/useOnWalletConnect\";\nimport { useActivateEffects as useActivateEventEffects } from \"@/events/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTransactionEffects } from \"@/transactions/state/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTokenListEffects } from \"@/tokens/lists/state/effects\";\nimport { useActivateFormInputEffects } from \"./inputs/state/setTokenByAddressAtom\";\nimport { useActivateConfigEffect } from \"./state/configEffectAtom\";\nimport { useOnPriceUpdates } from \"@/events/hooks/useOnPriceUpdates\";\nimport { useBridgeProtocolsQuery } from \"@/hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols\";\nimport { useCacheMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useIsAccountContract } from \"@/hooks/getCode/useIsAccountContract\";\n\nexport const Updaters = () => {\n // fetch tokens from currently enabled lists\n useFetchTokenLists();\n // activate effects for token lists\n useActivateTokenListEffects();\n\n // all balances that would be fetched in TokenSelector for current chain\n usePrefetchTokenBalances();\n useGetBridgeInfo({ mode: \"swap\" }); // @TODO: prefetch instead\n useGetBridgeInfo({ mode: \"limit\" });\n useGetContracts(); // @TODO: prefetch instead\n useBridgeProtocolsQuery();\n\n // for each selected tokenFrom detect its supported Permit1\n useTokenFromPermitInfo();\n // for each selected tokenFrom keep track of Token.nonce if available on Token\n useTokenFromPermit1Nonce();\n // for each selected tokenFrom keep track of given allowance to Permit2 contract\n useTokenFromPermit2AllowanceQuery();\n // global Permit2 TransferFrom nonce, not token-specific but for chain=Token.network\n useTokenFromPermit2TransferFromNonce();\n\n // check if wallet is a contract on every network\n useIsAccountContract();\n\n // check ahead of opening ConnectWallets drawer to prevent Safe button appearing\n // if we are not in a non-Safe iframe\n useSafeInfo();\n\n // check if wallet can batch txs\n useCanBatchTxs();\n\n // events when wallet is connected\n useOnWalletConnected();\n\n // events when price state updates\n useOnPriceUpdates();\n\n // activate effects for state atoms\n useActivateEventEffects();\n\n // activate effects for transaction atoms\n useActivateTransactionEffects();\n\n // activate effects for form input atoms\n useActivateFormInputEffects();\n\n // activate widget config effects\n useActivateConfigEffect();\n\n // keep one subscriber to useConnectorClient query at all times\n // to avoid async client creation on useMinViemClient mount\n // and first minClient being undefined for a short time\n useCacheMinViemClient();\n\n return null;\n};\n"],"names":["Updaters","$","_c","useFetchTokenLists","useActivateTokenListEffects","usePrefetchTokenBalances","t0","Symbol","for","mode","useGetBridgeInfo","t1","useGetContracts","useBridgeProtocolsQuery","useTokenFromPermitInfo","useTokenFromPermit1Nonce","useTokenFromPermit2AllowanceQuery","useTokenFromPermit2TransferFromNonce","useIsAccountContract","useSafeInfo","useCanBatchTxs","useOnWalletConnected","useOnPriceUpdates","useActivateEventEffects","useActivateTransactionEffects","useActivateFormInputEffects","useActivateConfigEffect","useCacheMinViemClient"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAqBO,MAAMA,WAAWA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAEtBC,EAAAA,kBAAAA,EAAmB;AAEnBC,EAAAA,kBAAAA,EAA4B;AAG5BC,EAAAA,wBAAAA,EAAyB;AAAC,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAL,EAAA,CAAA,CAAA,KAAAM,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACTF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,IAAAA,EAAQ;AAAA,KAAO;AAACR,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAAjCS,EAAAA,gBAAAA,CAAiBJ,EAAgB,CAAA;AAAC,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAV,EAAA,CAAA,CAAA,KAAAM,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACjBG,IAAAA,EAAAA,GAAA;AAAA,MAAAF,IAAAA,EAAQ;AAAA,KAAQ;AAACR,IAAAA,CAAAA,MAAAU,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAV,EAAA,CAAA,CAAA;AAAA,EAAA;AAAlCS,EAAAA,gBAAAA,CAAiBC,EAAiB,CAAA;AAClCC,EAAAA,eAAAA,EAAgB;AAChBC,EAAAA,uBAAAA,EAAwB;AAGxBC,EAAAA,sBAAAA,EAAuB;AAEvBC,EAAAA,wBAAAA,EAAyB;AAEzBC,EAAAA,iCAAAA,EAAkC;AAElCC,EAAAA,oCAAAA,EAAqC;AAGrCC,EAAAA,oBAAAA,EAAqB;AAIrBC,EAAAA,WAAAA,EAAY;AAGZC,EAAAA,cAAAA,EAAe;AAGfC,EAAAA,oBAAAA,EAAqB;AAGrBC,EAAAA,iBAAAA,EAAkB;AAGlBC,EAAAA,oBAAAA,EAAwB;AAGxBC,EAAAA,oBAAAA,EAA8B;AAG9BC,EAAAA,2BAAAA,EAA4B;AAG5BC,EAAAA,uBAAAA,EAAwB;AAKxBC,EAAAA,qBAAAA,EAAsB;AAAC,EAAA,OAEhB,IAAA;AAAI;;;;"}
1
+ {"version":3,"file":"Updaters.js","sources":["../../src/core/Updaters.tsx"],"sourcesContent":["import { useTokenFromPermit1Nonce } from \"@/hooks/permit/hooks/permit1/useTokenFromPermit1Nonce\";\nimport { useTokenFromPermit2TransferFromNonce } from \"@/hooks/permit/hooks/permit2/useTokenFromPermit2TransferFromNonce\";\nimport { useTokenFromPermit2AllowanceQuery } from \"@/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance\";\nimport { useTokenFromPermitInfo } from \"@/hooks/permit/hooks/permit1/useTokenFromPermitInfo\";\nimport { useGetContracts } from \"@/hooks/sdk/useGetContracts\";\nimport { useGetBridgeInfo } from \"@/hooks/useBridgeInfo\";\nimport { useFetchTokenLists } from \"@/tokens/queries\";\nimport { usePrefetchTokenBalances } from \"@/hooks/tokens/useAllTokensWithFilter\";\nimport { useSafeInfo } from \"@/lib/web3/wagmi/isInsideSafeIframe\";\nimport { useCanBatchTxs } from \"@/hooks/batch/useCanBatchTxs\";\nimport { useOnWalletConnected } from \"@/events/hooks/useOnWalletConnect\";\nimport { useActivateEffects as useActivateEventEffects } from \"@/events/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTransactionEffects } from \"@/transactions/state/hooks/useActivateEffects\";\nimport { useActivateEffects as useActivateTokenListEffects } from \"@/tokens/lists/state/effects\";\nimport { useActivateFormInputEffects } from \"./inputs/state/setTokenByAddressAtom\";\nimport { useActivateConfigEffect } from \"./state/configEffectAtom\";\nimport { useOnPriceUpdates } from \"@/events/hooks/useOnPriceUpdates\";\nimport { useBridgeProtocolsQuery } from \"@/hooks/swap/prices/delta/queries/bridgeProtocols/useBridgeProtocols\";\nimport { useCacheMinViemClient } from \"@/hooks/useMinViemClient\";\nimport { useIsAccountContract } from \"@/hooks/getCode/useIsAccountContract\";\nimport { useActivateUnpostedOrdersEffect } from \"@/hooks/swap/prices/delta/orders/unposted/effect\";\n\nexport const Updaters = () => {\n // fetch tokens from currently enabled lists\n useFetchTokenLists();\n // activate effects for token lists\n useActivateTokenListEffects();\n\n // all balances that would be fetched in TokenSelector for current chain\n usePrefetchTokenBalances();\n useGetBridgeInfo({ mode: \"swap\" }); // @TODO: prefetch instead\n useGetBridgeInfo({ mode: \"limit\" });\n useGetContracts(); // @TODO: prefetch instead\n useBridgeProtocolsQuery();\n\n // for each selected tokenFrom detect its supported Permit1\n useTokenFromPermitInfo();\n // for each selected tokenFrom keep track of Token.nonce if available on Token\n useTokenFromPermit1Nonce();\n // for each selected tokenFrom keep track of given allowance to Permit2 contract\n useTokenFromPermit2AllowanceQuery();\n // global Permit2 TransferFrom nonce, not token-specific but for chain=Token.network\n useTokenFromPermit2TransferFromNonce();\n\n // check if wallet is a contract on every network\n useIsAccountContract();\n\n // check ahead of opening ConnectWallets drawer to prevent Safe button appearing\n // if we are not in a non-Safe iframe\n useSafeInfo();\n\n // check if wallet can batch txs\n useCanBatchTxs();\n\n // events when wallet is connected\n useOnWalletConnected();\n\n // events when price state updates\n useOnPriceUpdates();\n\n // activate effects for state atoms\n useActivateEventEffects();\n\n // activate effects for transaction atoms\n useActivateTransactionEffects();\n\n // activate effects for form input atoms\n useActivateFormInputEffects();\n\n // activate widget config effects\n useActivateConfigEffect();\n\n // POST unposted orders effect\n useActivateUnpostedOrdersEffect();\n\n // keep one subscriber to useConnectorClient query at all times\n // to avoid async client creation on useMinViemClient mount\n // and first minClient being undefined for a short time\n useCacheMinViemClient();\n\n return null;\n};\n"],"names":["Updaters","$","_c","useFetchTokenLists","useActivateTokenListEffects","usePrefetchTokenBalances","t0","Symbol","for","mode","useGetBridgeInfo","t1","useGetContracts","useBridgeProtocolsQuery","useTokenFromPermitInfo","useTokenFromPermit1Nonce","useTokenFromPermit2AllowanceQuery","useTokenFromPermit2TransferFromNonce","useIsAccountContract","useSafeInfo","useCanBatchTxs","useOnWalletConnected","useOnPriceUpdates","useActivateEventEffects","useActivateTransactionEffects","useActivateFormInputEffects","useActivateConfigEffect","useActivateUnpostedOrdersEffect","useCacheMinViemClient"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAsBO,MAAMA,WAAWA,MAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AAEtBC,EAAAA,kBAAAA,EAAmB;AAEnBC,EAAAA,kBAAAA,EAA4B;AAG5BC,EAAAA,wBAAAA,EAAyB;AAAC,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAL,EAAA,CAAA,CAAA,KAAAM,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACTF,IAAAA,EAAAA,GAAA;AAAA,MAAAG,IAAAA,EAAQ;AAAA,KAAO;AAACR,IAAAA,CAAAA,MAAAK,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAL,EAAA,CAAA,CAAA;AAAA,EAAA;AAAjCS,EAAAA,gBAAAA,CAAiBJ,EAAgB,CAAA;AAAC,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAV,EAAA,CAAA,CAAA,KAAAM,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AACjBG,IAAAA,EAAAA,GAAA;AAAA,MAAAF,IAAAA,EAAQ;AAAA,KAAQ;AAACR,IAAAA,CAAAA,MAAAU,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAV,EAAA,CAAA,CAAA;AAAA,EAAA;AAAlCS,EAAAA,gBAAAA,CAAiBC,EAAiB,CAAA;AAClCC,EAAAA,eAAAA,EAAgB;AAChBC,EAAAA,uBAAAA,EAAwB;AAGxBC,EAAAA,sBAAAA,EAAuB;AAEvBC,EAAAA,wBAAAA,EAAyB;AAEzBC,EAAAA,iCAAAA,EAAkC;AAElCC,EAAAA,oCAAAA,EAAqC;AAGrCC,EAAAA,oBAAAA,EAAqB;AAIrBC,EAAAA,WAAAA,EAAY;AAGZC,EAAAA,cAAAA,EAAe;AAGfC,EAAAA,oBAAAA,EAAqB;AAGrBC,EAAAA,iBAAAA,EAAkB;AAGlBC,EAAAA,oBAAAA,EAAwB;AAGxBC,EAAAA,oBAAAA,EAA8B;AAG9BC,EAAAA,2BAAAA,EAA4B;AAG5BC,EAAAA,uBAAAA,EAAwB;AAGxBC,EAAAA,+BAAAA,EAAgC;AAKhCC,EAAAA,qBAAAA,EAAsB;AAAC,EAAA,OAEhB,IAAA;AAAI;;;;"}
@@ -1,5 +1,5 @@
1
1
  const PERMIT_VALIDITY_BUFFER = 3 * 24 * 60 * 60 * 1e3;
2
- const DELTA_DEFAULT_EXPIRY = 60 * 60 * 1e3;
2
+ const DELTA_DEFAULT_EXPIRY = 10 * 60 * 1e3;
3
3
  function produceSignatureDeadline() {
4
4
  return toDeadline(PERMIT_VALIDITY_BUFFER);
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"deadlines.js","sources":["../../../../src/hooks/permit/utils/deadlines.ts"],"sourcesContent":["export const PERMIT_VALIDITY_BUFFER = 3 * 24 * 60 * 60 * 1000; // 3 days in milliseconds\nexport const ALLOWANCE_VALIDITY_BUFFER = 10 * PERMIT_VALIDITY_BUFFER; // 30 days in milliseconds\n// default deadline = 1 hour for Delta Order\nexport const DELTA_DEFAULT_EXPIRY = 60 * 60 * 1000; // 1 hour in milliseconds\n\n// deadline for Permit1 and Permit2 signature expiration to use up a signed Permit)\nexport function produceSignatureDeadline(): bigint {\n return toDeadline(PERMIT_VALIDITY_BUFFER);\n}\n\n// deadline for Token allowance expiration in Permit2\nexport function produceAllowanceDeadline(): bigint {\n return toDeadline(ALLOWANCE_VALIDITY_BUFFER);\n}\n\n// deadline for Permit2 TransferFrom signature expiration,\n// and for Delta Order deadline;\n// they must match exactly\nexport function produceDeltaOrderDeadline(): bigint {\n return toDeadline(DELTA_DEFAULT_EXPIRY);\n}\n\n// given expiration in milliseconds, return the deadline(now+expiration) in seconds\nexport function toDeadline(expiration: number): bigint {\n const deadline = Math.floor((Date.now() + expiration) / 1000);\n\n return BigInt(deadline);\n}\n"],"names":["PERMIT_VALIDITY_BUFFER","DELTA_DEFAULT_EXPIRY","produceSignatureDeadline","toDeadline","produceDeltaOrderDeadline","expiration","deadline","Math","floor","Date","now","BigInt"],"mappings":"AAAO,MAAMA,sBAAAA,GAAyB,CAAA,GAAI,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK;AAGlD,MAAMC,oBAAAA,GAAuB,KAAK,EAAA,GAAK;AAGvC,SAASC,wBAAAA,GAAmC;AACjD,EAAA,OAAOC,WAAWH,sBAAsB,CAAA;AAC1C;AAUO,SAASI,yBAAAA,GAAoC;AAClD,EAAA,OAAOD,WAAWF,oBAAoB,CAAA;AACxC;AAGO,SAASE,WAAWE,UAAAA,EAA4B;AACrD,EAAA,MAAMC,WAAWC,IAAAA,CAAKC,KAAAA,CAAAA,CAAOC,KAAKC,GAAAA,EAAI,GAAIL,cAAc,GAAI,CAAA;AAE5D,EAAA,OAAOM,OAAOL,QAAQ,CAAA;AACxB;;;;"}
1
+ {"version":3,"file":"deadlines.js","sources":["../../../../src/hooks/permit/utils/deadlines.ts"],"sourcesContent":["export const PERMIT_VALIDITY_BUFFER = 3 * 24 * 60 * 60 * 1000; // 3 days in milliseconds\nexport const ALLOWANCE_VALIDITY_BUFFER = 10 * PERMIT_VALIDITY_BUFFER; // 30 days in milliseconds\n// default deadline = 10 min for Delta Order\nexport const DELTA_DEFAULT_EXPIRY = 10 * 60 * 1000; // 10 minutes in milliseconds\n\n// deadline for Permit1 and Permit2 signature expiration to use up a signed Permit)\nexport function produceSignatureDeadline(): bigint {\n return toDeadline(PERMIT_VALIDITY_BUFFER);\n}\n\n// deadline for Token allowance expiration in Permit2\nexport function produceAllowanceDeadline(): bigint {\n return toDeadline(ALLOWANCE_VALIDITY_BUFFER);\n}\n\n// deadline for Permit2 TransferFrom signature expiration,\n// and for Delta Order deadline;\n// they must match exactly\nexport function produceDeltaOrderDeadline(): bigint {\n return toDeadline(DELTA_DEFAULT_EXPIRY);\n}\n\n// given expiration in milliseconds, return the deadline(now+expiration) in seconds\nexport function toDeadline(expiration: number): bigint {\n const deadline = Math.floor((Date.now() + expiration) / 1000);\n\n return BigInt(deadline);\n}\n"],"names":["PERMIT_VALIDITY_BUFFER","DELTA_DEFAULT_EXPIRY","produceSignatureDeadline","toDeadline","produceDeltaOrderDeadline","expiration","deadline","Math","floor","Date","now","BigInt"],"mappings":"AAAO,MAAMA,sBAAAA,GAAyB,CAAA,GAAI,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK;AAGlD,MAAMC,oBAAAA,GAAuB,KAAK,EAAA,GAAK;AAGvC,SAASC,wBAAAA,GAAmC;AACjD,EAAA,OAAOC,WAAWH,sBAAsB,CAAA;AAC1C;AAUO,SAASI,yBAAAA,GAAoC;AAClD,EAAA,OAAOD,WAAWF,oBAAoB,CAAA;AACxC;AAGO,SAASE,WAAWE,UAAAA,EAA4B;AACrD,EAAA,MAAMC,WAAWC,IAAAA,CAAKC,KAAAA,CAAAA,CAAOC,KAAKC,GAAAA,EAAI,GAAIL,cAAc,GAAI,CAAA;AAE5D,EAAA,OAAOM,OAAOL,QAAQ,CAAA;AACxB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePostDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/mutations/usePostDeltaOrder.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAE5E,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,KAAK,6BAA6B,GAAG,IAAI,CACvC,kBAAkB,CAChB,0BAA0B,EAC1B,KAAK,EACL,mBAAmB,EACnB,IAAI,CACL,EACD,YAAY,CACb,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,eAAe,CAAC,EAAE,6BAA6B,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,6BAA6B,mBAAmB,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,EAChC,eAAe,EACf,OAAO,EACP,OAAO,EACP,MAAM,GACP,EAAE,sBAAsB,GAAG,iBAAiB,CAC3C,0BAA0B,EAC1B,KAAK,EACL,mBAAmB,EACnB,IAAI,CACL,CAiCA"}
1
+ {"version":3,"file":"usePostDeltaOrder.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/mutations/usePostDeltaOrder.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAG5E,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEvD,KAAK,6BAA6B,GAAG,IAAI,CACvC,kBAAkB,CAChB,0BAA0B,EAC1B,KAAK,EACL,mBAAmB,EACnB,IAAI,CACL,EACD,YAAY,CACb,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC5B,eAAe,CAAC,EAAE,6BAA6B,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,6BAA6B,mBAAmB,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,EAChC,eAAe,EACf,OAAO,EACP,OAAO,EACP,MAAM,GACP,EAAE,sBAAsB,GAAG,iBAAiB,CAC3C,0BAA0B,EAC1B,KAAK,EACL,mBAAmB,EACnB,IAAI,CACL,CA0CA"}
@@ -1,6 +1,7 @@
1
1
  import { d as distExports } from '../../../../../_virtual/index.js';
2
2
  import { useDeltaSDK } from '../../../../useSDK.js';
3
3
  import { useMutation } from '@tanstack/react-query';
4
+ import { shouldRetryPostOrder } from './utils.js';
4
5
 
5
6
  const POST_DELTA_ORDER_MUTATION_KEY = "postDeltaOrder";
6
7
  function usePostDeltaOrder(t0) {
@@ -68,6 +69,8 @@ function usePostDeltaOrder(t0) {
68
69
  t4 = {
69
70
  mutationKey: t2,
70
71
  mutationFn: t3,
72
+ retry: _temp,
73
+ retryDelay: _temp2,
71
74
  ...mutationOptions
72
75
  };
73
76
  $[7] = mutationOptions;
@@ -78,6 +81,18 @@ function usePostDeltaOrder(t0) {
78
81
  }
79
82
  return useMutation(t4);
80
83
  }
84
+ function _temp2(attemptIndex) {
85
+ if (attemptIndex === 0) {
86
+ return 500;
87
+ }
88
+ return attemptIndex * 1e3;
89
+ }
90
+ function _temp(retryCount, error) {
91
+ if (retryCount >= 2) {
92
+ return false;
93
+ }
94
+ return shouldRetryPostOrder(error);
95
+ }
81
96
 
82
97
  export { POST_DELTA_ORDER_MUTATION_KEY, usePostDeltaOrder };
83
98
  //# sourceMappingURL=usePostDeltaOrder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePostDeltaOrder.js","sources":["../../../../../../src/hooks/swap/prices/delta/mutations/usePostDeltaOrder.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type { MinViemClient, PostDeltaOrderParams } from \"@velora-dex/sdk\";\nimport type { Address } from \"viem\";\nimport type { SubmittedDeltaOrderFromAPI } from \"../queries/useDeltaOrders\";\n\nexport type PostDeltaOrderInput = PostDeltaOrderParams;\n\ntype PostDeltaOrderMutationOptions = Omit<\n UseMutationOptions<\n SubmittedDeltaOrderFromAPI,\n Error,\n PostDeltaOrderInput,\n void\n >,\n \"mutationFn\"\n>;\n\ntype PostDeltaOrderMutInput = {\n mutationOptions?: PostDeltaOrderMutationOptions;\n chainId: number;\n account?: Address;\n client?: MinViemClient;\n};\n\nexport const POST_DELTA_ORDER_MUTATION_KEY = \"postDeltaOrder\";\n\nexport function usePostDeltaOrder({\n mutationOptions,\n chainId,\n account,\n client,\n}: PostDeltaOrderMutInput): UseMutationResult<\n SubmittedDeltaOrderFromAPI,\n Error,\n PostDeltaOrderInput,\n void\n> {\n const { sdk } = useDeltaSDK({ chainId, account, client });\n\n return useMutation<\n SubmittedDeltaOrderFromAPI,\n Error,\n PostDeltaOrderInput,\n void\n >({\n mutationKey: [POST_DELTA_ORDER_MUTATION_KEY],\n mutationFn: async ({\n signature,\n order,\n partner,\n referrerAddress,\n type,\n includeAgents,\n excludeAgents,\n }) => {\n const orderFromAPI = await sdk.postDeltaOrder({\n signature,\n order,\n partner,\n referrerAddress,\n type,\n includeAgents,\n excludeAgents,\n });\n\n return orderFromAPI;\n },\n ...mutationOptions,\n });\n}\n"],"names":["POST_DELTA_ORDER_MUTATION_KEY","usePostDeltaOrder","t0","$","_c","mutationOptions","chainId","account","client","t1","sdk","useDeltaSDK","t2","Symbol","for","t3","t4","signature","order","partner","referrerAddress","type","includeAgents","excludeAgents","orderFromAPI","postDeltaOrder","mutationKey","mutationFn","useMutation"],"mappings":";;;;AA6BO,MAAMA,6BAAAA,GAAgC;AAEtC,SAAAC,kBAAAC,EAAAA,EAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAA2B,EAAA,MAAA;AAAA,IAAAC,eAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC,OAAAA;AAAAA,IAAAC;AAAAA,GAAA,GAAAN,EAAAA;AAKT,EAAA,IAAAO,EAAAA;AAAA,EAAA,IAAAN,CAAAA,CAAA,CAAA,CAAA,KAAAI,OAAAA,IAAAJ,CAAAA,QAAAG,OAAAA,IAAAH,CAAAA,CAAA,CAAA,CAAA,KAAAK,MAAAA,EAAA;AAMKC,IAAAA,EAAAA,GAAA;AAAA,MAAAH,OAAAA;AAAAA,MAAAC,OAAAA;AAAAA,MAAAC;AAAAA,KAA2B;AAACL,IAAAA,CAAAA,MAAAI,OAAAA;AAAAJ,IAAAA,CAAAA,MAAAG,OAAAA;AAAAH,IAAAA,CAAAA,MAAAK,MAAAA;AAAAL,IAAAA,CAAAA,MAAAM,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAN,EAAA,CAAA,CAAA;AAAA,EAAA;AAAxD,EAAA,MAAA;AAAA,IAAAO;AAAAA,GAAA,GAAgBC,YAAYF,EAA4B,CAAA;AAAE,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAT,EAAA,CAAA,CAAA,KAAAU,MAAAA,CAAAC,GAAAA,CAAA,2BAAA,CAAA,EAAA;AAQ3CF,IAAAA,EAAAA,GAAA,CAACZ,6BAA6B,CAAA;AAACG,IAAAA,CAAAA,MAAAS,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAT,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAY,EAAAA;AAAA,EAAA,IAAAZ,CAAAA,QAAAO,GAAAA,EAAA;AAChCK,IAAAA,EAAAA,UAAAC,GAAAA,KAAA;AAAO,MAAA,MAAA;AAAA,QAAAC,SAAAA;AAAAA,QAAAC,KAAAA;AAAAA,QAAAC,OAAAA;AAAAA,QAAAC,eAAAA;AAAAA,QAAAC,IAAAA;AAAAA,QAAAC,aAAAA;AAAAA,QAAAC;AAAAA,OAAA,GAAAP,GAAAA;AASjB,MAAA,MAAAQ,YAAAA,GAAqB,MAAMd,GAAAA,CAAGe,cAAAA,CAAgB;AAAA,QAAAR,SAAAA;AAAAA,QAAAC,KAAAA;AAAAA,QAAAC,OAAAA;AAAAA,QAAAC,eAAAA;AAAAA,QAAAC,IAAAA;AAAAA,QAAAC,aAAAA;AAAAA,QAAAC;AAAAA,OAQ7C,CAAA;AAAE,MAAA,OAEIC,YAAAA;AAAAA,IAAY,CAAA;AACpBrB,IAAAA,CAAAA,MAAAO,GAAAA;AAAAP,IAAAA,CAAAA,MAAAY,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAZ,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,IAAAa,EAAAA;AAAA,EAAA,IAAAb,EAAA,CAAA,CAAA,KAAAE,mBAAAF,CAAAA,QAAAY,EAAAA,EAAA;AAtBDC,IAAAA,EAAAA,GAAA;AAAA,MAAAU,WAAAA,EACad,EAAAA;AAAAA,MAA+Be,UAAAA,EAChCZ,EAAAA;AAAAA,MAoBX,GACEV;AAAAA,KACL;AAACF,IAAAA,CAAAA,MAAAE,eAAAA;AAAAF,IAAAA,CAAAA,MAAAY,EAAAA;AAAAZ,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OA7BMyB,YAKLZ,EAwBD,CAAA;AAAC;;;;"}
1
+ {"version":3,"file":"usePostDeltaOrder.js","sources":["../../../../../../src/hooks/swap/prices/delta/mutations/usePostDeltaOrder.ts"],"sourcesContent":["import { useDeltaSDK } from \"@/hooks/useSDK\";\nimport {\n useMutation,\n type UseMutationOptions,\n type UseMutationResult,\n} from \"@tanstack/react-query\";\nimport type { MinViemClient, PostDeltaOrderParams } from \"@velora-dex/sdk\";\nimport type { Address } from \"viem\";\nimport type { SubmittedDeltaOrderFromAPI } from \"../queries/useDeltaOrders\";\nimport { shouldRetryPostOrder } from \"./utils\";\n\nexport type PostDeltaOrderInput = PostDeltaOrderParams;\n\ntype PostDeltaOrderMutationOptions = Omit<\n UseMutationOptions<\n SubmittedDeltaOrderFromAPI,\n Error,\n PostDeltaOrderInput,\n void\n >,\n \"mutationFn\"\n>;\n\ntype PostDeltaOrderMutInput = {\n mutationOptions?: PostDeltaOrderMutationOptions;\n chainId: number;\n account?: Address;\n client?: MinViemClient;\n};\n\nexport const POST_DELTA_ORDER_MUTATION_KEY = \"postDeltaOrder\";\n\nexport function usePostDeltaOrder({\n mutationOptions,\n chainId,\n account,\n client,\n}: PostDeltaOrderMutInput): UseMutationResult<\n SubmittedDeltaOrderFromAPI,\n Error,\n PostDeltaOrderInput,\n void\n> {\n const { sdk } = useDeltaSDK({ chainId, account, client });\n\n return useMutation<\n SubmittedDeltaOrderFromAPI,\n Error,\n PostDeltaOrderInput,\n void\n >({\n mutationKey: [POST_DELTA_ORDER_MUTATION_KEY],\n mutationFn: async ({\n signature,\n order,\n partner,\n referrerAddress,\n type,\n includeAgents,\n excludeAgents,\n }) => {\n const orderFromAPI = await sdk.postDeltaOrder({\n signature,\n order,\n partner,\n referrerAddress,\n type,\n includeAgents,\n excludeAgents,\n });\n\n return orderFromAPI;\n },\n retry: (retryCount, error) => {\n if (retryCount >= 2) return false;\n return shouldRetryPostOrder(error);\n },\n retryDelay: (attemptIndex) => {\n if (attemptIndex === 0) return 500; // initial retry after 0.5s\n return attemptIndex * 1000; // linear backoff: 1s, 2s\n },\n // allow to override retry and retryDelay via mutationOptions\n ...mutationOptions,\n });\n}\n"],"names":["POST_DELTA_ORDER_MUTATION_KEY","usePostDeltaOrder","t0","$","_c","mutationOptions","chainId","account","client","t1","sdk","useDeltaSDK","t2","Symbol","for","t3","t4","signature","order","partner","referrerAddress","type","includeAgents","excludeAgents","orderFromAPI","postDeltaOrder","mutationKey","mutationFn","retry","_temp","retryDelay","_temp2","useMutation","attemptIndex","retryCount","error","shouldRetryPostOrder"],"mappings":"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"}
@@ -9,5 +9,6 @@ export declare function buildPreSignOrderPayload({ sdk, orderInput, chainId, ref
9
9
  referrerAddress?: string;
10
10
  type?: "MARKET" | "LIMIT";
11
11
  }): Promise<PreSignDeltaOrderToPost>;
12
+ export declare function shouldRetryPostOrder(error: unknown): boolean;
12
13
  export {};
13
14
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/mutations/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,KAAK,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,GAC5E,IAAI,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;AAEpD,wBAAsB,wBAAwB,CAAC,EAC7C,GAAG,EACH,UAAU,EACV,OAAO,EACP,eAAe,EACf,IAAI,GACL,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,yBAAyB,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC3B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAmBnC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/mutations/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AACvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEhC,KAAK,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC,GAC5E,IAAI,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;AAEpD,wBAAsB,wBAAwB,CAAC,EAC7C,GAAG,EACH,UAAU,EACV,OAAO,EACP,eAAe,EACf,IAAI,GACL,EAAE;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,yBAAyB,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC3B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAmBnC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,WAYlD"}
@@ -18,6 +18,15 @@ async function buildPreSignOrderPayload({
18
18
  };
19
19
  return orderToPost;
20
20
  }
21
+ function shouldRetryPostOrder(error) {
22
+ if (!(error instanceof Error)) return false;
23
+ if (error.message === "Network Error") return true;
24
+ if ("response" in error) {
25
+ const status = error.response?.status;
26
+ if (status >= 500 && status < 600) return true;
27
+ }
28
+ return false;
29
+ }
21
30
 
22
- export { buildPreSignOrderPayload };
31
+ export { buildPreSignOrderPayload, shouldRetryPostOrder };
23
32
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../src/hooks/swap/prices/delta/mutations/utils.ts"],"sourcesContent":["import type {\n BuildDeltaOrderDataParams,\n BuildDeltaOrderFunctions,\n PreSignDeltaOrderFunctions,\n} from \"@velora-dex/sdk\";\nimport type { PreSignDeltaOrderToPost } from \"./types\";\nimport type { Hex } from \"viem\";\n\ntype MinSDK = Pick<PreSignDeltaOrderFunctions<Hex>, \"hashDeltaOrderTypedData\"> &\n Pick<BuildDeltaOrderFunctions, \"buildDeltaOrder\">;\n\nexport async function buildPreSignOrderPayload({\n sdk,\n orderInput,\n chainId,\n referrerAddress,\n type,\n}: {\n sdk: MinSDK;\n orderInput: BuildDeltaOrderDataParams;\n chainId: number;\n referrerAddress?: string;\n type?: \"MARKET\" | \"LIMIT\";\n}): Promise<PreSignDeltaOrderToPost> {\n // Step 1: build order (with async partnerFee calculation internally)\n const signableTypedData = await sdk.buildDeltaOrder(orderInput);\n\n // Step 2: hash order\n const orderHash = sdk.hashDeltaOrderTypedData(signableTypedData);\n\n // Step 3: prepare order payload\n const orderToPost: PreSignDeltaOrderToPost = {\n chainId,\n orderHash,\n order: signableTypedData.data,\n partner: orderInput.partner,\n referrerAddress,\n type,\n signature: \"0x\",\n };\n\n return orderToPost;\n}\n"],"names":["buildPreSignOrderPayload","sdk","orderInput","chainId","referrerAddress","type","signableTypedData","buildDeltaOrder","orderHash","hashDeltaOrderTypedData","orderToPost","order","data","partner","signature"],"mappings":"AAWA,eAAsBA,wBAAAA,CAAyB;AAAA,EAC7CC,GAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC;AAOF,CAAA,EAAqC;AAEnC,EAAA,MAAMC,iBAAAA,GAAoB,MAAML,GAAAA,CAAIM,eAAAA,CAAgBL,UAAU,CAAA;AAG9D,EAAA,MAAMM,SAAAA,GAAYP,GAAAA,CAAIQ,uBAAAA,CAAwBH,iBAAiB,CAAA;AAG/D,EAAA,MAAMI,WAAAA,GAAuC;AAAA,IAC3CP,OAAAA;AAAAA,IACAK,SAAAA;AAAAA,IACAG,OAAOL,iBAAAA,CAAkBM,IAAAA;AAAAA,IACzBC,SAASX,UAAAA,CAAWW,OAAAA;AAAAA,IACpBT,eAAAA;AAAAA,IACAC,IAAAA;AAAAA,IACAS,SAAAA,EAAW;AAAA,GACb;AAEA,EAAA,OAAOJ,WAAAA;AACT;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/hooks/swap/prices/delta/mutations/utils.ts"],"sourcesContent":["import type {\n BuildDeltaOrderDataParams,\n BuildDeltaOrderFunctions,\n PreSignDeltaOrderFunctions,\n} from \"@velora-dex/sdk\";\nimport type { PreSignDeltaOrderToPost } from \"./types\";\nimport type { Hex } from \"viem\";\n\ntype MinSDK = Pick<PreSignDeltaOrderFunctions<Hex>, \"hashDeltaOrderTypedData\"> &\n Pick<BuildDeltaOrderFunctions, \"buildDeltaOrder\">;\n\nexport async function buildPreSignOrderPayload({\n sdk,\n orderInput,\n chainId,\n referrerAddress,\n type,\n}: {\n sdk: MinSDK;\n orderInput: BuildDeltaOrderDataParams;\n chainId: number;\n referrerAddress?: string;\n type?: \"MARKET\" | \"LIMIT\";\n}): Promise<PreSignDeltaOrderToPost> {\n // Step 1: build order (with async partnerFee calculation internally)\n const signableTypedData = await sdk.buildDeltaOrder(orderInput);\n\n // Step 2: hash order\n const orderHash = sdk.hashDeltaOrderTypedData(signableTypedData);\n\n // Step 3: prepare order payload\n const orderToPost: PreSignDeltaOrderToPost = {\n chainId,\n orderHash,\n order: signableTypedData.data,\n partner: orderInput.partner,\n referrerAddress,\n type,\n signature: \"0x\",\n };\n\n return orderToPost;\n}\n\nexport function shouldRetryPostOrder(error: unknown) {\n // safer not to retry if we cannot identify the error\n if (!(error instanceof Error)) return false;\n // retry if Network Error\n if (error.message === \"Network Error\") return true;\n // retry if 5xx response\n if (\"response\" in error) {\n const status = (error.response as { status: number })?.status;\n if (status >= 500 && status < 600) return true;\n }\n // otherwise don't retry\n return false;\n}\n"],"names":["buildPreSignOrderPayload","sdk","orderInput","chainId","referrerAddress","type","signableTypedData","buildDeltaOrder","orderHash","hashDeltaOrderTypedData","orderToPost","order","data","partner","signature","shouldRetryPostOrder","error","Error","message","status","response"],"mappings":"AAWA,eAAsBA,wBAAAA,CAAyB;AAAA,EAC7CC,GAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,eAAAA;AAAAA,EACAC;AAOF,CAAA,EAAqC;AAEnC,EAAA,MAAMC,iBAAAA,GAAoB,MAAML,GAAAA,CAAIM,eAAAA,CAAgBL,UAAU,CAAA;AAG9D,EAAA,MAAMM,SAAAA,GAAYP,GAAAA,CAAIQ,uBAAAA,CAAwBH,iBAAiB,CAAA;AAG/D,EAAA,MAAMI,WAAAA,GAAuC;AAAA,IAC3CP,OAAAA;AAAAA,IACAK,SAAAA;AAAAA,IACAG,OAAOL,iBAAAA,CAAkBM,IAAAA;AAAAA,IACzBC,SAASX,UAAAA,CAAWW,OAAAA;AAAAA,IACpBT,eAAAA;AAAAA,IACAC,IAAAA;AAAAA,IACAS,SAAAA,EAAW;AAAA,GACb;AAEA,EAAA,OAAOJ,WAAAA;AACT;AAEO,SAASK,qBAAqBC,KAAAA,EAAgB;AAEnD,EAAA,IAAI,EAAEA,KAAAA,YAAiBC,KAAAA,CAAAA,EAAQ,OAAO,KAAA;AAEtC,EAAA,IAAID,KAAAA,CAAME,OAAAA,KAAY,eAAA,EAAiB,OAAO,IAAA;AAE9C,EAAA,IAAI,cAAcF,KAAAA,EAAO;AACvB,IAAA,MAAMG,MAAAA,GAAUH,MAAMI,QAAAA,EAAiCD,MAAAA;AACvD,IAAA,IAAIA,MAAAA,IAAU,GAAA,IAAOA,MAAAA,GAAS,GAAA,EAAK,OAAO,IAAA;AAAA,EAC5C;AAEA,EAAA,OAAO,KAAA;AACT;;;;"}
@@ -0,0 +1,5 @@
1
+ export declare const RETRY_DELAY_MS = 2000;
2
+ /** Orders older than this are considered stale and won't be retried */
3
+ export declare const ORDER_TTL_MS: number;
4
+ export declare const logger: import('../../../../../../lib/utils/logger').LoggerInstance;
5
+ //# sourceMappingURL=const.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/orders/unposted/const.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC,uEAAuE;AACvE,eAAO,MAAM,YAAY,QAAqB,CAAC;AAE/C,eAAO,MAAM,MAAM,6DAAmC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { getLogger } from '../../../../../../core/logger.js';
2
+
3
+ const RETRY_DELAY_MS = 2e3;
4
+ const ORDER_TTL_MS = 1e3 * 60 * 60 * 1;
5
+ const logger = getLogger("UnpostedDeltaOrders");
6
+
7
+ export { ORDER_TTL_MS, RETRY_DELAY_MS, logger };
8
+ //# sourceMappingURL=const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"const.js","sources":["../../../../../../../src/hooks/swap/prices/delta/orders/unposted/const.ts"],"sourcesContent":["import { getLogger } from \"@/core/logger\";\n\nexport const RETRY_DELAY_MS = 2000;\n/** Orders older than this are considered stale and won't be retried */\nexport const ORDER_TTL_MS = 1000 * 60 * 60 * 1; // 1 hour\n\nexport const logger = getLogger(\"UnpostedDeltaOrders\");\n"],"names":["RETRY_DELAY_MS","ORDER_TTL_MS","logger","getLogger"],"mappings":";;AAEO,MAAMA,cAAAA,GAAiB;AAEvB,MAAMC,YAAAA,GAAe,GAAA,GAAO,EAAA,GAAK,EAAA,GAAK;AAEtC,MAAMC,MAAAA,GAASC,UAAU,qBAAqB;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare function useActivateUnpostedOrdersEffect(): void;
2
+ //# sourceMappingURL=effect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/orders/unposted/effect.ts"],"names":[],"mappings":"AAwBA,wBAAgB,+BAA+B,SAE9C"}
@@ -0,0 +1,28 @@
1
+ import { accountAtom } from '../../../../../../lib/web3/wagmi/external.js';
2
+ import { atomEffect } from 'jotai-effect';
3
+ import { getUnpostedOrders } from './storage.js';
4
+ import { postUnpostedOrders } from './index.js';
5
+ import { useAtom } from '../../../../../../core/store.js';
6
+
7
+ const {
8
+ withBatchTx,
9
+ withStandaloneTx
10
+ } = getUnpostedOrders();
11
+ postUnpostedOrders(withStandaloneTx);
12
+ let hasRunEffect = false;
13
+ const unpostedOrdersEffect = atomEffect((get) => {
14
+ if (hasRunEffect) return;
15
+ const {
16
+ connector
17
+ } = get(accountAtom);
18
+ if (connector && "getChainId" in connector) {
19
+ hasRunEffect = true;
20
+ return postUnpostedOrders(withBatchTx);
21
+ }
22
+ });
23
+ function useActivateUnpostedOrdersEffect() {
24
+ useAtom(unpostedOrdersEffect);
25
+ }
26
+
27
+ export { useActivateUnpostedOrdersEffect };
28
+ //# sourceMappingURL=effect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effect.js","sources":["../../../../../../../src/hooks/swap/prices/delta/orders/unposted/effect.ts"],"sourcesContent":["import { accountAtom } from \"@/lib/web3/wagmi/external\";\nimport { atomEffect } from \"jotai-effect\";\nimport { getUnpostedOrders } from \"./storage\";\nimport { postUnpostedOrders } from \".\";\nimport { useAtom } from \"@/core/store\";\n\nconst { withBatchTx, withStandaloneTx } = getUnpostedOrders();\n\npostUnpostedOrders(withStandaloneTx);\n\nlet hasRunEffect = false;\nconst unpostedOrdersEffect = atomEffect((get) => {\n if (hasRunEffect) return;\n\n const { connector } = get(accountAtom);\n\n // wait for connector to have getChainId available,\n // otherwise getCallsStatus throws connection.connector.getChainId is not a function\n if (connector && \"getChainId\" in connector) {\n hasRunEffect = true;\n return postUnpostedOrders(withBatchTx);\n }\n});\n\nexport function useActivateUnpostedOrdersEffect() {\n useAtom(unpostedOrdersEffect);\n}\n"],"names":["withBatchTx","withStandaloneTx","getUnpostedOrders","postUnpostedOrders","hasRunEffect","unpostedOrdersEffect","atomEffect","get","connector","accountAtom","useActivateUnpostedOrdersEffect","useAtom"],"mappings":";;;;;;AAMA,MAAM;AAAA,EAAEA,WAAAA;AAAAA,EAAaC;AAAiB,CAAA,GAAIC,iBAAAA,EAAkB;AAE5DC,kBAAAA,CAAmBF,gBAAgB,CAAA;AAEnC,IAAIG,YAAAA,GAAe,KAAA;AACnB,MAAMC,oBAAAA,GAAuBC,WAAYC,CAAAA,GAAAA,KAAQ;AAC/C,EAAA,IAAIH,YAAAA,EAAc;AAElB,EAAA,MAAM;AAAA,IAAEI;AAAAA,GAAU,GAAID,IAAIE,WAAW,CAAA;AAIrC,EAAA,IAAID,SAAAA,IAAa,gBAAgBA,SAAAA,EAAW;AAC1CJ,IAAAA,YAAAA,GAAe,IAAA;AACf,IAAA,OAAOD,mBAAmBH,WAAW,CAAA;AAAA,EACvC;AACF,CAAC,CAAA;AAEM,SAAAU,+BAAAA,GAAA;AACLC,EAAAA,OAAAA,CAAQN,oBAAoB,CAAA;AAAC;;;;"}
@@ -0,0 +1,8 @@
1
+ import { DeltaOrderApiResponse } from '@velora-dex/sdk';
2
+ import { UnpostedOrder } from './types';
3
+ export declare function postUnpostedOrders(unpostedOrders: UnpostedOrder[]): (() => void) | undefined;
4
+ export declare function guardUnpostedDeltaOrder<TOrder extends DeltaOrderApiResponse>({ order, cb }: {
5
+ order: UnpostedOrder;
6
+ cb: () => Promise<TOrder>;
7
+ }): Promise<TOrder>;
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/orders/unposted/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAG7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,aAAa,EAAE,4BAwBjE;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,SAAS,qBAAqB,EACpC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAC;IAAC,EAAE,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;CAAE,mBAKnE"}
@@ -0,0 +1,34 @@
1
+ import { logger, RETRY_DELAY_MS } from './const.js';
2
+ import { removeUnpostedOrder, saveUnpostedOrder } from './storage.js';
3
+ import { processUnpostedOrder } from './utils.js';
4
+
5
+ function postUnpostedOrders(unpostedOrders) {
6
+ if (unpostedOrders.length === 0) return;
7
+ logger.log("post orders", {
8
+ count: unpostedOrders.length,
9
+ orders: unpostedOrders
10
+ });
11
+ const timeoutIds = [];
12
+ unpostedOrders.forEach((order, index) => {
13
+ const timeoutId = setTimeout(() => {
14
+ removeUnpostedOrder(order.orderHash);
15
+ processUnpostedOrder(order).then((order2) => logger.log("result", order2)).catch(logger.error);
16
+ }, index * RETRY_DELAY_MS);
17
+ timeoutIds.push(timeoutId);
18
+ });
19
+ return () => {
20
+ timeoutIds.forEach(clearTimeout);
21
+ };
22
+ }
23
+ async function guardUnpostedDeltaOrder({
24
+ order,
25
+ cb
26
+ }) {
27
+ saveUnpostedOrder(order);
28
+ const posted = await cb();
29
+ removeUnpostedOrder(order.orderHash);
30
+ return posted;
31
+ }
32
+
33
+ export { guardUnpostedDeltaOrder, postUnpostedOrders };
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../../src/hooks/swap/prices/delta/orders/unposted/index.ts"],"sourcesContent":["import type { DeltaOrderApiResponse } from \"@velora-dex/sdk\";\nimport { logger, RETRY_DELAY_MS } from \"./const\";\nimport { removeUnpostedOrder, saveUnpostedOrder } from \"./storage\";\nimport type { UnpostedOrder } from \"./types\";\nimport { processUnpostedOrder } from \"./utils\";\n\nexport function postUnpostedOrders(unpostedOrders: UnpostedOrder[]) {\n if (unpostedOrders.length === 0) return;\n logger.log(\"post orders\", {\n count: unpostedOrders.length,\n orders: unpostedOrders,\n });\n\n const timeoutIds: NodeJS.Timeout[] = [];\n // process each order with a small staggered delay to avoid overwhelming the API\n unpostedOrders.forEach((order, index) => {\n const timeoutId = setTimeout(() => {\n // eagerly remove the order from storage\n removeUnpostedOrder(order.orderHash);\n // and retry each order no more than once\n processUnpostedOrder(order)\n .then((order) => logger.log(\"result\", order))\n .catch(logger.error);\n }, index * RETRY_DELAY_MS);\n timeoutIds.push(timeoutId);\n });\n\n return () => {\n timeoutIds.forEach(clearTimeout);\n };\n}\n\nexport async function guardUnpostedDeltaOrder<\n TOrder extends DeltaOrderApiResponse,\n>({ order, cb }: { order: UnpostedOrder; cb: () => Promise<TOrder> }) {\n saveUnpostedOrder(order);\n const posted = await cb();\n removeUnpostedOrder(order.orderHash);\n return posted;\n}\n"],"names":["postUnpostedOrders","unpostedOrders","length","logger","log","count","orders","timeoutIds","forEach","order","index","timeoutId","setTimeout","removeUnpostedOrder","orderHash","processUnpostedOrder","then","catch","error","RETRY_DELAY_MS","push","clearTimeout","guardUnpostedDeltaOrder","cb","saveUnpostedOrder","posted"],"mappings":";;;;AAMO,SAASA,mBAAmBC,cAAAA,EAAiC;AAClE,EAAA,IAAIA,cAAAA,CAAeC,WAAW,CAAA,EAAG;AACjCC,EAAAA,MAAAA,CAAOC,IAAI,aAAA,EAAe;AAAA,IACxBC,OAAOJ,cAAAA,CAAeC,MAAAA;AAAAA,IACtBI,MAAAA,EAAQL;AAAAA,GACT,CAAA;AAED,EAAA,MAAMM,aAA+B,EAAA;AAErCN,EAAAA,cAAAA,CAAeO,OAAAA,CAAQ,CAACC,KAAAA,EAAOC,KAAAA,KAAU;AACvC,IAAA,MAAMC,SAAAA,GAAYC,WAAW,MAAM;AAEjCC,MAAAA,mBAAAA,CAAoBJ,MAAMK,SAAS,CAAA;AAEnCC,MAAAA,oBAAAA,CAAqBN,KAAK,CAAA,CACvBO,IAAAA,CAAMP,CAAAA,MAAAA,KAAUN,MAAAA,CAAOC,GAAAA,CAAI,QAAA,EAAUK,MAAK,CAAC,CAAA,CAC3CQ,KAAAA,CAAMd,OAAOe,KAAK,CAAA;AAAA,IACvB,CAAA,EAAGR,QAAQS,cAAc,CAAA;AACzBZ,IAAAA,UAAAA,CAAWa,KAAKT,SAAS,CAAA;AAAA,EAC3B,CAAC,CAAA;AAED,EAAA,OAAO,MAAM;AACXJ,IAAAA,UAAAA,CAAWC,QAAQa,YAAY,CAAA;AAAA,EACjC,CAAA;AACF;AAEA,eAAsBC,uBAAAA,CAEpB;AAAA,EAAEb,KAAAA;AAAAA,EAAOc;AAAwD,CAAA,EAAG;AACpEC,EAAAA,iBAAAA,CAAkBf,KAAK,CAAA;AACvB,EAAA,MAAMgB,MAAAA,GAAS,MAAMF,EAAAA,EAAG;AACxBV,EAAAA,mBAAAA,CAAoBJ,MAAMK,SAAS,CAAA;AACnC,EAAA,OAAOW,MAAAA;AACT;;;;"}
@@ -0,0 +1,8 @@
1
+ import { UnpostedOrder, UnpostedOrderWithBatchTx, UnpostedOrderWithStandaloneTx } from './types';
2
+ export declare function getUnpostedOrders(): {
3
+ withStandaloneTx: UnpostedOrderWithStandaloneTx[];
4
+ withBatchTx: UnpostedOrderWithBatchTx[];
5
+ };
6
+ export declare function saveUnpostedOrder(order: UnpostedOrder): void;
7
+ export declare function removeUnpostedOrder(orderHash: string): void;
8
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/orders/unposted/storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,wBAAwB,EACxB,6BAA6B,EAC9B,MAAM,SAAS,CAAC;AAsBjB,wBAAgB,iBAAiB;;;EAgBhC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,QAYrD;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,QAWpD"}
@@ -0,0 +1,47 @@
1
+ import { emptyArray } from '../../../../../../lib/constants/index.js';
2
+ import { logger } from './const.js';
3
+ import { LOCAL_STORAGE_PREFIX } from '../../../../../../lib/constants/storage.js';
4
+
5
+ const UNPOSTED_DELTA_ORDERS_KEY = `${LOCAL_STORAGE_PREFIX}_unposted_delta_orders`;
6
+ function parseUnpostedOrders() {
7
+ const unpostedOrdersData = localStorage.getItem(UNPOSTED_DELTA_ORDERS_KEY);
8
+ if (!unpostedOrdersData) return emptyArray;
9
+ try {
10
+ const unpostedOrders = JSON.parse(unpostedOrdersData);
11
+ if (!Array.isArray(unpostedOrders)) {
12
+ logger.error("unexpected data format for unposted orders");
13
+ return emptyArray;
14
+ }
15
+ return unpostedOrders;
16
+ } catch (e) {
17
+ logger.error(`failed to parse ${UNPOSTED_DELTA_ORDERS_KEY} `, e);
18
+ return emptyArray;
19
+ }
20
+ }
21
+ function getUnpostedOrders() {
22
+ const withStandaloneTx = [];
23
+ const withBatchTx = [];
24
+ parseUnpostedOrders().forEach((order) => {
25
+ if ("transactionHash" in order) {
26
+ withStandaloneTx.push(order);
27
+ } else if ("callsId" in order) {
28
+ withBatchTx.push(order);
29
+ }
30
+ });
31
+ return {
32
+ withStandaloneTx,
33
+ withBatchTx
34
+ };
35
+ }
36
+ function saveUnpostedOrder(order) {
37
+ const unpostedOrders = parseUnpostedOrders();
38
+ if (unpostedOrders.some((o) => o.orderHash.toLowerCase() === order.orderHash.toLowerCase())) return;
39
+ localStorage.setItem(UNPOSTED_DELTA_ORDERS_KEY, JSON.stringify([...unpostedOrders, order]));
40
+ }
41
+ function removeUnpostedOrder(orderHash) {
42
+ const unpostedOrders = parseUnpostedOrders();
43
+ localStorage.setItem(UNPOSTED_DELTA_ORDERS_KEY, JSON.stringify(unpostedOrders.filter((order) => order.orderHash.toLowerCase() !== orderHash.toLowerCase())));
44
+ }
45
+
46
+ export { getUnpostedOrders, removeUnpostedOrder, saveUnpostedOrder };
47
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sources":["../../../../../../../src/hooks/swap/prices/delta/orders/unposted/storage.ts"],"sourcesContent":["import { emptyArray } from \"@/lib/constants\";\nimport { logger } from \"./const\";\nimport type {\n UnpostedOrder,\n UnpostedOrderWithBatchTx,\n UnpostedOrderWithStandaloneTx,\n} from \"./types\";\nimport { LOCAL_STORAGE_PREFIX } from \"@/lib/constants/storage\";\n\nconst UNPOSTED_DELTA_ORDERS_KEY =\n `${LOCAL_STORAGE_PREFIX}_unposted_delta_orders` as const;\n\nfunction parseUnpostedOrders(): UnpostedOrder[] {\n const unpostedOrdersData = localStorage.getItem(UNPOSTED_DELTA_ORDERS_KEY);\n if (!unpostedOrdersData) return emptyArray;\n try {\n const unpostedOrders = JSON.parse(unpostedOrdersData);\n if (!Array.isArray(unpostedOrders)) {\n logger.error(\"unexpected data format for unposted orders\");\n return emptyArray;\n }\n return unpostedOrders as UnpostedOrder[];\n } catch (e) {\n logger.error(`failed to parse ${UNPOSTED_DELTA_ORDERS_KEY} `, e);\n return emptyArray;\n }\n}\n\nexport function getUnpostedOrders() {\n const withStandaloneTx: UnpostedOrderWithStandaloneTx[] = [];\n const withBatchTx: UnpostedOrderWithBatchTx[] = [];\n\n parseUnpostedOrders().forEach((order) => {\n if (\"transactionHash\" in order) {\n withStandaloneTx.push(order);\n } else if (\"callsId\" in order) {\n withBatchTx.push(order);\n }\n });\n\n return {\n withStandaloneTx,\n withBatchTx,\n };\n}\n\nexport function saveUnpostedOrder(order: UnpostedOrder) {\n const unpostedOrders = parseUnpostedOrders();\n if (\n unpostedOrders.some(\n (o) => o.orderHash.toLowerCase() === order.orderHash.toLowerCase()\n )\n )\n return;\n localStorage.setItem(\n UNPOSTED_DELTA_ORDERS_KEY,\n JSON.stringify([...unpostedOrders, order])\n );\n}\n\nexport function removeUnpostedOrder(orderHash: string) {\n const unpostedOrders = parseUnpostedOrders();\n\n localStorage.setItem(\n UNPOSTED_DELTA_ORDERS_KEY,\n JSON.stringify(\n unpostedOrders.filter(\n (order) => order.orderHash.toLowerCase() !== orderHash.toLowerCase()\n )\n )\n );\n}\n"],"names":["UNPOSTED_DELTA_ORDERS_KEY","LOCAL_STORAGE_PREFIX","parseUnpostedOrders","unpostedOrdersData","localStorage","getItem","emptyArray","unpostedOrders","JSON","parse","Array","isArray","logger","error","e","getUnpostedOrders","withStandaloneTx","withBatchTx","forEach","order","push","saveUnpostedOrder","some","o","orderHash","toLowerCase","setItem","stringify","removeUnpostedOrder","filter"],"mappings":";;;;AASA,MAAMA,yBAAAA,GACJ,GAAGC,oBAAoB,CAAA,sBAAA,CAAA;AAEzB,SAASC,mBAAAA,GAAuC;AAC9C,EAAA,MAAMC,kBAAAA,GAAqBC,YAAAA,CAAaC,OAAAA,CAAQL,yBAAyB,CAAA;AACzE,EAAA,IAAI,CAACG,oBAAoB,OAAOG,UAAAA;AAChC,EAAA,IAAI;AACF,IAAA,MAAMC,cAAAA,GAAiBC,IAAAA,CAAKC,KAAAA,CAAMN,kBAAkB,CAAA;AACpD,IAAA,IAAI,CAACO,KAAAA,CAAMC,OAAAA,CAAQJ,cAAc,CAAA,EAAG;AAClCK,MAAAA,MAAAA,CAAOC,MAAM,4CAA4C,CAAA;AACzD,MAAA,OAAOP,UAAAA;AAAAA,IACT;AACA,IAAA,OAAOC,cAAAA;AAAAA,EACT,SAASO,CAAAA,EAAG;AACVF,IAAAA,MAAAA,CAAOC,KAAAA,CAAM,CAAA,gBAAA,EAAmBb,yBAAyB,CAAA,CAAA,CAAA,EAAKc,CAAC,CAAA;AAC/D,IAAA,OAAOR,UAAAA;AAAAA,EACT;AACF;AAEO,SAASS,iBAAAA,GAAoB;AAClC,EAAA,MAAMC,mBAAoD,EAAA;AAC1D,EAAA,MAAMC,cAA0C,EAAA;AAEhDf,EAAAA,mBAAAA,EAAoB,CAAEgB,QAASC,CAAAA,KAAAA,KAAU;AACvC,IAAA,IAAI,qBAAqBA,KAAAA,EAAO;AAC9BH,MAAAA,gBAAAA,CAAiBI,KAAKD,KAAK,CAAA;AAAA,IAC7B,CAAA,MAAA,IAAW,aAAaA,KAAAA,EAAO;AAC7BF,MAAAA,WAAAA,CAAYG,KAAKD,KAAK,CAAA;AAAA,IACxB;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACLH,gBAAAA;AAAAA,IACAC;AAAAA,GACF;AACF;AAEO,SAASI,kBAAkBF,KAAAA,EAAsB;AACtD,EAAA,MAAMZ,iBAAiBL,mBAAAA,EAAoB;AAC3C,EAAA,IACEK,cAAAA,CAAee,IAAAA,CACZC,CAAAA,CAAAA,KAAMA,CAAAA,CAAEC,SAAAA,CAAUC,WAAAA,EAAY,KAAMN,KAAAA,CAAMK,SAAAA,CAAUC,WAAAA,EACvD,CAAA,EAEA;AACFrB,EAAAA,YAAAA,CAAasB,OAAAA,CACX1B,2BACAQ,IAAAA,CAAKmB,SAAAA,CAAU,CAAC,GAAGpB,cAAAA,EAAgBY,KAAK,CAAC,CAC3C,CAAA;AACF;AAEO,SAASS,oBAAoBJ,SAAAA,EAAmB;AACrD,EAAA,MAAMjB,iBAAiBL,mBAAAA,EAAoB;AAE3CE,EAAAA,YAAAA,CAAasB,OAAAA,CACX1B,yBAAAA,EACAQ,IAAAA,CAAKmB,SAAAA,CACHpB,eAAesB,MAAAA,CACZV,CAAAA,KAAAA,KAAUA,KAAAA,CAAMK,SAAAA,CAAUC,aAAY,KAAMD,SAAAA,CAAUC,WAAAA,EACzD,CACF,CACF,CAAA;AACF;;;;"}
@@ -0,0 +1,16 @@
1
+ import { Hash } from 'viem';
2
+ import { PreSignDeltaOrderToPost } from '../../mutations/types';
3
+ type BatchPreSignData = {
4
+ callsId: string;
5
+ };
6
+ type StandalonePreSignData = {
7
+ transactionHash: Hash;
8
+ };
9
+ type PreSignTxData = BatchPreSignData | StandalonePreSignData;
10
+ export type UnpostedOrder = PreSignDeltaOrderToPost & PreSignTxData & {
11
+ timestamp: number;
12
+ };
13
+ export type UnpostedOrderWithStandaloneTx = UnpostedOrder & StandalonePreSignData;
14
+ export type UnpostedOrderWithBatchTx = UnpostedOrder & BatchPreSignData;
15
+ export {};
16
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/orders/unposted/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,KAAK,qBAAqB,GAAG;IAC3B,eAAe,EAAE,IAAI,CAAC;CACvB,CAAC;AACF,KAAK,aAAa,GAAG,gBAAgB,GAAG,qBAAqB,CAAC;AAC9D,MAAM,MAAM,aAAa,GAAG,uBAAuB,GACjD,aAAa,GAAG;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEJ,MAAM,MAAM,6BAA6B,GAAG,aAAa,GACvD,qBAAqB,CAAC;AACxB,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { UnpostedOrder } from './types';
2
+ export declare function processUnpostedOrder(order: UnpostedOrder): Promise<import('@velora-dex/sdk').DeltaOrderApiResponse | undefined>;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../../src/hooks/swap/prices/delta/orders/unposted/utils.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAgG7C,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,aAAa,wEA4B9D"}
@@ -0,0 +1,103 @@
1
+ import { TransactionReceiptNotFoundError } from 'viem';
2
+ import { constructPartialSDK, constructAxiosFetcher, constructGetDeltaOrders, constructPostDeltaOrder } from '@velora-dex/sdk';
3
+ import { isStandaloneTransactionItem, isBatchTransactionItem } from '../../../../../../transactions/utils.js';
4
+ import { apiConfigAtom } from '../../../../../../core/state/apiConfigAtom.js';
5
+ import axios from 'axios';
6
+ import { getApiURL } from '../../../../../../lib/constants/urls.js';
7
+ import { jotaiStore } from '../../../../../../core/store.js';
8
+ import { deltaOrdersQueryKey, ensureDeltaOrderByHashFactory } from '../../queries/useDeltaOrders.js';
9
+ import { userPreSignTransactionsAtom } from '../../../../../../transactions/state/transactionsAtom.js';
10
+ import { queryClient } from '../../../../../../lib/queryClient.js';
11
+ import { getTransactionReceipt, getCallsStatus } from '@wagmi/core';
12
+ import { wagmiConfig } from '../../../../../../lib/web3/wagmi/config.js';
13
+ import { ORDER_TTL_MS, logger } from './const.js';
14
+
15
+ function findPreSignTxForOrder(order, preSignTransactions) {
16
+ const txHash = "transactionHash" in order ? order.transactionHash.toLowerCase() : null;
17
+ const callsId = "callsId" in order ? order.callsId.toLowerCase() : null;
18
+ return preSignTransactions.find((tx) => {
19
+ if (txHash && isStandaloneTransactionItem(tx)) {
20
+ return tx.transactionHash.toLowerCase() === txHash;
21
+ }
22
+ return isBatchTransactionItem(tx) && tx.callsId.toLowerCase() === callsId;
23
+ });
24
+ }
25
+ function constructSDK(chainId) {
26
+ return constructPartialSDK({
27
+ apiURL: getApiURL(),
28
+ chainId,
29
+ fetcher: constructAxiosFetcher(axios, jotaiStore.get(apiConfigAtom))
30
+ }, constructGetDeltaOrders, constructPostDeltaOrder);
31
+ }
32
+ async function shouldPostOrder(order, sdk) {
33
+ const {
34
+ orderHash
35
+ } = order;
36
+ try {
37
+ const ensureOrderByHash = ensureDeltaOrderByHashFactory({
38
+ sdk
39
+ });
40
+ await ensureOrderByHash(orderHash);
41
+ return false;
42
+ } catch (e) {
43
+ if (!axios.isAxiosError(e) || e.response?.status !== 404) {
44
+ logger.error("ensureOrderByHash error", {
45
+ orderHash,
46
+ error: e
47
+ });
48
+ return false;
49
+ }
50
+ }
51
+ const preSignTx = findPreSignTxForOrder(order, jotaiStore.get(userPreSignTransactionsAtom));
52
+ if (!preSignTx || preSignTx.dropped) return false;
53
+ if (isStandaloneTransactionItem(preSignTx)) {
54
+ if (preSignTx.receipt?.status === "reverted") return false;
55
+ try {
56
+ const receipt = await getTransactionReceipt(wagmiConfig, {
57
+ hash: preSignTx.transactionHash
58
+ });
59
+ if (receipt.status === "reverted") return false;
60
+ } catch (error) {
61
+ if (!(error instanceof TransactionReceiptNotFoundError)) {
62
+ return false;
63
+ }
64
+ }
65
+ } else {
66
+ if (preSignTx.callsStatus === "failure") return false;
67
+ try {
68
+ const callsStatus = await getCallsStatus(wagmiConfig, {
69
+ id: preSignTx.callsId
70
+ });
71
+ if (callsStatus?.status === "failure") return false;
72
+ } catch {
73
+ }
74
+ }
75
+ return true;
76
+ }
77
+ async function processUnpostedOrder(order) {
78
+ if (Date.now() - order.timestamp > ORDER_TTL_MS) return;
79
+ const sdk = constructSDK(order.chainId);
80
+ const shouldPost = await shouldPostOrder(order, sdk);
81
+ if (!shouldPost) return;
82
+ const postedOrder = await sdk.postDeltaOrder({
83
+ signature: order.signature,
84
+ order: order.order,
85
+ partner: order.partner,
86
+ referrerAddress: order.referrerAddress,
87
+ type: order.type,
88
+ includeAgents: order.includeAgents,
89
+ excludeAgents: order.excludeAgents
90
+ });
91
+ if (postedOrder) {
92
+ queryClient.invalidateQueries({
93
+ queryKey: deltaOrdersQueryKey({
94
+ userAddress: postedOrder.order.owner
95
+ }),
96
+ exact: false
97
+ });
98
+ }
99
+ return postedOrder;
100
+ }
101
+
102
+ export { processUnpostedOrder };
103
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../../src/hooks/swap/prices/delta/orders/unposted/utils.ts"],"sourcesContent":["import { TransactionReceiptNotFoundError } from \"viem\";\n\nimport {\n constructAxiosFetcher,\n constructGetDeltaOrders,\n constructPartialSDK,\n constructPostDeltaOrder,\n type GetDeltaOrdersFunctions,\n type PostDeltaOrderFunctions,\n} from \"@velora-dex/sdk\";\nimport {\n isBatchTransactionItem,\n isStandaloneTransactionItem,\n} from \"@/transactions/utils\";\nimport type { PreSignTransactionItem } from \"@/transactions/types\";\nimport { apiConfigAtom } from \"@/core/state/apiConfigAtom\";\nimport type { ConstructBaseInput } from \"@velora-dex/sdk/dist/types\";\nimport axios from \"axios\";\nimport { getApiURL } from \"@/lib/constants/urls\";\nimport { jotaiStore } from \"@/core/store\";\nimport {\n deltaOrdersQueryKey,\n ensureDeltaOrderByHashFactory,\n} from \"../../queries/useDeltaOrders\";\nimport { userPreSignTransactionsAtom } from \"@/transactions/state/transactionsAtom\";\nimport { queryClient } from \"@/lib/queryClient\";\nimport { getCallsStatus, getTransactionReceipt } from \"@wagmi/core\";\nimport { wagmiConfig } from \"@/lib/web3/wagmi/config\";\nimport type { UnpostedOrder } from \"./types\";\nimport { logger, ORDER_TTL_MS } from \"./const\";\n\nfunction findPreSignTxForOrder(\n order: UnpostedOrder,\n preSignTransactions: PreSignTransactionItem[]\n) {\n const txHash =\n \"transactionHash\" in order ? order.transactionHash.toLowerCase() : null;\n const callsId = \"callsId\" in order ? order.callsId.toLowerCase() : null;\n\n return preSignTransactions.find((tx) => {\n if (txHash && isStandaloneTransactionItem(tx)) {\n return tx.transactionHash.toLowerCase() === txHash;\n }\n\n return isBatchTransactionItem(tx) && tx.callsId.toLowerCase() === callsId;\n });\n}\n\ntype MinPostOrderSDK = GetDeltaOrdersFunctions &\n PostDeltaOrderFunctions &\n Required<ConstructBaseInput>;\n\nfunction constructSDK(chainId: number): MinPostOrderSDK {\n return constructPartialSDK(\n {\n apiURL: getApiURL(),\n chainId,\n fetcher: constructAxiosFetcher(axios, jotaiStore.get(apiConfigAtom)),\n },\n constructGetDeltaOrders,\n constructPostDeltaOrder\n );\n}\n\nasync function shouldPostOrder(\n order: UnpostedOrder,\n sdk: MinPostOrderSDK\n): Promise<boolean> {\n const { orderHash } = order;\n\n try {\n const ensureOrderByHash = ensureDeltaOrderByHashFactory({ sdk });\n await ensureOrderByHash(orderHash);\n return false; // order already posted\n } catch (e) {\n if (!axios.isAxiosError(e) || e.response?.status !== 404) {\n logger.error(\"ensureOrderByHash error\", { orderHash, error: e });\n return false; // safer not to retry if we cannot identify the error\n }\n }\n\n const preSignTx = findPreSignTxForOrder(\n order,\n jotaiStore.get(userPreSignTransactionsAtom)\n );\n\n // localStorage was cleared in between\n if (!preSignTx || preSignTx.dropped) return false;\n\n if (isStandaloneTransactionItem(preSignTx)) {\n // tx from localStorage reverted\n if (preSignTx.receipt?.status === \"reverted\") return false;\n\n try {\n const receipt = await getTransactionReceipt(wagmiConfig, {\n hash: preSignTx.transactionHash,\n });\n // tx reverted\n if (receipt.status === \"reverted\") return false;\n } catch (error) {\n // tx may still be pending if no receipt is returned\n if (!(error instanceof TransactionReceiptNotFoundError)) {\n return false; // do not retry for other errors\n }\n }\n } else {\n // batch from localStorage failed\n if (preSignTx.callsStatus === \"failure\") return false;\n\n try {\n const callsStatus = await getCallsStatus(wagmiConfig, {\n id: preSignTx.callsId,\n });\n // batch failed\n if (callsStatus?.status === \"failure\") return false;\n } catch {\n // likely wallet that doesn't support batches,\n // or different wallet was connected and callsId is not found\n }\n }\n\n return true;\n}\n\nexport async function processUnpostedOrder(order: UnpostedOrder) {\n // ignore expired orders\n if (Date.now() - order.timestamp > ORDER_TTL_MS) return;\n\n const sdk = constructSDK(order.chainId);\n\n const shouldPost = await shouldPostOrder(order, sdk);\n if (!shouldPost) return;\n\n const postedOrder = await sdk.postDeltaOrder({\n signature: order.signature,\n order: order.order,\n partner: order.partner,\n referrerAddress: order.referrerAddress,\n type: order.type,\n includeAgents: order.includeAgents,\n excludeAgents: order.excludeAgents,\n });\n\n if (postedOrder) {\n // invalidate delta orders query so UI picks up the new order\n queryClient.invalidateQueries({\n queryKey: deltaOrdersQueryKey({ userAddress: postedOrder.order.owner }),\n exact: false,\n });\n }\n\n return postedOrder;\n}\n"],"names":["findPreSignTxForOrder","order","preSignTransactions","txHash","transactionHash","toLowerCase","callsId","find","tx","isStandaloneTransactionItem","isBatchTransactionItem","constructSDK","chainId","constructPartialSDK","apiURL","getApiURL","fetcher","constructAxiosFetcher","axios","jotaiStore","get","apiConfigAtom","constructGetDeltaOrders","constructPostDeltaOrder","shouldPostOrder","sdk","orderHash","ensureOrderByHash","ensureDeltaOrderByHashFactory","e","isAxiosError","response","status","logger","error","preSignTx","userPreSignTransactionsAtom","dropped","receipt","getTransactionReceipt","wagmiConfig","hash","TransactionReceiptNotFoundError","callsStatus","getCallsStatus","id","processUnpostedOrder","Date","now","timestamp","ORDER_TTL_MS","shouldPost","postedOrder","postDeltaOrder","signature","partner","referrerAddress","type","includeAgents","excludeAgents","queryClient","invalidateQueries","queryKey","deltaOrdersQueryKey","userAddress","owner","exact"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
1
+ import { QueryClient, UseQueryOptions, UseQueryResult } from '@tanstack/react-query';
2
2
  import { DeltaOrderApiResponse, GetDeltaOrdersFunctions, DeltaOrderFromAPI } from '@velora-dex/sdk';
3
3
  import { MarkOptional } from 'ts-essentials';
4
4
  export type SubmittedDeltaOrderFromAPI = DeltaOrderApiResponse;
@@ -8,11 +8,11 @@ type DeltaOrderByHashReturn = DeltaOrderFromAPI;
8
8
  type DeltaOrderByHashQueryParams<TData = DeltaOrderByHashReturn> = Omit<UseQueryOptions<DeltaOrderByHashReturn, Error, TData, DeltaOrderByHashQueryKey>, "queryKey" | "queryFn">;
9
9
  type DeltaOrderByHashQueryResult<TData = DeltaOrderByHashReturn> = UseQueryResult<TData, Error>;
10
10
  type DeltaOrderByHashQueryInput<TData = DeltaOrderByHashReturn> = {
11
- orderParams: DeltaOrderByHashParams;
11
+ orderHash: DeltaOrderByHashParams;
12
12
  query?: DeltaOrderByHashQueryParams<TData>;
13
13
  };
14
14
  type DeltaOrderByHashQueryKey = [
15
- base: "swap/delta/order-by-hash",
15
+ base: typeof DELTA_ORDER_BY_HASH_QUERY_KEY,
16
16
  orderParams: DeltaOrderByHashParams
17
17
  ];
18
18
  type DeltaOrderByIdParams = string;
@@ -43,7 +43,12 @@ type DeltaOrdersQueryKey = [
43
43
  base: "swap/delta/orders",
44
44
  orderParams: MarkOptional<DeltaOrdersParams, "userAddress">
45
45
  ];
46
- export declare function useDeltaOrderByHashQuery<TData = DeltaOrderByHashReturn>({ orderParams, query, }: DeltaOrderByHashQueryInput<TData>): DeltaOrderByHashQueryResult<TData>;
46
+ declare const DELTA_ORDER_BY_HASH_QUERY_KEY = "swap/delta/order-by-hash";
47
+ export declare function useDeltaOrderByHashQuery<TData = DeltaOrderByHashReturn>({ orderHash, query, }: DeltaOrderByHashQueryInput<TData>): DeltaOrderByHashQueryResult<TData>;
48
+ export declare function ensureDeltaOrderByHashFactory({ queryClient, sdk, }: {
49
+ queryClient?: QueryClient;
50
+ sdk: GetDeltaOrdersFunctions;
51
+ }): (orderHash: string) => Promise<DeltaOrderFromAPI>;
47
52
  export declare function useDeltaOrderByIdQuery<TData = DeltaOrderByIdReturn>({ orderParams, query, }: DeltaOrderByIdQueryInput<TData>): DeltaOrderByIdQueryResult<TData>;
48
53
  export declare function useDeltaOrdersQuery<TData = DeltaOrdersReturn>({ orderParams, query, }: DeltaOrdersQueryInput<TData>): DeltaOrdersQueryResult<TData>;
49
54
  export declare function useUserDeltaOrdersQuery<TData = DeltaOrdersReturn>({ orderParams: _orderParams, query, }: UserDeltaOrdersQueryInput<TData>): DeltaOrdersQueryResult<TData>;
@@ -1 +1 @@
1
- {"version":3,"file":"useDeltaOrders.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaOrders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useDeltaOrders.d.ts","sourceRoot":"","sources":["../../../../../../src/hooks/swap/prices/delta/queries/useDeltaOrders.ts"],"names":[],"mappings":"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"}