@rango-dev/queue-manager-rango-preset 0.1.15-next.6 → 0.1.15-next.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/types.d.ts CHANGED
@@ -32,6 +32,7 @@ export interface SwapQueueContext extends QueueContext {
32
32
  providers: Providers;
33
33
  getSigners: (type: WalletType) => SignerFactory;
34
34
  switchNetwork: (wallet: WalletType, network: Network) => Promise<ConnectResult> | undefined;
35
+ canSwitchNetworkTo: (type: WalletType, network: Network) => boolean;
35
36
  connect: (wallet: WalletType, network: Network) => Promise<ConnectResult> | undefined;
36
37
  state: (type: WalletType) => WalletState;
37
38
  isMobileWallet: (type: WalletType) => boolean;
@@ -45,5 +46,6 @@ export interface UseQueueManagerParams {
45
46
  clearDisconnectedWallet: () => void;
46
47
  evmChains: EvmBlockchainMeta[];
47
48
  notifier: SwapQueueContext['notifier'];
49
+ canSwitchNetworkTo: (type: WalletType, network: Network) => boolean;
48
50
  }
49
51
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/D,oBAAY,YAAY,GAAG,QAAQ,CACjC,WAAW,EACX,eAAe,EACf,gBAAgB,CACjB,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;CACtD;AAED,oBAAY,iBAAiB,GAAG,CAC9B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,OAAO,KACb,MAAM,GAAG,SAAS,CAAC;AAExB,oBAAY,WAAW;IACrB,uBAAuB,kCAAkC;IACzD,uBAAuB,+BAA+B;IACtD,uBAAuB,4BAA4B;CACpD;AAGD,MAAM,WAAW,KAAK,CAAC,CAAC,GAAG,GAAG;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAC;CACb;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,aAAa,CAAC;IAChD,aAAa,EAAE,CACb,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACxC,OAAO,EAAE,CACP,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACxC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,WAAW,CAAC;IACzC,cAAc,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;IAC9C,QAAQ,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAGnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,UAAU,GAAG,SAAS,CAAC;IAC3C,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;CACxC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EACL,IAAI,EACJ,OAAO,EACP,WAAW,EACX,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/D,oBAAY,YAAY,GAAG,QAAQ,CACjC,WAAW,EACX,eAAe,EACf,gBAAgB,CACjB,CAAC;AAEF,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C,WAAW,EAAE,WAAW,CAAC;CAC1B;AAED,oBAAY,eAAe;IACzB,KAAK,UAAU;IACf,kBAAkB,uBAAuB;IACzC,kBAAkB,uBAAuB;IACzC,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;CACtD;AAED,oBAAY,iBAAiB,GAAG,CAC9B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,OAAO,KACb,MAAM,GAAG,SAAS,CAAC;AAExB,oBAAY,WAAW;IACrB,uBAAuB,kCAAkC;IACzD,uBAAuB,+BAA+B;IACtD,uBAAuB,4BAA4B;CACpD;AAGD,MAAM,WAAW,KAAK,CAAC,CAAC,GAAG,GAAG;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,CAAC;CACb;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,aAAa,CAAC;IAChD,aAAa,EAAE,CACb,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACxC,kBAAkB,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;IACpE,OAAO,EAAE,CACP,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IACxC,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,WAAW,CAAC;IACzC,cAAc,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,OAAO,CAAC;IAC9C,QAAQ,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAGnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,UAAU,GAAG,SAAS,CAAC;IAC3C,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;IACvC,kBAAkB,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC;CACrE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/queue-manager-rango-preset",
3
- "version": "0.1.15-next.6",
3
+ "version": "0.1.15-next.7",
4
4
  "license": "MIT",
5
5
  "module": "dist/queue-manager-rango-preset.esm.js",
6
6
  "main": "dist/index.js",
package/src/helpers.ts CHANGED
@@ -96,7 +96,7 @@ export function claimQueue() {
96
96
  * map of transactions hash to the TransactionResponse
97
97
  *
98
98
  */
99
- let swapTransactionToResponseMap: { [id: string]: any } = {};
99
+ const swapTransactionToResponseMap: { [id: string]: any } = {};
100
100
  export function useTransactionsResponse() {
101
101
  return {
102
102
  getTransactionResponseByHash: (hash: string) =>
@@ -286,7 +286,7 @@ export function updateSwapStatus({
286
286
  const currentStep = getCurrentStep(swap);
287
287
  if (!!nextStepStatus && !!currentStep) currentStep.status = nextStepStatus;
288
288
 
289
- if (!!nextStatus) swap.status = nextStatus;
289
+ if (nextStatus) swap.status = nextStatus;
290
290
  swap.hasAlreadyProceededToSign = hasAlreadyProceededToSign;
291
291
  if (!!nextStatus && ['failed', 'success'].includes(nextStatus))
292
292
  swap.finishTime = new Date().getTime().toString();
@@ -354,7 +354,7 @@ export function setStepTransactionIds(
354
354
  const currentStep = getCurrentStep(swap)!;
355
355
  currentStep.executedTransactionId = txId;
356
356
  currentStep.executedTransactionTime = new Date().getTime().toString();
357
- if (!!explorerUrl?.url)
357
+ if (explorerUrl?.url)
358
358
  currentStep.explorerUrl = [
359
359
  ...(currentStep.explorerUrl || []),
360
360
  {
@@ -376,7 +376,7 @@ export function setStepTransactionIds(
376
376
  ...getStorage(),
377
377
  swapDetails: swap,
378
378
  });
379
- if (!!eventType)
379
+ if (eventType)
380
380
  notifier({ eventType: eventType, swap: swap, step: currentStep });
381
381
  }
382
382
 
@@ -613,7 +613,7 @@ export async function isNetworkMatchedForTransaction(
613
613
  if (!fromBlockChain) return false;
614
614
 
615
615
  if (
616
- !!meta.evmBasedChains.find(
616
+ meta.evmBasedChains.find(
617
617
  (evmBlochain) => evmBlochain.name === fromBlockChain
618
618
  )
619
619
  ) {
@@ -783,16 +783,18 @@ export function onBlockForChangeNetwork(
783
783
  // Try to auto switch
784
784
  const { type, network } = getRequiredWallet(swap);
785
785
  if (!!type && !!network) {
786
- const result = context.switchNetwork(type, network);
787
- if (result) {
788
- result
789
- .then(() => {
790
- queue.unblock();
791
- })
792
- .catch((error) => {
793
- // ignore switch network errors
794
- console.log({ error });
795
- });
786
+ if (context.canSwitchNetworkTo(type, network)) {
787
+ const result = context.switchNetwork(type, network);
788
+ if (result) {
789
+ result
790
+ .then(() => {
791
+ queue.unblock();
792
+ })
793
+ .catch((error) => {
794
+ // ignore switch network errors
795
+ console.log({ error });
796
+ });
797
+ }
796
798
  }
797
799
  }
798
800
  }
@@ -860,7 +862,12 @@ export function onDependsOnOtherQueues(
860
862
  resetClaimedBy: () => {
861
863
  reset();
862
864
  // TODO: Use key generator
863
- retryOn(`${type}-${network}:${address}`, context.notifier, manager);
865
+ retryOn(
866
+ `${type}-${network}:${address}`,
867
+ context.notifier,
868
+ manager,
869
+ context.canSwitchNetworkTo
870
+ );
864
871
  },
865
872
  });
866
873
  }
@@ -1147,7 +1154,7 @@ export function checkWaitingForNetworkChange(manager?: Manager): void {
1147
1154
  */
1148
1155
  export function getRunningSwaps(manager: Manager): PendingSwap[] {
1149
1156
  const queues = manager?.getAll() || new Map<QueueName, QueueInfo>();
1150
- let result: PendingSwap[] = [];
1157
+ const result: PendingSwap[] = [];
1151
1158
  queues.forEach((q) => {
1152
1159
  // retry only on affected queues
1153
1160
  const queueStorage = q.list.getStorage() as SwapStorage | undefined;
@@ -1204,6 +1211,7 @@ export function retryOn(
1204
1211
  wallet_network: string,
1205
1212
  notifier: SwapQueueContext['notifier'],
1206
1213
  manager?: Manager,
1214
+ canSwitchNetworkTo?: (type: WalletType, network: Network) => boolean,
1207
1215
  options = { fallbackToOnlyWallet: true }
1208
1216
  ): void {
1209
1217
  const [wallet, network] = splitWalletNetwork(wallet_network);
@@ -1258,7 +1266,9 @@ export function retryOn(
1258
1266
  finalQueueToBeRun = onlyWalletMatched[0];
1259
1267
  }
1260
1268
 
1261
- finalQueueToBeRun?.checkBlock();
1269
+ if (!canSwitchNetworkTo?.(wallet, network as Network))
1270
+ finalQueueToBeRun?.unblock();
1271
+ else finalQueueToBeRun?.checkBlock();
1262
1272
  }
1263
1273
 
1264
1274
  /*
@@ -1276,17 +1286,13 @@ For backward compatibilty with server and sdk, we use this wrapper to reject the
1276
1286
  export async function throwOnOK(
1277
1287
  rawResponse: Promise<CreateTransactionResponse>
1278
1288
  ): Promise<CreateTransactionResponse> {
1279
- try {
1280
- const responseBody = await rawResponse;
1281
- if (!responseBody.ok || !responseBody.transaction) {
1282
- throw PrettyError.CreateTransaction(
1283
- responseBody.error || 'bad response from create tx endpoint'
1284
- );
1285
- }
1286
- return responseBody;
1287
- } catch (e) {
1288
- throw e;
1289
+ const responseBody = await rawResponse;
1290
+ if (!responseBody.ok || !responseBody.transaction) {
1291
+ throw PrettyError.CreateTransaction(
1292
+ responseBody.error || 'bad response from create tx endpoint'
1293
+ );
1289
1294
  }
1295
+ return responseBody;
1290
1296
  }
1291
1297
 
1292
1298
  export function cancelSwap(
package/src/hooks.ts CHANGED
@@ -56,7 +56,12 @@ function useQueueManager(params: UseQueueManagerParams): void {
56
56
  manager,
57
57
  notifier: params.notifier,
58
58
  });
59
- retryOn(params.lastConnectedWallet, params.notifier, manager);
59
+ retryOn(
60
+ params.lastConnectedWallet,
61
+ params.notifier,
62
+ manager,
63
+ params.canSwitchNetworkTo
64
+ );
60
65
  }
61
66
  }, [params.lastConnectedWallet]);
62
67
 
package/src/types.ts CHANGED
@@ -55,6 +55,7 @@ export interface SwapQueueContext extends QueueContext {
55
55
  wallet: WalletType,
56
56
  network: Network
57
57
  ) => Promise<ConnectResult> | undefined;
58
+ canSwitchNetworkTo: (type: WalletType, network: Network) => boolean;
58
59
  connect: (
59
60
  wallet: WalletType,
60
61
  network: Network
@@ -74,4 +75,5 @@ export interface UseQueueManagerParams {
74
75
  clearDisconnectedWallet: () => void;
75
76
  evmChains: EvmBlockchainMeta[];
76
77
  notifier: SwapQueueContext['notifier'];
78
+ canSwitchNetworkTo: (type: WalletType, network: Network) => boolean;
77
79
  }