import { ABIDataTypes } from '@btc-vision/transaction'; import { BitcoinAbiTypes } from '../../../BitcoinAbiTypes.js'; import { BitcoinInterfaceAbi } from '../../../interfaces/BitcoinInterfaceAbi.js'; import { OP_NET_ABI } from '../opnet/OP_NET_ABI.js'; export const OP20FactoryEvents: BitcoinInterfaceAbi = [ { name: 'TokenDeployed', values: [ { name: 'deployer', type: ABIDataTypes.ADDRESS }, { name: 'token', type: ABIDataTypes.ADDRESS }, { name: 'name', type: ABIDataTypes.STRING }, { name: 'symbol', type: ABIDataTypes.STRING }, ], type: BitcoinAbiTypes.Event, }, { name: 'FactoryPaused', values: [{ name: 'by', type: ABIDataTypes.ADDRESS }], type: BitcoinAbiTypes.Event, }, { name: 'FactoryUnpaused', values: [{ name: 'by', type: ABIDataTypes.ADDRESS }], type: BitcoinAbiTypes.Event, }, ]; export const OP20FactoryAbi: BitcoinInterfaceAbi = [ { name: 'pauseFactory', type: BitcoinAbiTypes.Function, inputs: [], outputs: [{ name: 'success', type: ABIDataTypes.BOOL }], }, { name: 'unpauseFactory', type: BitcoinAbiTypes.Function, inputs: [], outputs: [{ name: 'success', type: ABIDataTypes.BOOL }], }, { name: 'isPaused', type: BitcoinAbiTypes.Function, constant: true, inputs: [], outputs: [{ name: 'isPaused', type: ABIDataTypes.BOOL }], }, { name: 'owner', type: BitcoinAbiTypes.Function, constant: true, inputs: [], outputs: [{ name: 'owner', type: ABIDataTypes.ADDRESS }], }, { name: 'deployToken', type: BitcoinAbiTypes.Function, inputs: [ { name: 'maxSupply', type: ABIDataTypes.UINT256 }, { name: 'decimals', type: ABIDataTypes.UINT8 }, { name: 'name', type: ABIDataTypes.STRING }, { name: 'symbol', type: ABIDataTypes.STRING }, { name: 'initialMintTo', type: ABIDataTypes.ADDRESS }, { name: 'initialMintAmount', type: ABIDataTypes.UINT256 }, { name: 'freeMintSupply', type: ABIDataTypes.UINT256 }, { name: 'freeMintPerTx', type: ABIDataTypes.UINT256 }, { name: 'tokenOwner', type: ABIDataTypes.ADDRESS }, ], outputs: [{ name: 'success', type: ABIDataTypes.BOOL }], }, { name: 'getTokenDeployer', type: BitcoinAbiTypes.Function, constant: true, inputs: [{ name: 'tokenAddress', type: ABIDataTypes.ADDRESS }], outputs: [{ name: 'deployer', type: ABIDataTypes.ADDRESS }], }, { name: 'getTokenOwner', type: BitcoinAbiTypes.Function, constant: true, inputs: [{ name: 'tokenAddress', type: ABIDataTypes.ADDRESS }], outputs: [{ name: 'owner', type: ABIDataTypes.ADDRESS }], }, { name: 'updateTokenOwner', type: BitcoinAbiTypes.Function, inputs: [ { name: 'tokenAddress', type: ABIDataTypes.ADDRESS }, { name: 'newOwner', type: ABIDataTypes.ADDRESS }, ], outputs: [{ name: 'success', type: ABIDataTypes.BOOL }], }, { name: 'getUserTokens', type: BitcoinAbiTypes.Function, constant: true, inputs: [{ name: 'deployer', type: ABIDataTypes.ADDRESS }], outputs: [{ name: 'tokens', type: ABIDataTypes.BYTES }], }, { name: 'getDeploymentInfo', type: BitcoinAbiTypes.Function, constant: true, inputs: [{ name: 'deployer', type: ABIDataTypes.ADDRESS }], outputs: [ { name: 'has', type: ABIDataTypes.BOOL }, { name: 'token', type: ABIDataTypes.ADDRESS }, { name: 'block', type: ABIDataTypes.UINT64 }, ], }, { name: 'getDeploymentsCount', type: BitcoinAbiTypes.Function, constant: true, inputs: [], outputs: [{ name: 'count', type: ABIDataTypes.UINT32 }], }, { name: 'getDeploymentByIndex', type: BitcoinAbiTypes.Function, constant: true, inputs: [{ name: 'index', type: ABIDataTypes.UINT32 }], outputs: [ { name: 'deployer', type: ABIDataTypes.ADDRESS }, { name: 'token', type: ABIDataTypes.ADDRESS }, { name: 'block', type: ABIDataTypes.UINT64 }, ], }, { name: 'onOP20Received', type: BitcoinAbiTypes.Function, inputs: [ { name: 'operator', type: ABIDataTypes.ADDRESS }, { name: 'from', type: ABIDataTypes.ADDRESS }, { name: 'amount', type: ABIDataTypes.UINT256 }, { name: 'data', type: ABIDataTypes.BYTES }, ], outputs: [{ name: 'selector', type: ABIDataTypes.BYTES4 }], }, ...OP20FactoryEvents, ...OP_NET_ABI, ]; export default OP20FactoryAbi;