UNPKG

@lumina-dex/contracts

Version:
26 lines (23 loc) 805 B
import { PublicKey, State } from "o1js" /** * Data needed by pool and pool token */ export interface IPool { token0: State<PublicKey> token1: State<PublicKey> poolFactory: State<PublicKey> } /** * Check if token is in order and don't be empty * @param pool pool data * @param isMinaPool is mina/token pool * @returns true if correct */ export function checkToken(pool: IPool, isMinaPool: boolean): [PublicKey, PublicKey] { const token0 = pool.token0.getAndRequireEquals() const token1 = pool.token1.getAndRequireEquals() // token 0 need to be empty on mina pool token0.equals(PublicKey.empty()).assertEquals(isMinaPool, isMinaPool ? "Not a mina pool" : "Invalid token 0 address") token1.equals(PublicKey.empty()).assertFalse("Invalid token 1 address") return [token0, token1] }