Interfaces
MemezPool
It represents a Memez Pool.
export interface MemezPool<T> {
objectId: string;
poolType: string;
curveType: string;
memeCoinType: string;
quoteCoinType: string;
publicKey: string | null;
ipxMemeCoinTreasury: string;
metadata: Record<string, string>;
migrationWitness: string;
progress: string;
stateId: string;
developer: string;
curveState: T;
}
objectId: The Sui Object id of this pool.
poolType: The struct tag of the pool.
curveType: It denotes the possible variants of the pool. E.g. Stable, Auction and Pump.
memeCoinType: The struct tag of the Meme coin.
quoteCoinType: The struct tag of the Quote coin.
publicKey: Protected pools have a public key to verify agaisnt the signatures submitted via pump function.
ipxMemeCoinTreasury: The id of the Meme coin Treasury.
metadata: A map of the meme coin metadata.
migrationWitness: The struct tag of the migrator witness. It shows to which DEX the pool is going to migrate to.
progress: The current status of the pool. E.g. Bonding, Migrating or Migrated.
stateId: The id of of the state object to fetch the inner state.
developer: The address of the user that can claim dev first purchase and earn post bonding fees.
curveState: The inner state related to the variant.
PumpState
Represents the state of the Pump Pool that will be saved in the property curveState in the Memez Pool.
export interface PumpState {
devPurchase: bigint;
liquidityProvision: bigint;
migrationFee: number;
virtualLiquidity: bigint;
targetQuoteLiquidity: bigint;
quoteBalance: bigint;
memeBalance: bigint;
burnTax: number;
memeSwapFee: number;
quoteSwapFee: number;
allocation: Allocation;
memeReferrerFee: number;
quoteReferrerFee: number;
}
devPurchase: The coins bought by the developer.
liquidityProvision: The amount of meme coin that will be added liquidity.
migrationFee: The payment in Sui that will be charged during migration.
virtualLiquidity: The virtual Sui liquidity to set a floor price.
targetQuoteLiquidity: The amount of Quote coin required to migrate.
quoteBalance: The current amount of Quote coin in the pool.
memeBalance: The amount of meme coin in the pool.
burnTax: The burn tax percentage in bps.
memeSwapFee: The meme coin swap fee percentage in bps.
quoteSwapFee: The Quote coin swap fee percentage in bps.
memeReferrerFee: The meme coin referral fee percentage in bps.
quoteReferrerFee: The Quote coin referral fee percentage in bps
allocation: Balance of meme coins to be sent o stake holders after migration.
Network
An enum referring to the current network being used.
export enum Network {
Mainnet = 'mainnet',
Testnet = 'testnet',
}
Mainnet: Sui Network main net
Testnet: Sui Network test net.
Packages
An object containing the packages to interact with Memez.
Testnet packages are out of date. Please use mainnet packages only!
export const PACKAGES = {
[Network.TESTNET]: {
MEMEZ_FUN: {
original: normalizeSuiAddress(
'0xcad2e05e9771c6b1aad35d4f3df42094d5d49effc2a839e34f37ae31dc373fe7'
),
latest: normalizeSuiAddress(
'0xcad2e05e9771c6b1aad35d4f3df42094d5d49effc2a839e34f37ae31dc373fe7'
),
},
MEMEZ: {
original: normalizeSuiAddress(
'0x17209c541f1a372b811a42eaf95e62cd1eb46127e438f052432bd1c2318bc1c9'
),
latest: normalizeSuiAddress(
'0x17209c541f1a372b811a42eaf95e62cd1eb46127e438f052432bd1c2318bc1c9'
),
},
VESTING: {
original: normalizeSuiAddress(
'0xbc838799ce0c571fddb5c650adae05ed141070501558743f2f28d2d3fbede8d6'
),
latest: normalizeSuiAddress(
'0xbc838799ce0c571fddb5c650adae05ed141070501558743f2f28d2d3fbede8d6'
),
},
TEST_MEMEZ_MIGRATOR: {
original: normalizeSuiAddress(
'0x1e15037693e28af09771953ec8179d104fff7a225e5a5d1a65034a3636451026'
),
latest: normalizeSuiAddress(
'0x1e15037693e28af09771953ec8179d104fff7a225e5a5d1a65034a3636451026'
),
},
MEMEZ_WITNESS: {
original: normalizeSuiAddress(
'0x6083aeb2d22514d0e849fdde75b60c7d0f857facefb3b2d7d2e975b78d8a0c75'
),
latest: normalizeSuiAddress(
'0x6083aeb2d22514d0e849fdde75b60c7d0f857facefb3b2d7d2e975b78d8a0c75'
),
},
INTEREST_ACL: {
original: normalizeSuiAddress(
'0x32ffaa298a6d6528864bf2b32acfcb7976a95e26dcc24e40e2535c0551b9d68a'
),
latest: normalizeSuiAddress(
'0x32ffaa298a6d6528864bf2b32acfcb7976a95e26dcc24e40e2535c0551b9d68a'
),
},
XPUMP_MIGRATOR: {
original: normalizeSuiAddress('0x0'),
latest: normalizeSuiAddress('0x0'),
},
WALLET: {
original: normalizeSuiAddress('0x0'),
latest: normalizeSuiAddress('0x0'),
},
ROUTER: {
original: normalizeSuiAddress('0x0'),
latest: normalizeSuiAddress('0x0'),
},
IPX_COIN_STANDARD: {
original: normalizeSuiAddress('0x0'),
latest: normalizeSuiAddress('0x0'),
},
},
[Network.MAINNET]: {
MEMEZ_FUN: {
original: normalizeSuiAddress(
'0x779829966a2e8642c310bed79e6ba603e5acd3c31b25d7d4511e2c9303d6e3ef'
),
latest: normalizeSuiAddress(
'0x7e6aa6e179466ab2814425a780b122575296d011119fa69d27f289f5a28814bd'
),
},
MEMEZ: {
original: normalizeSuiAddress(
'0x6101835e1df12852440c3ad3f079130e31702fe201eb1e3b77d141a0c6a58539'
),
latest: normalizeSuiAddress(
'0x6101835e1df12852440c3ad3f079130e31702fe201eb1e3b77d141a0c6a58539'
),
},
VESTING: {
original: normalizeSuiAddress(
'0x1a184ecf7d0652f8f1285a3b0b2e644bf86ae1742317fcdaa9b11a7f3a30bd70'
),
latest: normalizeSuiAddress(
'0x1a184ecf7d0652f8f1285a3b0b2e644bf86ae1742317fcdaa9b11a7f3a30bd70'
),
},
TEST_MEMEZ_MIGRATOR: {
original: normalizeSuiAddress(
'0x4078fe9f8e60191b1ec85d4092b4ec070736dd7c4a3b0c69b1f121c4c6aee910'
),
latest: normalizeSuiAddress(
'0x4078fe9f8e60191b1ec85d4092b4ec070736dd7c4a3b0c69b1f121c4c6aee910'
),
},
MEMEZ_WITNESS: {
original: normalizeSuiAddress(
'0x6e38cc853e404376b1dc969178aee2c81799cf23af7171e74e492f6786db1cbe'
),
latest: normalizeSuiAddress(
'0x6e38cc853e404376b1dc969178aee2c81799cf23af7171e74e492f6786db1cbe'
),
},
INTEREST_ACL: {
original: normalizeSuiAddress(
'0xb877fe150db8e9af55c399b4e49ba8afe658bd05317cb378c940344851125e9a'
),
latest: normalizeSuiAddress(
'0xb877fe150db8e9af55c399b4e49ba8afe658bd05317cb378c940344851125e9a'
),
},
XPUMP_MIGRATOR: {
original: normalizeSuiAddress(
'0x7ec68f4115dc2944426239b13ce6804dd9971b24069fb4efe88360d29b17f0ce'
),
latest: normalizeSuiAddress(
'0xd4fd7ef75d33f92be5bd11f8cbd06cd15b8df68c6f5016fac6700808de0ff76e'
),
},
WALLET: {
original: normalizeSuiAddress(
'0x21700f31d563949214e0411f22a3cf64928f6a3e5b3c13f830a30d6884fe135b'
),
latest: normalizeSuiAddress(
'0x21700f31d563949214e0411f22a3cf64928f6a3e5b3c13f830a30d6884fe135b'
),
},
ROUTER: {
original: normalizeSuiAddress(
'0x07cb654d8ae22bd18fff08f322d99fdf9d1673712812329b127430b155dc44ff'
),
latest: normalizeSuiAddress(
'0x07cb654d8ae22bd18fff08f322d99fdf9d1673712812329b127430b155dc44ff'
),
},
IPX_COIN_STANDARD: {
original: normalizeSuiAddress(
'0xa204bd0d48d49fc7b8b05c8ef3f3ae63d1b22d157526a88b91391b41e6053157'
),
latest: normalizeSuiAddress(
'0xa204bd0d48d49fc7b8b05c8ef3f3ae63d1b22d157526a88b91391b41e6053157'
),
},
},
} as const;
MEMEZ_FUN: The address of the Memez launchpad package.
MEMEZ: The address of the OTW Memez package.
INTEREST_ACL: The package of the Memez admin package.
VESTING: The package of the vesting package of Memez package.
MEMEZ_MIGRATOR: The package of the migrator.
MEMEZ_WITNESS: A package containing the configuration witnesses.
XPUMP_MIGRATOR: The Blast.fun migrator package.
WALLET: The Memez wallet package to avoid bricking wallets.
ROUTER: The Memez router package that creates wallets for referrers when buying and selling.
IPX_COIN_STANDARD: The IPX coin standard that allowed protected access to update coin metadata and supply.
Shared Objects
An object containing the shared objects to interact with Memez. Each object has a mutable and immutable reference for optimization purposes.
export const SHARED_OBJECTS = {
[Network.TESTNET]: {
ACL: ({ mutable }: { mutable: boolean }) => ({
objectId: normalizeSuiObjectId(
'0xc8502b2e13ce57165218abaacd36850c7ea70a5ef4c0b80053eb0f6aaf1d338e'
),
initialSharedVersion: '395367236',
mutable,
}),
VERSION: ({ mutable }: { mutable: boolean }) => ({
objectId: normalizeSuiObjectId(
'0x4662e671861a4cb72ee0fe03193e3dd62645465f7cc61ce13422c8384bc8af46'
),
initialSharedVersion: '395367301',
mutable,
}),
CONFIG: ({ mutable }: { mutable: boolean }) => ({
objectId: normalizeSuiObjectId(
'0x0c8812c7ab6ae0a900a015c7db0048b20dad072c10faaef4759610a7ada97a73'
),
initialSharedVersion: '395367301',
mutable,
}),
XPUMP_MIGRATOR_CONFIG: ({ mutable }: { mutable: boolean }) => ({
objectId: normalizeSuiObjectId('0x0'),
initialSharedVersion: '0',
mutable,
}),
WALLET_REGISTRY: ({ mutable }: { mutable: boolean }) => ({
objectId: normalizeSuiObjectId('0x0'),
initialSharedVersion: '0',
mutable,
}),
},
[Network.MAINNET]: {
ACL: ({ mutable }: { mutable: boolean }) => ({
objectId: normalizeSuiObjectId(
'0x091bd217c6030076a8a97673e3b9f74e0f48bc3035dcb5d5daaf50a8a2d40b7f'
),
initialSharedVersion: '549909164',
mutable,
}),
VERSION: ({ mutable }: { mutable: boolean }) => ({
objectId: normalizeSuiObjectId(
'0x2319e3e76dfad73d8f4684bdbf42be4f32d8ce4521dd61becc8261dc918d82c0'
),
initialSharedVersion: '597477043',
mutable,
}),
CONFIG: ({ mutable }: { mutable: boolean }) => ({
objectId: normalizeSuiObjectId(
'0x9c665993f61a902475b083036da75240aa203bb874ebce4031810b589e485a61'
),
initialSharedVersion: '597477043',
mutable,
}),
XPUMP_MIGRATOR_CONFIG: ({ mutable }: { mutable: boolean }) => ({
objectId: normalizeSuiObjectId(
'0x6ac620306c77e9fb452123b8832b56cb4ec7f9bb638e42d3c6eeecdf173a9498'
),
initialSharedVersion: '603610952',
mutable,
}),
WALLET_REGISTRY: ({ mutable }: { mutable: boolean }) => ({
objectId: normalizeSuiObjectId(
'0xc6ed6d218aff361ed293ba3eaf2805772275c9dc87f650a0f8df9c80471c5fbe'
),
initialSharedVersion: '611022341',
mutable,
}),
},
} as const;
ACL: Shared object holding the current whitelisted admins.
VERSION: Shared object containing the latest version of the package.
CONFIG: Shared object contain all different configurations:
Fees
Migration Witnesses
Quote coins
Public Key
Pump State
Stable State
Auction State
XPUMP_MIGRATOR_CONFIG: The Blast.fun migrator configuration shared object.
WALLET_REGISTRY: The Memez wallet shared object. It ensures, there is only one wallet per address.
Config Keys
The configuration supports various values per integrator. For example the fees for Recrd and Default keys will have different values. This is set by the admin.
export const CONFIG_KEYS = {
[Network.Mainnet]: {
MEMEZ: '',
XPUMP: ''
},
[Network.Testnet]: {
MEMEZ: `${PACKAGES[Network.MAINNET].MEMEZ_WITNESS.original}::memez_witness::Memez`,
XPUMP:
'0x5afcb4c691bd3af2eb5de4c416b2ed501e843e81209f83ce6928bc3a10d0205c::xpump::ConfigKey',
},
} as const;
MEMEZ: This is the memez configuration.
XPUMP: This is the Blast.fun configuration.
Migrator Witnesses
Record of the current allowed migrators.
export const MIGRATOR_WITNESSES = {
[Network.TESTNET]: {
TEST: `${PACKAGES[Network.TESTNET].TEST_MEMEZ_MIGRATOR.original}::dummy::Witness`,
XPUMP: `${PACKAGES[Network.TESTNET].XPUMP_MIGRATOR.original}::xpump_migrator::Witness`,
},
[Network.MAINNET]: {
TEST: `${PACKAGES[Network.MAINNET].TEST_MEMEZ_MIGRATOR.original}::dummy::Witness`,
XPUMP: `${PACKAGES[Network.MAINNET].XPUMP_MIGRATOR.original}::xpump_migrator::Witness`,
},
} as const;
TEST: Currently we have a test migrator that returns the balances for testing purposes.
XPUMP: The Blast.fun migrator witness.
Last updated
Was this helpful?