EVM MCP Server
by chulanpro5
Verified
- evm-mcp-server
- src
- core
- constants
// ERC20 ABI
const erc20InfoAbi = [
{
inputs: [],
name: 'decimals',
outputs: [{ type: 'uint8' }],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'symbol',
outputs: [{ type: 'string' }],
stateMutability: 'view',
type: 'function'
}
] as const;
// Standard ERC20 contract bytecode and ABI
const ERC20_ABI = [
{
inputs: [
{
internalType: 'string',
name: '_name',
type: 'string'
},
{
internalType: 'string',
name: '_symbol',
type: 'string'
},
{
internalType: 'uint8',
name: '_decimals',
type: 'uint8'
},
{
internalType: 'uint256',
name: '_totalSupply',
type: 'uint256'
}
],
stateMutability: 'nonpayable',
type: 'constructor'
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: 'owner',
type: 'address'
},
{
indexed: true,
internalType: 'address',
name: 'spender',
type: 'address'
},
{
indexed: false,
internalType: 'uint256',
name: 'value',
type: 'uint256'
}
],
name: 'Approval',
type: 'event'
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: 'from',
type: 'address'
},
{
indexed: true,
internalType: 'address',
name: 'to',
type: 'address'
},
{
indexed: false,
internalType: 'uint256',
name: 'value',
type: 'uint256'
}
],
name: 'Transfer',
type: 'event'
},
{
inputs: [
{
internalType: 'address',
name: 'owner',
type: 'address'
},
{
internalType: 'address',
name: 'spender',
type: 'address'
}
],
name: 'allowance',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'spender',
type: 'address'
},
{
internalType: 'uint256',
name: 'amount',
type: 'uint256'
}
],
name: 'approve',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool'
}
],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'account',
type: 'address'
}
],
name: 'balanceOf',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'decimals',
outputs: [
{
internalType: 'uint8',
name: '',
type: 'uint8'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'name',
outputs: [
{
internalType: 'string',
name: '',
type: 'string'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'symbol',
outputs: [
{
internalType: 'string',
name: '',
type: 'string'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'totalSupply',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'to',
type: 'address'
},
{
internalType: 'uint256',
name: 'amount',
type: 'uint256'
}
],
name: 'transfer',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool'
}
],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'from',
type: 'address'
},
{
internalType: 'address',
name: 'to',
type: 'address'
},
{
internalType: 'uint256',
name: 'amount',
type: 'uint256'
}
],
name: 'transferFrom',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool'
}
],
stateMutability: 'nonpayable',
type: 'function'
}
];
// ERC20 contract bytecode (OpenZeppelin ERC20 implementation)
const ERC20_BYTECODE =
'0x608060405234801561000f575f80fd5b50604051611931380380611931833981810160405281019061003191906102f5565b835f908161003f9190610595565b50826001908161004f9190610595565b508160025f6101000a81548160ff021916908360ff1602179055508160ff16600a61007a91906107c0565b81610085919061080a565b60038190555060035460045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405161012e919061085a565b60405180910390a350505050610873565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61019e82610158565b810181811067ffffffffffffffff821117156101bd576101bc610168565b5b80604052505050565b5f6101cf61013f565b90506101db8282610195565b919050565b5f67ffffffffffffffff8211156101fa576101f9610168565b5b61020382610158565b9050602081019050919050565b8281835e5f83830152505050565b5f61023061022b846101e0565b6101c6565b90508281526020810184848401111561024c5761024b610154565b5b610257848285610210565b509392505050565b5f82601f83011261027357610272610150565b5b815161028384826020860161021e565b91505092915050565b5f60ff82169050919050565b6102a18161028c565b81146102ab575f80fd5b50565b5f815190506102bc81610298565b92915050565b5f819050919050565b6102d4816102c2565b81146102de575f80fd5b50565b5f815190506102ef816102cb565b92915050565b5f805f806080858703121561030d5761030c610148565b5b5f85015167ffffffffffffffff81111561032a5761032961014c565b5b6103368782880161025f565b945050602085015167ffffffffffffffff8111156103575761035661014c565b5b6103638782880161025f565b9350506040610374878288016102ae565b9250506060610385878288016102e1565b91505092959194509250565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103df57607f821691505b6020821081036103f2576103f161039b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026104547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610419565b61045e8683610419565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61049961049461048f846102c2565b610476565b6102c2565b9050919050565b5f819050919050565b6104b28361047f565b6104c66104be826104a0565b848454610425565b825550505050565b5f90565b6104da6104ce565b6104e58184846104a9565b505050565b5b81811015610508576104fd5f826104d2565b6001810190506104eb565b5050565b601f82111561054d5761051e816103f8565b6105278461040a565b81016020851015610536578190505b61054a6105428561040a565b8301826104ea565b50505b505050565b5f82821c905092915050565b5f61056d5f1984600802610552565b1980831691505092915050565b5f610585838361055e565b9150826002028217905092915050565b61059e82610391565b67ffffffffffffffff8111156105b7576105b6610168565b5b6105c182546103c8565b6105cc82828561050c565b5f60209050601f8311600181146105fd575f84156105eb578287015190505b6105f5858261057a565b86555061065c565b601f19841661060b866103f8565b5f5b828110156106325784890151825560018201915060208501945060208101905061060d565b8683101561064f578489015161064b601f89168261055e565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156106e6578086048111156106c2576106c1610664565b5b60018516156106d15780820291505b80810290506106df85610691565b94506106a6565b94509492505050565b5f826106fe57600190506107b9565b8161070b575f90506107b9565b8160018114610721576002811461072b5761075a565b60019150506107b9565b60ff84111561073d5761073c610664565b5b8360020a91508482111561075457610753610664565b5b506107b9565b5060208310610133831016604e8410600b841016171561078f5782820a90508381111561078a57610789610664565b5b6107b9565b61079c848484600161069d565b925090508184048111156107b3576107b2610664565b5b81810290505b9392505050565b5f6107ca826102c2565b91506107d5836102c2565b92506108027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846106ef565b905092915050565b5f610814826102c2565b915061081f836102c2565b925082820261082d816102c2565b9150828204841483151761084457610843610664565b5b5092915050565b610854816102c2565b82525050565b5f60208201905061086d5f83018461084b565b92915050565b6110b1806108805f395ff3fe608060405234801561000f575f80fd5b5060043610610091575f3560e01c8063313ce56711610064578063313ce5671461013157806370a082311461014f57806395d89b411461017f578063a9059cbb1461019d578063dd62ed3e146101cd57610091565b806306fdde0314610095578063095ea7b3146100b357806318160ddd146100e357806323b872dd14610101575b5f80fd5b61009d6101fd565b6040516100aa9190610b8e565b60405180910390f35b6100cd60048036038101906100c89190610c3f565b610288565b6040516100da9190610c97565b60405180910390f35b6100eb61037a565b6040516100f89190610cbf565b60405180910390f35b61011b60048036038101906101169190610cd8565b610380565b6040516101289190610c97565b60405180910390f35b610139610741565b6040516101469190610d43565b60405180910390f35b61016960048036038101906101649190610d5c565b610753565b6040516101769190610cbf565b60405180910390f35b610187610799565b6040516101949190610b8e565b60405180910390f35b6101b760048036038101906101b29190610c3f565b610825565b6040516101c49190610c97565b60405180910390f35b6101e760048036038101906101e29190610d87565b610a9c565b6040516101f49190610cbf565b60405180910390f35b5f805461020990610df2565b80601f016020809104026020016040519081016040528092919081815260200182805461023590610df2565b80156102805780601f1061025757610100808354040283529160200191610280565b820191905f5260205f20905b81548152906001019060200180831161026357829003601f168201915b505050505081565b5f803390508260055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516103679190610cbf565b60405180910390a3600191505092915050565b60035481565b5f803390505f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036103f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ea90610e6c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161045890610ed4565b60405180910390fd5b8260045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156104e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104d890610f3c565b60405180910390fd5b8260055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561059c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059390610fca565b60405180910390fd5b8260045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546105e89190611015565b925050819055508260045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461063b9190611048565b925050819055508260055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546106c99190611015565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161072d9190610cbf565b60405180910390a360019150509392505050565b60025f9054906101000a900460ff1681565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b600180546107a690610df2565b80601f01602080910402602001604051908101604052809291908181526020018280546107d290610df2565b801561081d5780601f106107f45761010080835404028352916020019161081d565b820191905f5260205f20905b81548152906001019060200180831161080057829003601f168201915b505050505081565b5f803390505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610898576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088f90610e6c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90610ed4565b60405180910390fd5b8260045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097d90610f3c565b60405180910390fd5b8260045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546109d29190611015565b925050819055508260045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a259190611048565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a899190610cbf565b60405180910390a3600191505092915050565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f610b6082610b1e565b610b6a8185610b28565b9350610b7a818560208601610b38565b610b8381610b46565b840191505092915050565b5f6020820190508181035f830152610ba68184610b56565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610bdb82610bb2565b9050919050565b610beb81610bd1565b8114610bf5575f80fd5b50565b5f81359050610c0681610be2565b92915050565b5f819050919050565b610c1e81610c0c565b8114610c28575f80fd5b50565b5f81359050610c3981610c15565b92915050565b5f8060408385031215610c5557610c54610bae565b5b5f610c6285828601610bf8565b9250506020610c7385828601610c2b565b9150509250929050565b5f8115159050919050565b610c9181610c7d565b82525050565b5f602082019050610caa5f830184610c88565b92915050565b610cb981610c0c565b82525050565b5f602082019050610cd25f830184610cb0565b92915050565b5f805f60608486031215610cef57610cee610bae565b5b5f610cfc86828701610bf8565b9350506020610d0d86828701610bf8565b9250506040610d1e86828701610c2b565b9150509250925092565b5f60ff82169050919050565b610d3d81610d28565b82525050565b5f602082019050610d565f830184610d34565b92915050565b5f60208284031215610d7157610d70610bae565b5b5f610d7e84828501610bf8565b91505092915050565b5f8060408385031215610d9d57610d9c610bae565b5b5f610daa85828601610bf8565b9250506020610dbb85828601610bf8565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610e0957607f821691505b602082108103610e1c57610e1b610dc5565b5b50919050565b7f5472616e736665722066726f6d20746865207a65726f206164647265737300005f82015250565b5f610e56601e83610b28565b9150610e6182610e22565b602082019050919050565b5f6020820190508181035f830152610e8381610e4a565b9050919050565b7f5472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f610ebe601c83610b28565b9150610ec982610e8a565b602082019050919050565b5f6020820190508181035f830152610eeb81610eb2565b9050919050565b7f5472616e7366657220616d6f756e7420657863656564732062616c616e6365005f82015250565b5f610f26601f83610b28565b9150610f3182610ef2565b602082019050919050565b5f6020820190508181035f830152610f5381610f1a565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320616c6c6f77616e635f8201527f6500000000000000000000000000000000000000000000000000000000000000602082015250565b5f610fb4602183610b28565b9150610fbf82610f5a565b604082019050919050565b5f6020820190508181035f830152610fe181610fa8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61101f82610c0c565b915061102a83610c0c565b925082820390508181111561104257611041610fe8565b5b92915050565b5f61105282610c0c565b915061105d83610c0c565b925082820190508082111561107557611074610fe8565b5b9291505056fea26469706673582212200b824b09a8d72ca45d67e595954e4dad717651d9b19548d37023e6c69450685a64736f6c634300081a0033';
// Tax ERC20 contract bytecode and ABI
const ERC20_TAX_ABI = [
{
inputs: [
{
internalType: 'string',
name: '_name',
type: 'string'
},
{
internalType: 'string',
name: '_symbol',
type: 'string'
},
{
internalType: 'uint256',
name: '_maxSupply',
type: 'uint256'
},
{
internalType: 'address',
name: '_dexRouter',
type: 'address'
},
{
internalType: 'address',
name: '_developmentFund',
type: 'address'
},
{
internalType: 'uint256',
name: '_initialBuyFee',
type: 'uint256'
},
{
internalType: 'uint256',
name: '_initialSellFee',
type: 'uint256'
}
],
stateMutability: 'nonpayable',
type: 'constructor'
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: 'owner',
type: 'address'
},
{
indexed: true,
internalType: 'address',
name: 'spender',
type: 'address'
},
{
indexed: false,
internalType: 'uint256',
name: 'value',
type: 'uint256'
}
],
name: 'Approval',
type: 'event'
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: 'previousOwner',
type: 'address'
},
{
indexed: true,
internalType: 'address',
name: 'newOwner',
type: 'address'
}
],
name: 'OwnershipTransferred',
type: 'event'
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: 'address',
name: 'from',
type: 'address'
},
{
indexed: true,
internalType: 'address',
name: 'to',
type: 'address'
},
{
indexed: false,
internalType: 'uint256',
name: 'value',
type: 'uint256'
}
],
name: 'Transfer',
type: 'event'
},
{
inputs: [
{
internalType: 'address',
name: 'owner',
type: 'address'
},
{
internalType: 'address',
name: 'spender',
type: 'address'
}
],
name: 'allowance',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'spender',
type: 'address'
},
{
internalType: 'uint256',
name: 'amount',
type: 'uint256'
}
],
name: 'approve',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool'
}
],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'account',
type: 'address'
}
],
name: 'balanceOf',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [
{
internalType: 'uint256',
name: 'amount',
type: 'uint256'
}
],
name: 'burn',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'uint256',
name: '_swapAtAmount',
type: 'uint256'
}
],
name: 'changeSwapAtAmount',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [],
name: 'decimals',
outputs: [
{
internalType: 'uint8',
name: '',
type: 'uint8'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'spender',
type: 'address'
},
{
internalType: 'uint256',
name: 'subtractedValue',
type: 'uint256'
}
],
name: 'decreaseAllowance',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool'
}
],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [],
name: 'developmentFund',
outputs: [
{
internalType: 'address',
name: '',
type: 'address'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [
{
internalType: 'uint256',
name: '_maxHolder',
type: 'uint256'
},
{
internalType: 'uint256',
name: 'maxBuy',
type: 'uint256'
},
{
internalType: 'uint256',
name: '_swapAtAmt',
type: 'uint256'
}
],
name: 'enableTrading',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'account',
type: 'address'
},
{
internalType: 'bool',
name: 'excluded',
type: 'bool'
}
],
name: 'excludeFromFees',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'account',
type: 'address'
},
{
internalType: 'bool',
name: 'excluded',
type: 'bool'
}
],
name: 'excludeFromMaxWallet',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'spender',
type: 'address'
},
{
internalType: 'uint256',
name: 'addedValue',
type: 'uint256'
}
],
name: 'increaseAllowance',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool'
}
],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: '',
type: 'address'
}
],
name: 'isExcludedFromFee',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'maxHolder',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'maxWalletTime',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'name',
outputs: [
{
internalType: 'string',
name: '',
type: 'string'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'owner',
outputs: [
{
internalType: 'address',
name: '',
type: 'address'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'pair',
outputs: [
{
internalType: 'address',
name: '',
type: 'address'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'renounceOwnership',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: '_address',
type: 'address'
},
{
internalType: 'bool',
name: '_status',
type: 'bool'
}
],
name: 'setExcludeFromFee',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'bool',
name: '_enabled',
type: 'bool'
}
],
name: 'setSwapAndLiquifyEnabled',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [],
name: 'swapAtAmount',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'symbol',
outputs: [
{
internalType: 'string',
name: '',
type: 'string'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'totalBuyFee',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'totalSellFee',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'totalSupply',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'tradingEnabled',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [],
name: 'tradingTime',
outputs: [
{
internalType: 'uint256',
name: '',
type: 'uint256'
}
],
stateMutability: 'view',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'to',
type: 'address'
},
{
internalType: 'uint256',
name: 'amount',
type: 'uint256'
}
],
name: 'transfer',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool'
}
],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'from',
type: 'address'
},
{
internalType: 'address',
name: 'to',
type: 'address'
},
{
internalType: 'uint256',
name: 'amount',
type: 'uint256'
}
],
name: 'transferFrom',
outputs: [
{
internalType: 'bool',
name: '',
type: 'bool'
}
],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [
{
internalType: 'address',
name: 'newOwner',
type: 'address'
}
],
name: 'transferOwnership',
outputs: [],
stateMutability: 'nonpayable',
type: 'function'
},
{
inputs: [],
name: 'uniswapV2Router',
outputs: [
{
internalType: 'contract IUniswapV2Router02',
name: '',
type: 'address'
}
],
stateMutability: 'view',
type: 'function'
},
{
stateMutability: 'payable',
type: 'receive'
}
];
// ERC20 contract bytecode (OpenZeppelin ERC20 implementation)
const ERC20_TAX_BYTECODE =
'0x608060405260036009819055600a55600b805460ff191690556000600e819055600f556013805461ff00191661010017905534801561003d57600080fd5b506040516121d53803806121d583398101604081905261005c916105a9565b86866100673361032a565b600461007383826106dd565b50600561008082826106dd565b50505061009a61009461032660201b60201c565b8661037a565b6100a66101908661079b565b600f556100b56105788661079b565b600e556013805460ff191690556009829055600a8190556001600160a01b0383166100ed57600880546001600160a01b031916331790555b60008490506000816001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610132573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015691906107bd565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c791906107bd565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610214573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023891906107bd565b600680546001600160a01b038086166001600160a01b031992831617909255600780549284169290911691909117905590506001600c60006102773390565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790556008549091168152600c909252808220805484166001908117909155308352912080549092161790556102df6102d83390565b6001610440565b6007546102f6906001600160a01b03166001610440565b610301306001610440565b600654610318906001600160a01b03166001610440565b505050505050505050610806565b3390565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0382166103d55760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b80600360008282546103e791906107df565b90915550506001600160a01b0382166000818152600160209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b610448610478565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b505050565b6000546001600160a01b031633146104d25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103cc565b565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126104fb57600080fd5b81516001600160401b03811115610514576105146104d4565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610542576105426104d4565b60405281815283820160200185101561055a57600080fd5b60005b828110156105795760208186018101518383018201520161055d565b506000918101602001919091529392505050565b80516001600160a01b03811681146105a457600080fd5b919050565b600080600080600080600060e0888a0312156105c457600080fd5b87516001600160401b038111156105da57600080fd5b6105e68a828b016104ea565b60208a015190985090506001600160401b0381111561060457600080fd5b6106108a828b016104ea565b60408a0151909750955061062890506060890161058d565b93506106366080890161058d565b60a089015160c090990151979a96995094979396949593949392505050565b600181811c9082168061066957607f821691505b60208210810361068957634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561047357806000526020600020601f840160051c810160208510156106b65750805b601f840160051c820191505b818110156106d657600081556001016106c2565b5050505050565b81516001600160401b038111156106f6576106f66104d4565b61070a816107048454610655565b8461068f565b6020601f82116001811461073e57600083156107265750848201515b600019600385901b1c1916600184901b1784556106d6565b600084815260208120601f198516915b8281101561076e578785015182556020948501946001909201910161074e565b508482101561078c5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6000826107b857634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156107cf57600080fd5b6107d88261058d565b9392505050565b8082018082111561080057634e487b7160e01b600052601160045260246000fd5b92915050565b6119c0806108156000396000f3fe6080604052600436106101e75760003560e01c80638691752411610102578063b8158d6011610095578063cfdbe82311610064578063cfdbe8231461056f578063d2fcc0011461058f578063dd62ed3e146105af578063f2fde38b146105cf57600080fd5b8063b8158d6014610503578063bc17b30c14610519578063c02466681461052f578063c49b9a801461054f57600080fd5b8063a457c2d7116100d1578063a457c2d714610483578063a8aa1b31146104a3578063a9059cbb146104c3578063af9549e0146104e357600080fd5b8063869175241461041a5780638a2381d7146104305780638da5cb5b1461045057806395d89b411461046e57600080fd5b806342966c681161017a5780635342acb4116101495780635342acb41461037f578063684521a6146103af57806370a08231146103cf578063715018a61461040557600080fd5b806342966c681461031757806347062402146103395780634ada218b1461034f5780634bd1df901461036957600080fd5b806323b872dd116101b657806323b872dd146102a55780632b14ca56146102c5578063313ce567146102db57806339509351146102f757600080fd5b806306fdde03146101f3578063095ea7b31461021e5780631694505e1461024e57806318160ddd1461028657600080fd5b366101ee57005b600080fd5b3480156101ff57600080fd5b506102086105ef565b6040516102159190611583565b60405180910390f35b34801561022a57600080fd5b5061023e6102393660046115e6565b610681565b6040519015158152602001610215565b34801561025a57600080fd5b5060065461026e906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b34801561029257600080fd5b506003545b604051908152602001610215565b3480156102b157600080fd5b5061023e6102c0366004611612565b61069b565b3480156102d157600080fd5b50610297600a5481565b3480156102e757600080fd5b5060405160128152602001610215565b34801561030357600080fd5b5061023e6103123660046115e6565b6106bf565b34801561032357600080fd5b50610337610332366004611653565b6106e1565b005b34801561034557600080fd5b5061029760095481565b34801561035b57600080fd5b5060135461023e9060ff1681565b34801561037557600080fd5b50610297600f5481565b34801561038b57600080fd5b5061023e61039a36600461166c565b600c6020526000908152604090205460ff1681565b3480156103bb57600080fd5b506103376103ca366004611653565b6106ee565b3480156103db57600080fd5b506102976103ea36600461166c565b6001600160a01b031660009081526001602052604090205490565b34801561041157600080fd5b50610337610750565b34801561042657600080fd5b50610297600e5481565b34801561043c57600080fd5b5060085461026e906001600160a01b031681565b34801561045c57600080fd5b506000546001600160a01b031661026e565b34801561047a57600080fd5b50610208610764565b34801561048f57600080fd5b5061023e61049e3660046115e6565b610773565b3480156104af57600080fd5b5060075461026e906001600160a01b031681565b3480156104cf57600080fd5b5061023e6104de3660046115e6565b6107ee565b3480156104ef57600080fd5b506103376104fe36600461169e565b6107fc565b34801561050f57600080fd5b5061029760115481565b34801561052557600080fd5b5061029760105481565b34801561053b57600080fd5b5061033761054a36600461169e565b6108e6565b34801561055b57600080fd5b5061033761056a3660046116d3565b610971565b34801561057b57600080fd5b5061033761058a3660046116ee565b610993565b34801561059b57600080fd5b506103376105aa36600461169e565b610a41565b3480156105bb57600080fd5b506102976105ca36600461171a565b610a74565b3480156105db57600080fd5b506103376105ea36600461166c565b610a9f565b6060600480546105fe90611753565b80601f016020809104026020016040519081016040528092919081815260200182805461062a90611753565b80156106775780601f1061064c57610100808354040283529160200191610677565b820191906000526020600020905b81548152906001019060200180831161065a57829003601f168201915b5050505050905090565b60003361068f818585610b15565b60019150505b92915050565b6000336106a9858285610c39565b6106b4858585610cb3565b506001949350505050565b60003361068f8185856106d28383610a74565b6106dc91906117a3565b610b15565b6106eb3382611016565b50565b6106f661114a565b8060000361074b5760405162461bcd60e51b815260206004820152601b60248201527f5f737761704174416d6f756e742076616c756520696e76616c6964000000000060448201526064015b60405180910390fd5b600e55565b61075861114a565b61076260006111a4565b565b6060600580546105fe90611753565b600033816107818286610a74565b9050838110156107e15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610742565b6106b48286868403610b15565b60003361068f818585610cb3565b61080461114a565b6001600160a01b03821661085a5760405162461bcd60e51b815260206004820152601760248201527f3078206973206e6f7420616363657074656420686572650000000000000000006044820152606401610742565b6001600160a01b0382166000908152600c602052604090205481151560ff9091161515036108bb5760405162461bcd60e51b815260206004820152600e60248201526d14dd185d1d5cc81dd85cc81cd95d60921b6044820152606401610742565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6108ee61114a565b6001600160a01b0382166000908152600c602052604090205481151560ff9091161515036108bb5760405162461bcd60e51b815260206004820152602a60248201527f4163636f756e7420697320616c7265616479207468652076616c7565206f6620604482015269276578636c756465642760b01b6064820152608401610742565b61097961114a565b601380549115156101000261ff0019909216919091179055565b61099b61114a565b60135460ff16156109ee5760405162461bcd60e51b815260206004820152601860248201527f54726164696e6720616c726561647920656e61626c65642e00000000000000006044820152606401610742565b6013805460ff191660011790558215610a0c57600354600f55610a12565b600f8390555b610a1d4260786117a3565b601055426011558115610a305760128290555b8015610a3c57600e8190555b505050565b610a4961114a565b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610aa761114a565b6001600160a01b038116610b0c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610742565b6106eb816111a4565b6001600160a01b038316610b775760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610742565b6001600160a01b038216610bd85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610742565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610c458484610a74565b90506000198114610cad5781811015610ca05760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610742565b610cad8484848403610b15565b50505050565b6001600160a01b0383166000908152600c602052604081205460ff16158015610cf557506001600160a01b0383166000908152600c602052604090205460ff16155b8015610d045750600b5460ff16155b15610e805760135460ff16610d5b5760405162461bcd60e51b815260206004820152601860248201527f54726164696e67206e6f742079657420656e61626c65642100000000000000006044820152606401610742565b6001600160a01b0383166000908152600d602052604090205460ff16158015610d8657506010544211155b15610dff57600f546001600160a01b038416600090815260016020526040902054610db190846117a3565b1115610dff5760405162461bcd60e51b815260206004820152601b60248201527f556e61626c6520746f20657863656564204d61782057616c6c657400000000006044820152606401610742565b6007546001600160a01b038581169116148015610e295750601154610e2590601e6117a3565b4211155b15610e8057601254821115610e805760405162461bcd60e51b815260206004820152601860248201527f556e61626c6520746f20657863656564204d61782042757900000000000000006044820152606401610742565b600b5460ff1615610e9657610cad8484846111f4565b3060009081526001602052604081205490506000600e548210158015610eca57506007546001600160a01b03878116911614155b9050808015610edc5750600b5460ff16155b8015610eef5750601354610100900460ff165b15610f1857600b805460ff19166001179055600e54610f0d9061139f565b600b805460ff191690555b6001600160a01b0386166000908152600c602052604090205460ff16158015610f4e57506007546001600160a01b038681169116145b15610f5d57600a549250610f9e565b6001600160a01b0385166000908152600c602052604090205460ff16158015610f9357506007546001600160a01b038781169116145b15610f9e5760095492505b600083118015610fb757506001600160a01b0386163014155b8015610fcc57506001600160a01b0385163014155b15611003576000610fe86064610fe28787611558565b9061156b565b9050610ff58730836111f4565b610fff8582611577565b9450505b61100e8686866111f4565b505050505050565b6001600160a01b0382166110765760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610742565b6001600160a01b038216600090815260016020526040902054818110156110ea5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610742565b6001600160a01b03831660008181526001602090815260408083208686039055600380548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6000546001600160a01b031633146107625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610742565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166112585760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610742565b6001600160a01b0382166112ba5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610742565b6001600160a01b038316600090815260016020526040902054818110156113325760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610742565b6001600160a01b0380851660008181526001602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113929086815260200190565b60405180910390a3610cad565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113d4576113d46117cc565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561142d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061145191906117e2565b81600181518110611464576114646117cc565b6001600160a01b03928316602091820292909201015260065461148a9130911684610b15565b6006546040516318cbafe560e01b81526001600160a01b03909116906318cbafe5906114c39085906000908690309042906004016117ff565b6000604051808303816000875af11580156114e2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261150a9190810190611871565b5060085460405147916001600160a01b0316908290600081818185875af1925050503d806000811461100e576040519150601f19603f3d011682016040523d82523d6000602084013e61100e565b6000611564828461193e565b9392505050565b60006115648284611955565b60006115648284611977565b602081526000825180602084015260005b818110156115b15760208186018101516040868401015201611594565b506000604082850101526040601f19601f83011684010191505092915050565b6001600160a01b03811681146106eb57600080fd5b600080604083850312156115f957600080fd5b8235611604816115d1565b946020939093013593505050565b60008060006060848603121561162757600080fd5b8335611632816115d1565b92506020840135611642816115d1565b929592945050506040919091013590565b60006020828403121561166557600080fd5b5035919050565b60006020828403121561167e57600080fd5b8135611564816115d1565b8035801515811461169957600080fd5b919050565b600080604083850312156116b157600080fd5b82356116bc816115d1565b91506116ca60208401611689565b90509250929050565b6000602082840312156116e557600080fd5b61156482611689565b60008060006060848603121561170357600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561172d57600080fd5b8235611738816115d1565b91506020830135611748816115d1565b809150509250929050565b600181811c9082168061176757607f821691505b60208210810361178757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106955761069561178d565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117f457600080fd5b8151611564816115d1565b600060a0820187835286602084015260a0604084015280865180835260c08501915060208801925060005b818110156118515783516001600160a01b031683526020938401939092019160010161182a565b50506001600160a01b039590951660608401525050608001529392505050565b60006020828403121561188357600080fd5b815167ffffffffffffffff81111561189a57600080fd5b8201601f810184136118ab57600080fd5b805167ffffffffffffffff8111156118c5576118c56117b6565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156118f2576118f26117b6565b60405291825260208184018101929081018784111561191057600080fd5b6020850194505b8385101561193357845180825260209586019590935001611917565b509695505050505050565b80820281158282048414176106955761069561178d565b60008261197257634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156106955761069561178d56fea26469706673582212205a08f7c5c73990efb4e1cc6ae2d05e9e486519782711c435bbaf8572023094c964736f6c634300081a0033';
export {
ERC20_ABI,
ERC20_BYTECODE,
ERC20_TAX_ABI,
ERC20_TAX_BYTECODE,
erc20InfoAbi
};