Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/balmy-protocol/sdk
An SDK for all things Mean Finance (and more)
https://github.com/balmy-protocol/sdk
Last synced: 5 days ago
JSON representation
An SDK for all things Mean Finance (and more)
- Host: GitHub
- URL: https://github.com/balmy-protocol/sdk
- Owner: Balmy-protocol
- Created: 2023-01-10T18:57:26.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T13:25:15.000Z (19 days ago)
- Last Synced: 2024-10-29T15:21:26.057Z (19 days ago)
- Language: TypeScript
- Homepage:
- Size: 2.6 MB
- Stars: 16
- Watchers: 4
- Forks: 4
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Balmy SDK
This repository contains the code for the Balmy sdk.
## ๐งช Installing
### Yarn
```bash
yarn add @balmy/sdk
```### NPM
```bash
npm install @balmy/sdk
```## Usage
### ๐ท๐ฝโโ๏ธ Building the SDK
```javascript
import { buildSdk } from "@balmy/sdk";const sdk = buildSdk(config);
```### โ๏ธ Getting balance for multiple tokens on several chains
```javascript
const accountBalances = await sdk.balanceService.getBalancesForTokens({
account: "0x000000000000000000000000000000000000dead",
tokens: {
// [chainId]: [0xTokenAddress]
[Chains.ETHEREUM.chainId]: [
// Ethereum
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", // USDC
"0x6b175474e89094c44da98b954eedeac495271d0f", // DAI
],
[Chains.OPTIMISM.chainId]: [
// Optimism
"0x7f5c764cbc14f9669b88837ca1490cca17c31607", // USDC
"0xda10009cbd5d07dd0cecc66161fc93d7c9000da1", // DAI
],
},
// Optional config
config: {
timeout: "30s",
},
});const usdcBalanceOnEthereum =
accountBalances[Chains.ETHEREUM.chainId][
"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
];
```### ๐ธ Getting allowances of multiple spenders for a token
```javascript
const accountAllowances = await sdk.allowanceService.getAllowances({
chainId: Chains.ETHEREUM.chainId,
token: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48", // USDC
owner: "0x000000000000000000000000000000000000dead",
spenders: ["0x6666666600000000000000000000000000009999"],
});const amountThatDevilCanSpend =
accountAllowances["0x6666666600000000000000000000000000009999"];
```### ๐ Quoting all dex aggregators for a trade
```javascript
const allQuotes = await sdk.quoteService.getAllQuotesWithTxs({
request: {
chainId: Chains.ETHEREUM.chainId, // Ethereum
sellToken: "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
buyToken: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
order: {
type: "sell",
sellAmount: utils.parseUnits("1000", 6), // 1000 USDC
},
slippagePercentage: 1, // 1%
takerAddress: signer.address,
// Optional gas speed
gasSpeed: {
speed: "instant",
},
},
// Optional config
config: {
sort: {
by: "most-swapped-accounting-for-gas",
},
},
});const bestTradeBySort = allQuotes[0];
await signer.sendTransaction(bestTradeBySort.tx);
```## ๐จโ๐ป Development environment
- Install dependencies
```bash
yarn install
```## ๐ Docs
WIP - Will be at [docs.balmy.xyz](https://docs.balmy.xyz)