Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: adding eth & tokenfactory types #389

Merged
merged 4 commits into from
Nov 20, 2024

Conversation

CalicoNino
Copy link
Contributor

@CalicoNino CalicoNino commented Nov 20, 2024

In order to signAndBroadcat Eth Funtokens and Tokenfactory, we need to add them to the registry types.

This can be tested locally via the following script

import { EncodeObject } from "@cosmjs/proto-signing"
import {
  NibiruTxClient,
  Chain,
  Testnet,
  newSignerFromMnemonic,
  MsgCreateDenom,
  MsgCreateDenomResponse,
} from "./src"

const main = async () => {
  const chain: Chain = Testnet() // Permanent testnet

  const signer = await newSignerFromMnemonic("") // Signer: in-practice
  const txClient = await NibiruTxClient.connectWithSigner(chain.endptTm, signer)

  const account = await signer.getAccounts() // from cosmos
  const signerAddress = account[0].address
  console.log(signerAddress)

  const fee = "auto" // You can specify the fee if needed

  const msgs: EncodeObject[] = [
    {
      typeUrl: "/nibiru.tokenfactory.v1.MsgCreateDenom",
      value: MsgCreateDenom.fromPartial({
        sender: signerAddress,
        subdenom: "urexx", // replace with your subdenom
      }),
    },
  ]

  const tx = await txClient.signAndBroadcast(signerAddress, msgs, fee)

  console.log(tx)

  const rtx = MsgCreateDenomResponse.decode(tx.msgResponses[0].value)
  console.log(rtx)
}

main()


Summary by CodeRabbit

  • New Features

    • Introduced new constants for Ethereum and TokenFactory message handling, enhancing organization and type safety.
    • Expanded the capabilities of the transaction client to support additional message types related to Ethereum and TokenFactory operations.
  • Bug Fixes

    • Improved the extensibility of the transaction client without altering existing functionalities.
  • Documentation

    • Updated export sections to include new message types and their responses for better accessibility.

@CalicoNino CalicoNino requested a review from cgilbe27 November 20, 2024 05:38
@CalicoNino CalicoNino self-assigned this Nov 20, 2024
Copy link
Contributor

coderabbitai bot commented Nov 20, 2024

Walkthrough

The pull request introduces modifications across three files related to Ethereum and token factory message handling. New constants and types are added to src/sdk/msg/eth.ts and src/sdk/msg/tokenfactory.ts, enhancing the organization of message type URLs and improving type safety. Additionally, the NibiruTxClient class in src/sdk/tx/txClient.ts is updated to integrate these new types, allowing for expanded functionality in handling transactions. The overall control flow and existing interfaces remain unchanged.

Changes

File Path Change Summary
src/sdk/msg/eth.ts - Added constant: ETH_MSG_TYPE_URLS
- Added constant: ethTypes
src/sdk/msg/tokenfactory.ts - Added constant: TOKENFACTORY_MSG_TYPE_URLS
- Added constant: tokenfactoryTypes
- Expanded exports for various message types and responses
src/sdk/tx/txClient.ts - Updated nibiruRegistryTypes to include ethTypes and tokenfactoryTypes
- Integrated setupNibiruExtension in NibiruTxClient constructor
- Updated connectWithSigner method to utilize new registry types

Possibly related PRs

  • feat: eth protos #366: This PR introduces Ethereum protocol definitions and enhancements to the SDK's Ethereum messaging capabilities, which directly relates to the changes made in the main PR regarding Ethereum message handling in src/sdk/msg/eth.ts.
  • feat: account parser #374: This PR adds a custom Account Parser for Ethereum accounts, which is relevant to the main PR's focus on Ethereum message handling and the integration of Ethereum-related functionalities.
  • feat: cosmwasmclient extension & signingcosmwasmclient implementation #379: This PR implements an extension for the SigningCosmWasmClient that allows for a custom AccountParser, which aligns with the main PR's updates to Ethereum message handling and account integration.

Suggested labels

type: refactor, type: enhance

Suggested reviewers

  • cgilbe27

🐇 In the land of code where the messages flow,
New constants and types make the structure glow.
Ethereum and tokens, all neatly aligned,
A bunny's delight in the changes we find!
Hopping through functions, so clear and so bright,
Enhancing our SDK, oh what a delight! 🐰✨

Warning

Rate limit exceeded

@CalicoNino has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 6 minutes and 3 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 6998804 and 05a700d.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@CalicoNino CalicoNino enabled auto-merge (squash) November 20, 2024 05:40
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Outside diff range and nitpick comments (3)
src/sdk/msg/eth.ts (1)

16-21: Consider enhancing type safety for message type URLs

While the implementation is correct, we can improve type safety by using a const assertion and creating a type from the constant.

Consider this enhancement:

-export const ETH_MSG_TYPE_URLS = {
+export const ETH_MSG_TYPE_URLS = {
   MsgEthereumTx: `/${MsgServiceName}EthereumTx`,
   MsgUpdateParams: `/${MsgServiceName}UpdateParams`,
   MsgCreateFunToken: `/${MsgServiceName}CreateFunToken`,
   MsgConvertCoinToEvm: `/${MsgServiceName}ConvertCoinToEvm`,
-}
+} as const
+
+export type EthMsgTypeUrl = typeof ETH_MSG_TYPE_URLS[keyof typeof ETH_MSG_TYPE_URLS]
src/sdk/tx/txClient.ts (2)

16-21: Consider using explicit import paths.

While the relative import ".." works, it's more maintainable to use explicit paths. This helps prevent issues if the directory structure changes and makes the code dependencies clearer.

-} from ".."
+} from "../msg/eth"
+} from "../msg/tokenfactory"
+} from "../core/extensions"

29-31: LGTM! Consider documenting type resolution order.

The addition of Ethereum and Tokenfactory types is implemented correctly. Since type resolution can depend on the order of types in the registry, consider adding a comment explaining why this specific order was chosen.

 export const nibiruRegistryTypes: ReadonlyArray<[string, GeneratedType]> = [
+  // Base types first, followed by application-specific types
   ...defaultRegistryTypes,
   ...tokenfactoryTypes,
   ...ethTypes,
 ]
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between d707e12 and d132d23.

📒 Files selected for processing (3)
  • src/sdk/msg/eth.ts (2 hunks)
  • src/sdk/msg/tokenfactory.ts (3 hunks)
  • src/sdk/tx/txClient.ts (3 hunks)
🔇 Additional comments (6)
src/sdk/msg/eth.ts (2)

Line range hint 3-14: LGTM: Well-structured imports

The imports are properly organized and include all necessary types for Ethereum message handling.


23-28: Verify message type consistency across the codebase

The type registry looks correct, but let's ensure all message types are consistently used across the codebase.

✅ Verification successful

Message type registry is correctly implemented

The verification shows that the message types in ethTypes are properly registered and used consistently across the codebase:

  • MsgEthereumTx is used in eth query responses
  • MsgUpdateParams appears in devgas module with proper imports and handlers
  • MsgCreateFunToken and MsgConvertCoinToEvm are new message types being introduced
  • No inconsistent or conflicting usage of these message types was found
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify message type consistency and usage

# Check for any message type references that might be missing from the registry
rg -t typescript "Msg(EthereumTx|UpdateParams|CreateFunToken|ConvertCoinToEvm)" \
  --glob '!src/sdk/msg/eth.ts' \
  --glob '!**/*.test.ts' \
  -A 2

# Check for any potential message handlers that might need updating
ast-grep --pattern 'interface $_ {
  $$$
  ethereum$_($$$): $_
  $$$
}'

Length of output: 247


Script:

#!/bin/bash
# Search for message type references using ripgrep without file type restriction
rg "Msg(EthereumTx|UpdateParams|CreateFunToken|ConvertCoinToEvm)" \
  --glob '!src/sdk/msg/eth.ts' \
  --glob '!**/*.test.ts' \
  -A 2

# Search for ETH_MSG_TYPE_URLS usage
rg "ETH_MSG_TYPE_URLS\." \
  --glob '!src/sdk/msg/eth.ts' \
  -A 1

# Check for any ethereum-related message handlers
rg "ethereum.*Message" \
  --glob '!src/sdk/msg/eth.ts' \
  -A 2

Length of output: 1229

src/sdk/tx/txClient.ts (1)

70-70: Verify transaction type handling across clients.

The addition of the registry configuration to the wasmClient ensures consistent type handling. Let's verify that all transaction types are properly registered and can be handled.

✅ Verification successful

Transaction type registry configuration is properly implemented

The verification shows that:

  • The nibiruRegistryTypes correctly includes all necessary message types by combining:
    • Default registry types
    • Tokenfactory message types (CreateDenom, ChangeAdmin, Mint, Burn, etc.)
    • Ethereum message types (EthereumTx, UpdateParams, CreateFunToken, etc.)
  • The Registry is consistently initialized with these types in both the regular client and wasmClient configurations
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify that all required message types are included in the registry

# Check for message type definitions in eth.ts
echo "Checking Ethereum message types:"
ast-grep --pattern 'export const ethTypes: ReadonlyArray<[string, GeneratedType]> = [
  $$$
]'

# Check for message type definitions in tokenfactory.ts
echo "Checking Tokenfactory message types:"
ast-grep --pattern 'export const tokenfactoryTypes: ReadonlyArray<[string, GeneratedType]> = [
  $$$
]'

# Check for any potential message types that might be missing from the registry
echo "Checking for potential missing message types:"
rg -t ts "type Msg\w+" --glob "src/sdk/msg/**/*.ts"

Length of output: 1739


Script:

#!/bin/bash
# Let's verify the registry initialization and usage

# First, check how nibiruRegistryTypes is constructed
echo "Checking nibiruRegistryTypes construction:"
rg -A 10 "nibiruRegistryTypes.*=" 

# Check if there are any other message type arrays that might need to be included
echo "Checking for other message type arrays:"
rg -t ts "export const \w+Types: ReadonlyArray<\[string, GeneratedType\]> = \["

# Check the Registry usage to ensure proper type registration
echo "Checking Registry usage:"
ast-grep --pattern 'new Registry($_)'

Length of output: 1646

src/sdk/msg/tokenfactory.ts (3)

Line range hint 3-20: LGTM! Imports are well-organized and properly utilized.

All imported types are being used appropriately throughout the file.


83-99: LGTM! Exports are complete and well-organized.

All necessary types and their corresponding response types are properly exported.


32-40: Verify integration with transaction client

Let's ensure that these tokenfactory types are properly integrated with the transaction client.

✅ Verification successful

Tokenfactory types are properly integrated with transaction client

The verification shows that:

  • Tokenfactory types are correctly imported and included in the nibiruRegistryTypes
  • The types are properly registered in both the main client and wasm client through the Registry
  • Message type URLs are well-defined and match the registered types
  • The TokenFactoryMsgExtension interface provides the necessary message handlers
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check if tokenfactoryTypes is properly imported and used in the transaction client

# Look for tokenfactoryTypes usage in txClient
echo "Checking tokenfactoryTypes integration:"
rg -A 5 "tokenfactoryTypes" src/sdk/tx/

# Verify if all message types are handled
echo "Verifying message type handling:"
rg -A 5 "MsgBurn|MsgMint|MsgCreateDenom|MsgChangeAdmin|MsgUpdateModuleParams|MsgSetDenomMetadata|MsgBurnNative" src/sdk/tx/

Length of output: 916


Script:

#!/bin/bash
# Let's verify the integration more thoroughly by:
# 1. Checking the complete registry setup
# 2. Looking for any message handlers or methods using these types

# Check the complete registry setup context
rg -B 5 -A 10 "registry\.register" src/sdk/tx/

# Look for any methods or handlers related to tokenfactory
ast-grep --pattern 'async $FUNC($$$) {
  $$$
  tokenfactory
  $$$
}'

# Check if there are any specific tokenfactory transaction methods
rg -B 2 -A 5 "tokenfactory" src/sdk/tx/

Length of output: 986


Script:

#!/bin/bash
# Let's verify the complete message type registration setup
# 1. Check the imports and type definitions
# 2. Verify the message type URLs match the registered types

# Check the tokenfactory message type URLs definition
rg -A 10 "TOKENFACTORY_MSG_TYPE_URLS" src/

# Check the complete message type registration context
rg -B 10 -A 10 "nibiruRegistryTypes" src/

# Look for any potential message handlers in the client
ast-grep --pattern 'class NibiruTxClient {
  $$$
}'

Length of output: 4893

src/sdk/msg/tokenfactory.ts Outdated Show resolved Hide resolved
src/sdk/msg/tokenfactory.ts Outdated Show resolved Hide resolved
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (2)
src/sdk/msg/tokenfactory.ts (2)

32-40: Consider adding JSDoc documentation for better maintainability.

The registry types array is well-structured and type-safe. Consider adding JSDoc documentation to explain the purpose and usage of this constant for future maintainers.

Add documentation like this:

+/**
+ * Registry of token factory message types and their corresponding protobuf message classes.
+ * Used for message encoding/decoding in transaction handling.
+ */
export const tokenfactoryTypes: ReadonlyArray<[string, GeneratedType]> = [

83-99: Consider grouping related exports for better readability.

The exports are comprehensive and make all necessary types available. Consider grouping related message types with their responses using object destructuring for better organization.

Reorganize exports like this:

-export {
-  MsgCreateDenom,
-  MsgClientImpl,
-  MsgCreateDenomResponse,
-  MsgChangeAdmin,
-  MsgChangeAdminResponse,
-  MsgUpdateModuleParams,
-  MsgUpdateModuleParamsResponse,
-  MsgBurn,
-  MsgBurnResponse,
-  MsgMint,
-  MsgMintResponse,
-  MsgSetDenomMetadata,
-  MsgSetDenomMetadataResponse,
-  MsgBurnNative,
-  MsgBurnNativeResponse,
-}
+export {
+  // Client implementation
+  MsgClientImpl,
+  
+  // CreateDenom messages
+  MsgCreateDenom,
+  MsgCreateDenomResponse,
+  
+  // Admin messages
+  MsgChangeAdmin,
+  MsgChangeAdminResponse,
+  MsgUpdateModuleParams,
+  MsgUpdateModuleParamsResponse,
+  
+  // Token operations
+  MsgMint,
+  MsgMintResponse,
+  MsgBurn,
+  MsgBurnResponse,
+  MsgBurnNative,
+  MsgBurnNativeResponse,
+  
+  // Metadata operations
+  MsgSetDenomMetadata,
+  MsgSetDenomMetadataResponse,
+}
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between d132d23 and 6998804.

📒 Files selected for processing (1)
  • src/sdk/msg/tokenfactory.ts (3 hunks)
🔇 Additional comments (2)
src/sdk/msg/tokenfactory.ts (2)

Line range hint 3-20: LGTM! Imports are well-organized and all are utilized.

The imports are properly structured and all imported types are used within the file.


22-30: LGTM! Message type URLs are well-defined and consistent.

The constant properly maps all message types to their corresponding URLs using a consistent pattern with MsgServiceName.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Outside diff range and nitpick comments (2)
src/sdk/tx/txClient.ts (2)

16-21: Consider using explicit import paths instead of barrel imports.

The relative import from ".." can make the code harder to maintain and potentially impact build times. Consider using explicit import paths to clearly show where these types come from.

-import {
-  ethTypes,
-  NibiruExtensions,
-  setupNibiruExtension,
-  tokenfactoryTypes,
-} from ".."
+import { ethTypes } from "../msg/eth"
+import { tokenfactoryTypes } from "../msg/tokenfactory"
+import { NibiruExtensions, setupNibiruExtension } from "../core/extensions"

Line range hint 67-77: Consider making gas price configurable.

The gas price is hardcoded to "0.025unibi" in both the wasmClient and main client options. Consider making this configurable through environment variables or constructor options to support different environments (testnet, mainnet, etc.).

+const DEFAULT_GAS_PRICE = "0.025unibi"
+
 public static async connectWithSigner(
   endpoint: string,
   signer: OfflineSigner,
   options: SigningStargateClientOptions = {},
   wasmOptions: NibiSigningCosmWasmClientOptions = {}
 ): Promise<NibiruTxClient> {
   const tmClient = await Tendermint37Client.connect(endpoint)
+  const gasPrice = process.env.NIBI_GAS_PRICE || DEFAULT_GAS_PRICE
   const wasmClient = await NibiSigningCosmWasmClient.connectWithSigner(
     endpoint,
     signer,
     {
-      gasPrice: GasPrice.fromString("0.025unibi"),
+      gasPrice: GasPrice.fromString(gasPrice),
       accountParser: accountFromNibiru,
       ...wasmOptions,
     }
   )
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Reviewing files that changed from the base of the PR and between 6998804 and 05a700d.

📒 Files selected for processing (1)
  • src/sdk/tx/txClient.ts (2 hunks)
🔇 Additional comments (2)
src/sdk/tx/txClient.ts (2)

Line range hint 1-100: Overall implementation looks good!

The changes successfully integrate Ethereum and Tokenfactory types into the transaction client while maintaining backward compatibility. The implementation aligns well with the PR objectives of supporting Ethereum Funtokens and Tokenfactory transactions.


29-31: Verify potential type conflicts in registry.

The addition of new types looks good, but we should verify there are no conflicting message type URLs between the default registry and the new types.

✅ Verification successful

No type URL conflicts found in registry types

After examining the type definitions, there are no conflicts between the message type URLs:

  • ethTypes uses URLs prefixed with /eth/evm/v1/tx
  • tokenfactoryTypes uses URLs prefixed with /nibiru/tokenfactory/v1/tx
  • These are distinct from the default registry types
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for duplicate message type URLs across registry types

# Search for message type URL definitions
rg -A 1 'typeUrl.*=' src/sdk/msg/

Length of output: 35


Script:

#!/bin/bash
# Let's first locate the registry type files
fd "types?.ts" src/sdk

# Then examine their content
echo "=== Content of found type files ==="
fd "types?.ts" src/sdk --exec cat {}

Length of output: 1299


Script:

#!/bin/bash
# Let's search for the registry type definitions and imports
echo "=== Searching for registry types ==="
rg -l "defaultRegistryTypes|tokenfactoryTypes|ethTypes" src/

echo "=== Content of files containing registry types ==="
rg -l "defaultRegistryTypes|tokenfactoryTypes|ethTypes" src/ --exec cat {}

Length of output: 873


Script:

#!/bin/bash
# Let's examine the content of the relevant files individually
echo "=== Content of txClient.ts ==="
cat src/sdk/tx/txClient.ts

echo -e "\n=== Content of eth.ts ==="
cat src/sdk/msg/eth.ts

echo -e "\n=== Content of tokenfactory.ts ==="
cat src/sdk/msg/tokenfactory.ts

Length of output: 8444

Copy link

Lines Statements Branches Functions
Coverage: 95%
95.51% (895/937) 80.66% (171/212) 89.82% (300/334)

@CalicoNino CalicoNino disabled auto-merge November 20, 2024 07:02
@CalicoNino CalicoNino merged commit 8c6c34c into develop Nov 20, 2024
2 checks passed
@CalicoNino CalicoNino deleted the refactor/adding-nibiru-types branch November 20, 2024 07:02
CalicoNino added a commit that referenced this pull request Nov 20, 2024
* chore: update eth proto to latest

* refactor: updating to latest graphql schema since featureflags don't include spot & perp (#385)

* fix: test

* fix: test

* chore: upgrade graphql (#387)

* refactor: adding eth & tokenfactory types (#389)

* refactor: adding eth & tokenfactory types

* chore: remove test file

* fix: typo

* refactor: wasmclient doesn't need nibi registry

---------

Co-authored-by: Calico Nino <[email protected]>
github-actions bot pushed a commit that referenced this pull request Nov 20, 2024
### [5.0.3](v5.0.2...v5.0.3) (2024-11-20)

### Miscellaneous Chores

* develop -> main ([#388](#388)) ([24ea6e8](24ea6e8)), closes [#385](#385) [#387](#387) [#389](#389)

 [skip ci]
github-actions bot pushed a commit that referenced this pull request Dec 2, 2024
## [6.0.0](v5.0.3...v6.0.0) (2024-12-02)

### Bug Fixes

* test ([9d7ff5c](9d7ff5c))
* test ([e0b49c9](e0b49c9))

### Miscellaneous Chores

* update eth proto to latest ([96014f2](96014f2))
* upgrade graphql ([#387](#387)) ([d707e12](d707e12))

### Code Refactors

* adding eth & tokenfactory types ([#389](#389)) ([8c6c34c](8c6c34c))
* updating to latest graphql schema since featureflags don't include spot & perp ([#385](#385)) ([cbb36d7](cbb36d7))

 [skip ci]
@nibibot
Copy link

nibibot commented Dec 2, 2024

🎉 This PR is included in version 6.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants