Awesome
<div align="center"> <img height="120px" src="./logo.png" /> <h1 style="margin-top: 0px">Zeta ABI 🧬</h1> <p> <a href="https://discord.gg/dD7YREfBkR" ><img alt="Discord Chat" src="https://img.shields.io/discord/841556000632078378?color=blueviolet" /></a> <a href="https://opensource.org/licenses/Apache-2.0" ><img alt="License" src="https://img.shields.io/github/license/project-serum/anchor?color=blueviolet" /></a> </p> </div>Zeta ABI
ABI is Zeta's cross-program integration ecosystem.
This repository contains the Zeta Cross Program Invocation (CPI) interface as well as a usage example abi-wrapper
.
# Add to dependencies
zeta-abi = "1.0.0"
Cross Program Invocations
Dependencies
- anchor 0.26.0
- solana 0.14.x
Instructions
The instructions currently supported are as follows:
initialize_cross_margin_account
- create and initialize a user's margin accountinitialize_cross_margin_account_manager
- create and initialize a user's margin account managerinitialize_open_orders_v3
- create and initialize user's open orders accountdeposit_v2
- deposit USDC collateral into the margin accountwithdraw_v2
- withdraw USDC collateral from the margin accountplace_perp_order_v3
- place a perp order of (price, size, side) on the relevant marketcancel_order_xxx
- collection of order cancellation functions, by orderId, clientOrderId, market, etcclose_open_orders
- close open orders accountliquidate_v2
- trigger liquidation
Accounts
The accounts and relevant data that is currently supported (non-exhaustive):
State
- contains global parameters relating to all markets- Fee percentages
- Admin pubkeys
- Platform limits
- Halt state
Pricing
- global mark prices, pricing params and funding information- Mark Prices
- Funding rates
- Perp and margin params
CrossMarginAccount
- individual user margin accounts- Balance
- Positions
- Orders
Programs
abi-wrapper
Basic usage example outlined in a dummy wrapper program, which simply calls the main zeta program instructions. Also includes account layouts and outlines how to read all relevant on-chain data from the Zeta program. This should give all the boilerplate needed to execute core program functionality both as the smart contract and off-chain client.