You can check the full source code in this github repository.
https://github.com/seiyan-fun
Contract Address
You can use Bond contract address for creating, minting and burning tokens.
Title | Address |
Bond Contract (Proxy) | 0x613cb5B7A8ffD4304161f30fba46cE4284C25e21 |
NFT Staking Contract | 0x7fBF2698eF7c88f089fF38d1e37515c707C83aa3 |
Bond Contract ABI
export const BOND_CONTRACT_ABIBOND_CONTRACT_ABI = [
{
type: "function",
name: "burn",
inputs: [
{
name: "token",
type: "address",
internalType: "address",
},
{
name: "tokensToBurn",
type: "uint256",
internalType: "uint256",
},
{
name: "minRefund",
type: "uint256",
internalType: "uint256",
},
{
name: "receiver",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "nonpayable",
},
{
type: "function",
name: "createTokenAndMint",
inputs: [
{
name: "tp",
type: "tuple",
internalType: "struct IBondV1.TokenParams",
components: [
{
name: "name",
type: "string",
internalType: "string",
},
{
name: "symbol",
type: "string",
internalType: "string",
},
],
},
{
name: "imageId",
type: "string",
internalType: "string",
},
{
name: "description",
type: "string",
internalType: "string",
},
{
name: "creator",
type: "address",
internalType: "address",
},
{
name: "receiver",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "tokenAddress",
type: "address",
internalType: "address",
},
{
name: "amountOut",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "payable",
},
{
type: "function",
name: "getBurnAmountOut",
inputs: [
{
name: "token",
type: "address",
internalType: "address",
},
{
name: "receiver",
type: "address",
internalType: "address",
},
{
name: "tokensToBurn",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "refundAmount",
type: "uint256",
internalType: "uint256",
},
{
name: "feeAmount",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "getMintAmountOut",
inputs: [
{
name: "mintToken",
type: "address",
internalType: "address",
},
{
name: "receiver",
type: "address",
internalType: "address",
},
{
name: "amountIn",
type: "uint256",
internalType: "uint256",
},
],
outputs: [
{
name: "estimatedAmountOut",
type: "uint256",
internalType: "uint256",
},
{
name: "amountInLeft",
type: "uint256",
internalType: "uint256",
},
{
name: "effectedFee",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "view",
},
{
type: "function",
name: "mint",
inputs: [
{
name: "token",
type: "address",
internalType: "address",
},
{
name: "minAmountOut",
type: "uint256",
internalType: "uint256",
},
{
name: "receiver",
type: "address",
internalType: "address",
},
],
outputs: [
{
name: "",
type: "uint256",
internalType: "uint256",
},
],
stateMutability: "payable",
},
{
type: "event",
name: "BurnEvent",
inputs: [
{
name: "tokenAddress",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "account",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "tokenAmountIn",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "coinAmountOut",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "fee",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "currentBondingCurveReserve",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "currentTotalSupply",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "tokenPriceAfterBurn",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "blockTimestamp",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "MintEvent",
inputs: [
{
name: "tokenAddress",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "account",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "coinAmountIn",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "tokenAmountOut",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "coinAmountOut",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "fee",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "currentBondingCurveReserve",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "currentTotalSupply",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "tokenPriceAfterMint",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "blockTimestamp",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "TokenCreated",
inputs: [
{
name: "token",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "creator",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "name",
type: "string",
indexed: false,
internalType: "string",
},
{
name: "symbol",
type: "string",
indexed: false,
internalType: "string",
},
{
name: "blockTimestamp",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "TokenListed",
inputs: [
{
name: "token",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "lpAddress",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "coinAmount",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "tokenAmount",
type: "uint256",
indexed: false,
internalType: "uint256",
},
{
name: "fee",
type: "uint256",
indexed: false,
internalType: "uint256",
},
],
anonymous: false,
},
{
type: "event",
name: "TokenMetadataReceived",
inputs: [
{
name: "token",
type: "address",
indexed: true,
internalType: "address",
},
{
name: "imageId",
type: "string",
indexed: false,
internalType: "string",
},
{
name: "description",
type: "string",
indexed: false,
internalType: "string",
},
],
anonymous: false,
},
] as const;
NFT Staking Contract ABI
export const NFT_STAKING_CONTRACT_ABI = [
{
"type": "function",
"name": "balanceOf",
"inputs": [
{
"name": "user",
"type": "address",
"internalType": "address"
}
],
"outputs": [
{
"name": "",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "view"
},
{
"type": "function",
"name": "onERC721Received",
"inputs": [
{
"name": "operator",
"type": "address",
"internalType": "address"
},
{
"name": "from",
"type": "address",
"internalType": "address"
},
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "data",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [
{
"name": "",
"type": "bytes4",
"internalType": "bytes4"
}
],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "stake",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "unstake",
"inputs": [
{
"name": "tokenId",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [],
"stateMutability": "nonpayable"
},
{
"type": "function",
"name": "unstakeAll",
"inputs": [],
"outputs": [],
"stateMutability": "nonpayable"
}
] as const;