Skip to content

Releases: coinbase/onchainkit

v0.31.4

05 Sep 22:13
582cd72
Compare
Choose a tag to compare

Patch Changes

v0.31.3

03 Sep 20:22
e1ebadb
Compare
Choose a tag to compare

Patch Changes

  • a417d30: - feat: added buildPayTransaction utilities for making RPC calls to hydrate a charge and build a pay transaction in preparation for Pay button. By @avidreder #1177

v0.31.2

29 Aug 21:11
22f7b2d
Compare
Choose a tag to compare

Patch Changes

  • ef6e936: - feat: added connect wallet functionality to Swap component for disconnected users. By @abcrane123 #1173
    • fix: added logic to refetch balances and clear inputs after Swap succeeds. By @0xAlec #1089
    • fix: adjusted Swap component style to prevent UI shifting. By @abcrane123 #1184

v0.31.1

27 Aug 17:09
356cab8
Compare
Choose a tag to compare

Patch Changes

  • 003c9b6: - fix: improved hover state for WalletDropdown component. By @cpcramer #1156
    • feat: added onchainkit-version header to API requests. By @0xAlec #1169
    • feat: introduced getAddress and useAddress utilities to easily retrieve an address from ENS name or basename. By @Zizzamia #1170

v0.31.0

23 Aug 23:14
aae1726
Compare
Choose a tag to compare

Minor Changes

  • 4382d93: - fix: error message in Swap experience. By @Zizzamia & @0xAlec #1154 #1153 #1155

    Breaking Changes
    We streamlined the Swap experience to match the Transaction experience by eliminating the need for an address prop, making it work automatically.

    All APIs within OnchainKit are now consolidated under the @coinbase/onchainkit/api module. There's no change in functionality; simply import them from the api module.

v0.30.0

22 Aug 23:52
5a856fc
Compare
Choose a tag to compare

Minor Changes

  • feat: Moved the onError and onSuccess lifecycle listeners from the <SwapButton> component to the <Swap> component. By @Zizzamia #1139 ed2379e

Breaking Changes
OnchainKit standardizes lifecycle listeners with three callbacks: onError, onSuccess, and onStatus. The onError and onSuccess callbacks handle only the error and success states, respectively. In contrast, the onStatus callback provides more granular phases of each component's experience.

Before, we used onError and onSuccess in the <SwapButton /> component.

    const handleOnError = useCallback((error) => {
      console.log(error);
    }, []);

    const handleOnSuccess = useCallback((response) => {
      console.log(response);
    }, []);

    ...

    <Swap address={address}>
      <SwapAmountInput
        label="Sell"
        swappableTokens={swappableTokens}
        token={ETHToken}
        type="from"
      />
      <SwapToggleButton />
      <SwapAmountInput
        label="Buy"
        swappableTokens={swappableTokens}
        token={USDCToken}
        type="to"
      />
      <SwapButton
        onError={handleOnError}
        onSuccess={handleOnSuccess}
      />
      <SwapMessage />
    </Swap>

After, we use onStatus in the <Swap /> component.

    const handleOnStatus = useCallback((lifeCycleStatus: LifeCycleStatus) => {
      console.log('Status:', lifeCycleStatus);
    }, []);

    ...

    <Swap
      address={address}
      onStatus={handleOnStatus}
    >
      <SwapAmountInput
        label="Sell"
        swappableTokens={swappableTokens}
        token={ETHToken}
        type="from"
      />
      <SwapToggleButton />
      <SwapAmountInput
        label="Buy"
        swappableTokens={swappableTokens}
        token={USDCToken}
        type="to"
      />
      <SwapButton />
      <SwapMessage />
    </Swap>

The onStatus callback will expose

    export type LifeCycleStatus =
      | {
          statusName: "init";
          statusData: null;
        }
      | {
          statusName: "error";
          statusData: SwapError;
        }
      | {
          statusName: "amountChange";
          statusData: null;
        }
      | {
          statusName: "transactionPending";
          statusData: null;
        }
      | {
          statusName: "transactionApproved";
          statusData: {
            transactionHash: Hex;
            transactionType: "ERC20" | "Permit2";
          };
        }
      | {
          statusName: "success";
          statusData: {
            transactionReceipt: TransactionReceipt;
          };
        };

v0.29.5

21 Aug 23:41
ded8cf9
Compare
Choose a tag to compare

Patch Changes

  • feat: exported buildSwapTransaction, getSwapQuote and getTokens from API module. By @Zizzamia #1133 07c5af6
  • feat: added useSendCall and useSendCalls hooks to support call-type transactions in Transaction component. By @0xAlec #1130

v0.29.4

21 Aug 19:55
746894d
Compare
Choose a tag to compare

Patch Changes

  • feat: moved onSuccess and onError for Swap component at top level. By @Zizzamia #1123 886d974
  • patch: removed unneccessary address prop from Transaction component and fix issue where Sponsor component isn't visible. By @abcrane123 #1114
  • chore: updated disconnect SVG image. By @cpcramer #1103
  • fix: improved issue with Swap where it wasn't fetching quote for amount without a leading 0. By @abcrane123 #1128
    g

v0.29.3

20 Aug 18:56
70bedb3
Compare
Choose a tag to compare

Patch Changes

  • chore: Update all cases of BaseName to Basename. Update WalletDropdownBaseName to WalletDropdownBasename. Update the identity type BaseName to Basename and WalletDropdownBaseNameReact to WalletDropdownBasenameReact. By @cpcramer #1110 3d47932

v0.29.2

19 Aug 19:46
4b7bf3f
Compare
Choose a tag to compare

Patch Changes

  • fix: better defined pressable classes were accessing the hover state variable. Update the TransactionButton and WalletDropdown to use our pre-existing pressable classes. By @cpcramer #1092 704e160
  • feat: added transactionIdle and transactionPending to lifeCycleStatus in the Transaction experience. By @Zizzamia #1088