@cod3x/openapi
@cod3x/openapi Package Documentation
The @cod3x/openapi
package is a comprehensive library that provides a set of APIs for interacting with various blockchain networks and decentralized finance (DeFi) protocols. This package includes support for Ethereum, Bitcoin, Bitcoin Cash, Dogecoin, Litecoin, EOS, Solana, Cosmos, Tron, and more.
Generating @cod3x/openapi
npx swagger-typescript-api -p swagger.json -o ./src/lib --modular --route-types --unwrap-response-data --sort-types --sort-routes --enum-names-as-values --extract-request-params --extract-request-body --extract-response-body --extract-response-error --extract-enums --single-http-client
Installing Cod3x API:
To use the Cod3x API package, first install it to a project:
To install Cod3x API:
{% tabs %}
{% tab title="npm" %}
npm install @cod3x/openapi
{% endtab %}
{% tab title="yarn" %}
yarn add @cod3x/openapi
{% endtab %}
{% tab title="pnpm" %}
pnpm add @cod3x/openapi
{% endtab %}
{% endtabs %}
Usage
To use the @cod3x/openapi
package, you'll first need to install it using a package manager like npm or Yarn. Once you've installed the package, you can import the classes and methods you need into your project.
Here's an example of how to use the Accounts
class to create a new Ethereum account and transfer ETH:
import { HttpClient, Accounts } from '@cod3x/openapi';
const http = new HttpClient({
baseUrl: 'https://beta.usemoon.ai',
securityWorker: async (securityData) => {
return {
headers: {
Authorization: `Bearer ${securityData.token}`,
},
};
},
});
const accounts = new Accounts(http);
const createAccountData = await accounts.createAccount({ private_key: 'your_private_key' });
console.log('New account created:', createAccountData.address);
const transferEthData = await accounts.transferEth(createAccountData.name, {
to: '0xAnotherAccountAddress',
value: '1000000000000000000',
});
console.log('Transfer successful:', transferEthData.transactionHash);
This example demonstrates how to use the Accounts
class to create a new Ethereum account and transfer ETH to another account. The HttpClient
class is used to make HTTP requests to the API, and the securityWorker
function is used to add an authorization header to the requests.
Initialization
To use the @cod3x/openapi
package, you'll first need to initialize an HttpClient
object with your API base URL and security worker. The security worker is a function that returns the headers to be included in the API requests. In this case, it returns an authorization header with a bearer token.
Here's an example of how to initialize the HttpClient
object:
import { HttpClient } from '@cod3x/openapi';
const http = new HttpClient({
baseUrl: 'https://beta.usemoon.ai',
securityWorker: async (securityData) => {
return {
headers: {
Authorization: `Bearer ${securityData.token}`,
},
};
},
});
In this example, the baseUrl
property is set to the URL of the API, and the securityWorker
property is set to a function that returns an authorization header with a bearer token. The securityData
object is passed to the securityWorker
function, which can be used to retrieve the bearer token.
Once you've initialized the HttpClient
object, you can use it to create instances of the classes provided by the @cod3x/openapi
package. For example:
import { Accounts } from '@cod3x/openapi';
const accounts = new Accounts(http);
In this example, the Accounts
class is imported from the @cod3x/openapi
package, and an instance of the class is created using the HttpClient
object.
Classes
The package is organized into several files, each containing a class that provides methods for interacting with a specific blockchain network or DeFi protocol. The main files in the package are:
\
accounts.md
Provides methods for creating and managing Ethereum accounts, deploying contracts, signing messages and transactions, and transferring ETH.
bitcoin.md
Provide methods for creating and managing Bitcoin accounts, and signing transactions
bitcoin-cash.md
Provide methods for creating and managing Bitcoin Cash accounts, and signing transactions
cosmos.md
Provide methods for interacting with the Cosmos blockchain networks, including creating and managing accounts, and signing transactions.
dogecoin.md
Provide methods for creating and managing Dogecoin accounts, and signing transactions
ens.md
Provides methods for interacting with the Ethereum Name Service (ENS), including registering and resolving domain names.
eos.md
Provide methods for interacting with the EOS blockchain networks, including creating and managing accounts, and signing transactions.
erc20.md
Provide methods for interacting with Ethereum-based tokens, including transferring tokens, checking balances, and approving contracts.
erc721.md
Provide methods for interacting with Ethereum-based tokens, including transferring tokens, checking balances, and approving contracts.
erc1155.md
Provide methods for interacting with Ethereum-based tokens, including transferring tokens, checking balances, and approving contracts.
litecoin.md
Provide methods for creating and managing Litecoin accounts, and signing transactions
onramper.md
Provides methods for interacting with the Onramper fiat onramp service, allowing users to buy cryptocurrencies with fiat currency.
ripple.md
Provides methods for interacting with the Ripple blockchain network, including creating and managing accounts, and sending and receiving payments.
solana.md
Provides methods for interacting with the Solana blockchain network, including creating and managing accounts, and sending and receiving tokens.
tron.md
Provides methods for interacting with the TRON blockchain network, including creating and managing accounts, and sending and receiving tokens.
uniswap.md
Provide methods for interacting with the Uniswap decentralized exchange (DEX) protocols, including swapping tokens and checking prices
Overall, the @cod3x/openapi
package is a powerful and flexible library that provides a wide range of APIs for interacting with various blockchain networks and DeFi protocols. Whether you're building a simple wallet application or a complex decentralized finance platform, this package has the tools you need to get the job done.
Contributing
We welcome contributions to the @cod3x/openapi package! Here's how you can help:
Reporting Issues
If you find a bug or have a suggestion for improving the package:
- Check if the issue already exists in the GitHub Issues.
- If not, open a new issue, providing as much detail as possible about the problem or suggestion.
Submitting Pull Requests
- Fork the repository and create your branch from
main
. - Install dependencies:
npm install
- Make your changes, adding tests if applicable.
- Ensure the test suite passes:
npm test
- Run the linter and fix any issues:
npm run lint:fix
- Format your code:
npm run prettier:fix
- Commit your changes using a descriptive commit message.
- Push to your fork and submit a pull request to the
main
branch.
Development Scripts
npm run build
: Build the packagenpm run dev
: Build and watch for changesnpm test
: Run testsnpm run coverage
: Run tests with coverage reportnpm run lint
: Check for linting errorsnpm run lint:fix
: Fix linting errorsnpm run prettier
: Check code formattingnpm run prettier:fix
: Fix code formattingnpm run verify
: Run linter and prettier checksnpm run verify:fix
: Fix linter and prettier issues
Coding Style
Please follow the existing coding style. We use ESLint and Prettier to maintain code quality and consistency.
License
By contributing to @cod3x/openapi, you agree that your contributions will be licensed under its MIT License.
Thank you for your interest in improving @cod3x/openapi!