Skip to content

Commit b6de9c7

Browse files
authored
fix: set coinbase sandbox correctly (#2371)
1 parent 763e7a0 commit b6de9c7

File tree

5 files changed

+11
-23
lines changed

5 files changed

+11
-23
lines changed

packages/keychain/src/context/starterpack/onchain-purchase.tsx

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,6 @@ export const OnchainPurchaseProvider = ({
135135
clearSelectedWallet: clearSelectedWalletInternal,
136136
walletError,
137137
} = useExternalWallet({
138-
controller,
139138
onError: setDisplayError,
140139
});
141140

@@ -173,7 +172,6 @@ export const OnchainPurchaseProvider = ({
173172
isTokenSelectionLocked,
174173
resetTokenSelection,
175174
} = useTokenSelection({
176-
controller,
177175
starterpackDetails: onchainDetails,
178176
quantity,
179177
selectedPlatform,
@@ -193,8 +191,6 @@ export const OnchainPurchaseProvider = ({
193191
onSendDeposit: onSendDepositInternal,
194192
waitForDeposit,
195193
} = useLayerswap({
196-
controller,
197-
isMainnet,
198194
selectedPlatform,
199195
walletAddress,
200196
selectedWallet,
@@ -212,7 +208,6 @@ export const OnchainPurchaseProvider = ({
212208
coinbaseQuote,
213209
isFetchingQuote: isFetchingCoinbaseQuote,
214210
} = useCoinbase({
215-
controller,
216211
onError: setDisplayError,
217212
});
218213

packages/keychain/src/hooks/starterpack/coinbase.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
CoinbaseOnRampQuoteQuery,
99
} from "@cartridge/ui/utils/api/cartridge";
1010
import { request } from "@/utils/graphql";
11-
import Controller from "@/utils/controller";
11+
import { useConnection } from "../connection";
1212

1313
// Derive types from the actual GraphQL query/mutation results
1414
export type CoinbaseOrderResult =
@@ -28,7 +28,6 @@ export interface CoinbaseQuoteInput {
2828
}
2929

3030
export interface UseCoinbaseOptions {
31-
controller: Controller | undefined;
3231
onError?: (error: Error) => void;
3332
}
3433

@@ -49,13 +48,14 @@ export interface UseCoinbaseReturn {
4948

5049
const createCoinbaseOrder = async (
5150
input: CreateOrderInput,
51+
sandbox: boolean = true,
5252
): Promise<CoinbaseOrderResult> => {
5353
const result = await request<CreateCoinbaseLayerswapOrderMutation>(
5454
CreateCoinbaseLayerswapOrderDocument,
5555
{
5656
input: {
5757
purchaseUSDCAmount: input.purchaseUSDCAmount,
58-
sandbox: true,
58+
sandbox,
5959
},
6060
},
6161
);
@@ -94,9 +94,9 @@ const getCoinbaseQuote = async (
9494
* Hook for managing Coinbase onramp functionality
9595
*/
9696
export function useCoinbase({
97-
controller,
9897
onError,
9998
}: UseCoinbaseOptions): UseCoinbaseReturn {
99+
const { controller, isMainnet } = useConnection();
100100
const [orderId, setOrderId] = useState<string | undefined>();
101101
const [paymentLink, setPaymentLink] = useState<string | undefined>();
102102
const [isCreatingOrder, setIsCreatingOrder] = useState(false);
@@ -116,7 +116,7 @@ export function useCoinbase({
116116
setIsCreatingOrder(true);
117117
setOrderError(null);
118118

119-
const order = await createCoinbaseOrder(input);
119+
const order = await createCoinbaseOrder(input, !isMainnet);
120120

121121
setOrderId(order.coinbaseOrder.orderId);
122122
setPaymentLink(order.coinbaseOrder.paymentLink);
@@ -131,7 +131,7 @@ export function useCoinbase({
131131
setIsCreatingOrder(false);
132132
}
133133
},
134-
[controller, onError],
134+
[controller, isMainnet, onError],
135135
);
136136

137137
const getTransactions = useCallback(

packages/keychain/src/hooks/starterpack/external-wallet.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { useState, useCallback } from "react";
22
import { ExternalPlatform, ExternalWallet } from "@cartridge/controller";
33
import { useWallets } from "@/hooks/wallets";
4-
import Controller from "@/utils/controller";
4+
import { useConnection } from "../connection";
55

66
export interface UseExternalWalletOptions {
7-
controller: Controller | undefined;
87
onError?: (error: Error) => void;
98
}
109

@@ -32,9 +31,9 @@ export interface UseExternalWalletReturn {
3231
* Hook for managing external wallet connections (Argent, Braavos, etc.)
3332
*/
3433
export function useExternalWallet({
35-
controller,
3634
onError,
3735
}: UseExternalWalletOptions): UseExternalWalletReturn {
36+
const { controller } = useConnection();
3837
const { error: walletError, connectWallet, switchChain } = useWallets();
3938

4039
const [selectedWallet, setSelectedWallet] = useState<

packages/keychain/src/hooks/starterpack/layerswap.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ import {
3232
import { ethers } from "ethers";
3333
import erc20abi from "./erc20abi.json" assert { type: "json" };
3434
import { depositToLayerswapInput } from "@/utils/payments";
35-
import Controller from "@/utils/controller";
3635
import { ExternalWalletError } from "@/utils/errors";
3736

3837
const DEPOSIT_MAX_WAIT_TIME = 10 * 60 * 1000; // 10 minutes
@@ -51,8 +50,6 @@ export interface Explorer {
5150
}
5251

5352
export interface UseLayerswapOptions {
54-
controller: Controller | undefined;
55-
isMainnet: boolean;
5653
selectedPlatform: ExternalPlatform | undefined;
5754
walletAddress: string | undefined;
5855
selectedWallet: ExternalWallet | undefined;
@@ -377,15 +374,13 @@ export function mapPlatformToLayerswapSourceNetwork(
377374
* Hook for managing Layerswap deposit/bridge functionality
378375
*/
379376
export function useLayerswap({
380-
controller,
381-
isMainnet,
382377
selectedPlatform,
383378
walletAddress,
384379
selectedWallet,
385380
onTransactionHash,
386381
onError,
387382
}: UseLayerswapOptions): UseLayerswapReturn {
388-
const { externalSendTransaction } = useConnection();
383+
const { controller, externalSendTransaction, isMainnet } = useConnection();
389384
const [requestedAmount, setRequestedAmount] = useState<number | undefined>();
390385
const [layerswapFees, setLayerswapFees] = useState<string | undefined>();
391386
const [swapId, setSwapId] = useState<string | undefined>();

packages/keychain/src/hooks/starterpack/token-selection.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import {
1616
isOnchainStarterpack,
1717
type OnchainStarterpackDetails,
1818
} from "@/context/starterpack/types";
19-
import Controller from "@/utils/controller";
19+
import { useConnection } from "../connection";
2020

2121
export interface TokenOption {
2222
name: string;
@@ -40,7 +40,6 @@ export interface ConvertedPrice {
4040
}
4141

4242
export interface UseTokenSelectionOptions {
43-
controller: Controller | undefined;
4443
starterpackDetails: OnchainStarterpackDetails | undefined;
4544
quantity: number;
4645
selectedPlatform: ExternalPlatform | undefined;
@@ -71,11 +70,11 @@ export interface UseTokenSelectionReturn {
7170
* Hook for managing token selection and price conversion for onchain purchases
7271
*/
7372
export function useTokenSelection({
74-
controller,
7573
starterpackDetails,
7674
quantity,
7775
selectedPlatform,
7876
}: UseTokenSelectionOptions): UseTokenSelectionReturn {
77+
const { controller } = useConnection();
7978
const [selectedToken, setSelectedTokenState] = useState<
8079
TokenOption | undefined
8180
>();

0 commit comments

Comments
 (0)