@c-forge/arbiter-sdk
v0.0.2
Published
SDK for interacting with Arbiter AMM Pool Currency Hook contract
Readme
Arbiter SDK
A TypeScript SDK for interacting with the Arbiter AMM Pool Currency Hook contract.
Installation
npm install arbiter-sdkUsage
The Arbiter SDK provides a functional approach to interact with the Arbiter contract. Each function is available as a separate import.
Setting Up Clients
import { createClient } from "arbiter-sdk";
import { createWalletClient, http } from "viem";
import { privateKeyToAccount } from "viem/accounts";
// Set up client configuration
const clientConfig = {
rpcUrl: "https://arb1.arbitrum.io/rpc",
chainId: 42161, // Arbitrum One
name: "Arbitrum One",
};
// Create a public client for read operations
const publicClient = createClient(clientConfig);
// Set up a wallet client for transactions
const account = privateKeyToAccount("0xYourPrivateKey");
const walletClient = createWalletClient({
account,
chain: {
id: clientConfig.chainId,
name: clientConfig.name,
nativeCurrency: {
name: "Ether",
symbol: "ETH",
decimals: 18,
},
rpcUrls: { default: { http: [clientConfig.rpcUrl] } },
},
transport: http(),
});Depositing Tokens
import { deposit } from "arbiter-sdk";
const contractAddress = "0xArbiterContractAddress";
const tokenAddress = "0xTokenAddress";
const amount = BigInt(1000000000); // Amount in smallest units
const txHash = await deposit(
walletClient,
contractAddress,
tokenAddress,
amount
);Withdrawing Tokens
import { withdraw } from "arbiter-sdk";
const contractAddress = "0xArbiterContractAddress";
const tokenAddress = "0xTokenAddress";
const amount = BigInt(1000000000); // Amount in smallest units
const txHash = await withdraw(
walletClient,
contractAddress,
tokenAddress,
amount
);Changing Pool Strategy
import { changeStrategy } from "arbiter-sdk";
import { toArbiterPoolKey } from "arbiter-sdk";
const contractAddress = "0xArbiterContractAddress";
const poolKey = {
currency0: "0xToken0Address",
currency1: "0xToken1Address",
fee: 500,
hooks: "0xHooksAddress",
poolManager: "0xPoolManagerAddress",
parameters: "0xParameters",
};
const strategyAddress = "0xStrategyAddress";
const txHash = await changeStrategy(
walletClient,
contractAddress,
poolKey,
strategyAddress
);Placing an Overbid
import { overbid } from "arbiter-sdk";
const contractAddress = "0xArbiterContractAddress";
const poolKey = {
currency0: "0xToken0Address",
currency1: "0xToken1Address",
fee: 500,
hooks: "0xHooksAddress",
poolManager: "0xPoolManagerAddress",
parameters: "0xParameters",
};
const rentPerBlock = BigInt(1000000);
const rentEndBlock = 1000000;
const strategyAddress = "0xStrategyAddress";
const txHash = await overbid(
walletClient,
contractAddress,
poolKey,
rentPerBlock,
rentEndBlock,
strategyAddress
);Examples
For more detailed examples, check out the examples directory.
Development
# Install dependencies
npm install
# Build the SDK
npm run buildLicense
ISC
