@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/helpers.d.ts +1 -1
- package/dist/helpers.d.ts.map +1 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/queue-manager-rango-preset.cjs.development.js +25 -28
- package/dist/queue-manager-rango-preset.cjs.development.js.map +1 -1
- package/dist/queue-manager-rango-preset.cjs.production.min.js +1 -1
- package/dist/queue-manager-rango-preset.cjs.production.min.js.map +1 -1
- package/dist/queue-manager-rango-preset.esm.js +25 -28
- package/dist/queue-manager-rango-preset.esm.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/helpers.ts +34 -28
- package/src/hooks.ts +6 -1
- package/src/types.ts +2 -0
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
|
package/dist/types.d.ts.map
CHANGED
|
@@ -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;
|
|
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
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
|
-
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
787
|
-
|
|
788
|
-
result
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
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(
|
|
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
|
}
|