Deploying HIP-1 and HIP-2 assets
The API for deploying HIP-1 and HIP-2 assets is a five-step process which involves sending the 5 variants of the enum in the order below.
type SpotDeployAction =
| {
type: "spotDeploy";
registerToken2: RegisterToken2;
}
| {
type: "spotDeploy";
userGenesis: UserGenesis;
}
| {
type: "spotDeploy";
genesis: Genesis;
}
| {
type: "spotDeploy";
registerSpot: RegisterSpot;
}
| {
type: "spotDeploy";
registerHyperliquidity: RegisterHyperliquidity;
};
type RegisterToken2 = {
spec: TokenSpec;
maxGas: number;
fullName?: string;
}
type TokenSpec = {
name: string,
szDecimals: number,
weiDecimals: number,
}
/**
* UserGenesis can be called multiple times
* @param token - The token involved in the genesis.
* @param userAndWei - A list of tuples of user address and genesis amount (wei).
* @param existingTokenAndWei - A list of tuples of existing token and total genesis amount for holders of that token (wei).
*/
type UserGenesis = {
token: number;
userAndWei: Array<[string, string]>;
existingTokenAndWei: Array<[number, string]>;
}
/**
* Genesis denotes the initial creation of a token with a maximum supply.
* @param maxSupply - Checksum ensureing all calls to UserGenesis succeeded
*/
type Genesis = {
token: number;
maxSupply: string;
}
/**
* @param tokens - [base index, quote index]
*/
type RegisterSpot = {
tokens: [number, number];
}
/**
* @param spot - The spot index (different from base token index)
* @param startPx - The starting price.
* @param orderSz - The size of each order (float, not wei)
* @param nOrders - The number of orders.
* @param nSeededLevels - The number of levels the deployer wishes to seed with usdc instead of tokens.
*/
type RegisterHyperliquidity = {
spot: number;
startPx: string;
orderSz: string;
nOrders: number;
nSeededLevels: number;
}
Last updated