Skip to content

Commit 93e5180

Browse files
committed
fix: handle empty data response in OKX provider
1 parent 624f8dc commit 93e5180

2 files changed

Lines changed: 44 additions & 100 deletions

File tree

packages/extension/src/ui/action/views/swap/index.vue

Lines changed: 40 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -10,109 +10,50 @@
1010
</div>
1111

1212
<div class="swap__wrap">
13-
<swap-token-amount-input
14-
v-if="fromToken"
15-
:value="fromAmount || ''"
16-
:token="fromToken"
17-
:autofocus="true"
18-
:error-message="errors.inputAmount"
19-
@update:input-max="setMax"
20-
@toggle:select="toggleFromToken"
21-
@update:value="inputAmountFrom"
22-
/>
13+
<swap-token-amount-input v-if="fromToken" :value="fromAmount || ''" :token="fromToken" :autofocus="true"
14+
:error-message="errors.inputAmount" @update:input-max="setMax" @toggle:select="toggleFromToken"
15+
@update:value="inputAmountFrom" />
2316

2417
<a class="swap__arrows"><swap-arrows /></a>
2518

26-
<swap-network-select
27-
v-if="toNetwork"
28-
:network="toNetwork"
29-
@toggle:select="toggleToNetwork"
30-
/>
31-
32-
<swap-token-to-amount
33-
:token="toToken"
34-
:is-finding-rate="isFindingRate"
35-
:fast-list="trendingToTokens"
36-
:total-tokens="toTokens.length - trendingToTokens.length"
37-
:amount="toAmount"
38-
:no-providers="errors.noProviders"
39-
@update:select-asset="selectTokenTo"
40-
@toggle:select="toggleToToken"
41-
/>
42-
43-
<send-address-input
44-
ref="addressInput"
45-
:value="address"
46-
:is-valid-address="addressIsValid"
47-
:network-name="toAddressInputMeta.networkName"
48-
:display-address="toAddressInputMeta.displayAddress"
49-
:identicon="toAddressInputMeta.identicon"
50-
@update:input-address="inputAddress"
51-
@toggle:show-contacts="toggleSelectContact"
52-
/>
53-
54-
<send-contacts-list
55-
:show-accounts="isOpenSelectContact"
56-
:accounts="toAccounts"
57-
:address="address"
58-
:display-address="toAddressInputMeta.displayAddress"
59-
:identicon="toAddressInputMeta.identicon"
60-
@selected:account="selectAccount"
61-
@update:paste-from-clipboard="addressInput.pasteFromClipboard()"
62-
@close="toggleSelectContact"
63-
/>
19+
<swap-network-select v-if="toNetwork" :network="toNetwork" @toggle:select="toggleToNetwork" />
20+
21+
<swap-token-to-amount :token="toToken" :is-finding-rate="isFindingRate" :fast-list="trendingToTokens"
22+
:total-tokens="toTokens.length - trendingToTokens.length" :amount="toAmount"
23+
:no-providers="errors.noProviders" @update:select-asset="selectTokenTo" @toggle:select="toggleToToken" />
24+
25+
<send-address-input ref="addressInput" :value="address" :is-valid-address="addressIsValid"
26+
:network-name="toAddressInputMeta.networkName" :display-address="toAddressInputMeta.displayAddress"
27+
:identicon="toAddressInputMeta.identicon" @update:input-address="inputAddress"
28+
@toggle:show-contacts="toggleSelectContact" />
29+
30+
<send-contacts-list :show-accounts="isOpenSelectContact" :accounts="toAccounts" :address="address"
31+
:display-address="toAddressInputMeta.displayAddress" :identicon="toAddressInputMeta.identicon"
32+
@selected:account="selectAccount" @update:paste-from-clipboard="addressInput.pasteFromClipboard()"
33+
@close="toggleSelectContact" />
6434
</div>
6535

6636
<div class="swap__buttons">
6737
<div class="swap__buttons-cancel">
68-
<base-button
69-
title="Cancel"
70-
:no-background="true"
71-
@click="router.go(-1)"
72-
/>
38+
<base-button title="Cancel" :no-background="true" @click="router.go(-1)" />
7339
</div>
7440
<div class="swap__buttons-send">
75-
<base-button
76-
:title="sendButtonTitle"
77-
:click="sendAction"
78-
:disabled="isDisabled"
79-
/>
41+
<base-button :title="sendButtonTitle" :click="sendAction" :disabled="isDisabled" />
8042
</div>
8143
</div>
8244
</div>
8345
</div>
8446

85-
<network-select-list
86-
v-model="toNetworkOpen"
87-
:assets="toNetworks"
88-
@update:select-asset="selectToNetwork"
89-
/>
90-
91-
<assets-select-list
92-
v-model="fromSelectOpened"
93-
:assets="fromTokens"
94-
@update:select-asset="selectTokenFrom"
95-
/>
96-
97-
<assets-select-list
98-
v-model="toSelectOpened"
99-
:is-select-to-token="true"
100-
:assets="toTokens"
101-
:is-loading="fetchingTokens"
102-
@update:select-asset="selectTokenTo"
103-
/>
104-
105-
<swap-looking
106-
v-show="isLooking"
107-
:loading-type="LoadingType"
108-
:close="toggleLooking"
109-
/>
110-
<swap-error-popup
111-
v-if="showSwapError"
112-
:error="swapError"
113-
:network-name="network.name_long"
114-
:close="toggleSwapError"
115-
/>
47+
<network-select-list v-model="toNetworkOpen" :assets="toNetworks" @update:select-asset="selectToNetwork" />
48+
49+
<assets-select-list v-model="fromSelectOpened" :assets="fromTokens" @update:select-asset="selectTokenFrom" />
50+
51+
<assets-select-list v-model="toSelectOpened" :is-select-to-token="true" :assets="toTokens"
52+
:is-loading="fetchingTokens" @update:select-asset="selectTokenTo" />
53+
54+
<swap-looking v-show="isLooking" :loading-type="LoadingType" :close="toggleLooking" />
55+
<swap-error-popup v-if="showSwapError" :error="swapError" :network-name="network.name_long"
56+
:close="toggleSwapError" />
11657
</div>
11758
</template>
11859

@@ -171,7 +112,7 @@ import { Connection } from '@solana/web3.js';
171112
import { SwapType } from '@enkryptcom/swap/src/types';
172113
173114
// eslint-disable-next-line @typescript-eslint/no-unused-vars
174-
const debug = (..._args: any[]) => {};
115+
const debug = (..._args: any[]) => { };
175116
// Use this debug instead to enable debug logging
176117
// const debug = console.debug.bind(console);
177118
@@ -315,10 +256,10 @@ onMounted(async () => {
315256
if (props.network.name === net) {
316257
thisNetwork =
317258
swapToTokens.all[net as unknown as SupportedNetworkName].length ===
318-
1
259+
1
319260
? getNetworkInfoByName(
320-
NetworkNames.Ethereum as unknown as SupportedNetworkName,
321-
)
261+
NetworkNames.Ethereum as unknown as SupportedNetworkName,
262+
)
322263
: netInfo;
323264
}
324265
toNetworks.value.push(netInfo);
@@ -609,7 +550,7 @@ const updateQuote = () => {
609550
} catch (err) {
610551
console.warn(
611552
`Failed to convert amount to raw: ${err}` +
612-
` fromAmount.value=${fromAmount.value} (${typeof fromAmount.value})`,
553+
` fromAmount.value=${fromAmount.value} (${typeof fromAmount.value})`,
613554
);
614555
throw err;
615556
}
@@ -796,8 +737,8 @@ const sendAction = async () => {
796737
if (!fromToken.value!.cgId) {
797738
console.warn(
798739
`Source token ${fromToken.value!.symbol} (${fromToken.value!.name})` +
799-
` ${fromToken.value!.address} has no CoinGecko ID, setting price` +
800-
` to 0`,
740+
` ${fromToken.value!.address} has no CoinGecko ID, setting price` +
741+
` to 0`,
801742
);
802743
fromPrice = 0;
803744
} else {
@@ -809,8 +750,8 @@ const sendAction = async () => {
809750
if (!toToken.value!.cgId) {
810751
console.warn(
811752
`Destination token ${toToken.value!.symbol} (${toToken.value!.name})` +
812-
` ${toToken.value!.address} has no CoinGecko ID, setting price` +
813-
` to 0`,
753+
` ${toToken.value!.address} has no CoinGecko ID, setting price` +
754+
` to 0`,
814755
);
815756
toPrice = 0;
816757
} else {
@@ -961,7 +902,7 @@ const sendAction = async () => {
961902
position: absolute;
962903
left: 0;
963904
bottom: 0;
964-
padding: 32px;
905+
padding: 28px;
965906
display: flex;
966907
justify-content: space-between;
967908
align-items: center;

packages/swap/src/providers/okx/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,10 @@ export class OKX extends ProviderClass {
502502
}
503503

504504
const data = await response.json();
505-
return data.data;
505+
if (data.data) {
506+
return data.data;
507+
}
508+
return [];
506509
});
507510
}
508511

0 commit comments

Comments
 (0)