Distribuzione degli asset HIP-1 e HIP-2
L'API per la distribuzione degli asset HIP-1 e HIP-2 è un processo in cinque fasi che prevede l'invio delle prime 5 varianti (le varianti rimanenti sono facoltative) dell'enum nell'ordine riportato di seguito.
type SpotDeployAction =
| {
type: "spotDeploy";
registerToken2: RegisterToken2;
}
| {
type: "spotDeploy";
userGenesis: UserGenesis;
}
| {
type: "spotDeploy";
genesis: Genesis;
}
| {
type: "spotDeploy";
registerSpot: RegisterSpot;
}
| {
type: "spotDeploy";
registerHyperliquidity: RegisterHyperliquidity;
}
| {
type: "spotDeploy";
setDeployerTradingFeeShare: SetDeployerTradingFeeShare;
}
| {
type: "spotDeploy";
enableQuoteToken: { token: number };
}
| {
type: "spotDeploy";
enableAlignedQuoteToken: { token: number };
}
| {
type: "spotDeploy";
disableQuoteToken: { token: number };
}
| { /* note: must be sent after disableQuoteToken */
type: "spotDeploy";
disableAlignedQuoteToken: { token: number };
}
| {
type: "spotDeploy";
setTokenAnnotation: SetTokenAnnotation;
}
| {
type: "spotDeploy";
setDeployerLabel: SetDeployerLabel;
};
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).
* @param blacklistUsers - A list of tuples of users and blacklist status (True if blacklist, False to remove existing blacklisted user).
*/
type UserGenesis = {
token: number;
userAndWei: Array<[string, string]>;
existingTokenAndWei: Array<[number, string]>;
blacklistUsers?: Array<[string, boolean]>;
}
/**
* Genesis denotes the initial creation of a token with a maximum supply.
* @param maxSupply - Checksum ensuring all calls to UserGenesis succeeded
* @param noHyperliquidity - Set hyperliquidity balance to 0.
*/
type Genesis = {
token: number;
maxSupply: string;
noHyperliquidity?: boolean;
}
/**
* @param tokens - [base index, quote index]
* This is also the action used to deploy pairs between an existing base and existing quote asset.
* Deployments between pairs of existing assets follow an independent Dutch auction.
* This auction's status is available from the `spotPairDeployAuctionStatus` info request.
*/
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. If "noHyperliquidity" was set to True, then this must be 0.
* @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;
}
/**
* This is an optional action that can be performed at any time after
* RegisterToken2. While the fee share defaults to 100%, this action
* can be resent multiple times as long as the fee share is not increasing.
* @param token - The token
* @param share - The deployer trading fee share. Range: ["0%", "100%"]. Examples: "0.012%", "99.4%"
*/
type SetDeployerTradingFeeShare = {
token: number;
share: string;
}
/**
* This is an optional action that can be performed at any time after
* RegisterToken2. The annotation can be changed at most once per day.
* @param token - The token
* @param annotation - The annotation to display for the token.
*/
type SetTokenAnnotation = {
token: number;
annotation: {
category: string; // <= 15 characters
description: string; // <= 400 characters
displayName: string | null; // <= 9 characters
keywords: Array<string>; // <= 2 keywords, each keyword <= 10 characters
};
}
/**
* This is an optional action that sets a label displayed for the deployer's tokens.
* The label can only be set once per deployer.
* @param label - The deployer label (2-4 lowercase characters). Must be unique
* across perp dexs and other deployer labels.
*/
type SetDeployerLabel = {
label: string;
}