opnet
Version:
The perfect library for building Bitcoin-based applications.
369 lines (363 loc) • 9.29 kB
text/typescript
import { ABIDataTypes } from '@btc-vision/transaction';
import { BitcoinAbiTypes } from '../../../BitcoinAbiTypes.js';
import { BitcoinInterfaceAbi } from '../../../interfaces/BitcoinInterfaceAbi.js';
import { OP_NET_ABI } from './OP_NET_ABI.js';
/**
* @category Events
*/
export const OP20Events: BitcoinInterfaceAbi = [
{
name: 'Transferred',
values: [
{
name: 'operator',
type: ABIDataTypes.ADDRESS,
},
{
name: 'from',
type: ABIDataTypes.ADDRESS,
},
{
name: 'to',
type: ABIDataTypes.ADDRESS,
},
{
name: 'amount',
type: ABIDataTypes.UINT256,
},
],
type: BitcoinAbiTypes.Event,
},
{
name: 'Approved',
values: [
{
name: 'owner',
type: ABIDataTypes.ADDRESS,
},
{
name: 'spender',
type: ABIDataTypes.ADDRESS,
},
{
name: 'amount',
type: ABIDataTypes.UINT256,
},
],
type: BitcoinAbiTypes.Event,
},
{
name: 'Burned',
values: [
{ name: 'from', type: ABIDataTypes.ADDRESS },
{ name: 'amount', type: ABIDataTypes.UINT256 },
],
type: BitcoinAbiTypes.Event,
},
{
name: 'Minted',
values: [
{
name: 'to',
type: ABIDataTypes.ADDRESS,
},
{
name: 'amount',
type: ABIDataTypes.UINT256,
},
],
type: BitcoinAbiTypes.Event,
},
];
/**
* @category ABI
*/
export const OP_20_ABI: BitcoinInterfaceAbi = [
// Properties
{
name: 'name',
constant: true,
inputs: [],
outputs: [
{
name: 'name',
type: ABIDataTypes.STRING,
},
],
type: BitcoinAbiTypes.Function,
},
{
name: 'symbol',
constant: true,
inputs: [],
outputs: [
{
name: 'symbol',
type: ABIDataTypes.STRING,
},
],
type: BitcoinAbiTypes.Function,
},
{
name: 'icon',
constant: true,
inputs: [],
outputs: [
{
name: 'icon',
type: ABIDataTypes.STRING,
},
],
type: BitcoinAbiTypes.Function,
},
{
name: 'decimals',
constant: true,
inputs: [],
outputs: [
{
name: 'decimals',
type: ABIDataTypes.UINT8,
},
],
type: BitcoinAbiTypes.Function,
},
{
name: 'totalSupply',
constant: true,
inputs: [],
outputs: [
{
name: 'totalSupply',
type: ABIDataTypes.UINT256,
},
],
type: BitcoinAbiTypes.Function,
},
{
name: 'maximumSupply',
constant: true,
inputs: [],
outputs: [
{
name: 'maximumSupply',
type: ABIDataTypes.UINT256,
},
],
type: BitcoinAbiTypes.Function,
},
{
name: 'domainSeparator',
constant: true,
inputs: [],
outputs: [
{
name: 'domainSeparator',
type: ABIDataTypes.BYTES32,
},
],
type: BitcoinAbiTypes.Function,
},
{
name: 'balanceOf',
constant: true,
inputs: [
{
name: 'owner',
type: ABIDataTypes.ADDRESS,
},
],
outputs: [
{
name: 'balance',
type: ABIDataTypes.UINT256,
},
],
type: BitcoinAbiTypes.Function,
},
{
name: 'nonceOf',
constant: true,
inputs: [{ name: 'owner', type: ABIDataTypes.ADDRESS }],
outputs: [
{
name: 'nonce',
type: ABIDataTypes.UINT256,
},
],
type: BitcoinAbiTypes.Function,
},
{
name: 'allowance',
constant: true,
inputs: [
{
name: 'owner',
type: ABIDataTypes.ADDRESS,
},
{
name: 'spender',
type: ABIDataTypes.ADDRESS,
},
],
outputs: [
{
name: 'remaining',
type: ABIDataTypes.UINT256,
},
],
type: BitcoinAbiTypes.Function,
},
{
name: 'transfer',
inputs: [
{ name: 'to', type: ABIDataTypes.ADDRESS },
{ name: 'amount', type: ABIDataTypes.UINT256 },
],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'transferFrom',
inputs: [
{ name: 'from', type: ABIDataTypes.ADDRESS },
{ name: 'to', type: ABIDataTypes.ADDRESS },
{ name: 'amount', type: ABIDataTypes.UINT256 },
],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'safeTransfer',
inputs: [
{ name: 'to', type: ABIDataTypes.ADDRESS },
{ name: 'amount', type: ABIDataTypes.UINT256 },
{ name: 'data', type: ABIDataTypes.BYTES },
],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'safeTransferFrom',
inputs: [
{ name: 'from', type: ABIDataTypes.ADDRESS },
{ name: 'to', type: ABIDataTypes.ADDRESS },
{ name: 'amount', type: ABIDataTypes.UINT256 },
{ name: 'data', type: ABIDataTypes.BYTES },
],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'increaseAllowance',
inputs: [
{ name: 'spender', type: ABIDataTypes.ADDRESS },
{ name: 'amount', type: ABIDataTypes.UINT256 },
],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'decreaseAllowance',
inputs: [
{ name: 'spender', type: ABIDataTypes.ADDRESS },
{ name: 'amount', type: ABIDataTypes.UINT256 },
],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'increaseAllowanceBySignature',
inputs: [
{ name: 'owner', type: ABIDataTypes.BYTES32 },
{ name: 'ownerTweakedPublicKey', type: ABIDataTypes.BYTES32 },
{ name: 'spender', type: ABIDataTypes.ADDRESS },
{ name: 'amount', type: ABIDataTypes.UINT256 },
{ name: 'deadline', type: ABIDataTypes.UINT64 },
{ name: 'signature', type: ABIDataTypes.BYTES },
],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'decreaseAllowanceBySignature',
inputs: [
{ name: 'owner', type: ABIDataTypes.BYTES32 },
{ name: 'ownerTweakedPublicKey', type: ABIDataTypes.BYTES32 },
{ name: 'spender', type: ABIDataTypes.ADDRESS },
{ name: 'amount', type: ABIDataTypes.UINT256 },
{ name: 'deadline', type: ABIDataTypes.UINT64 },
{ name: 'signature', type: ABIDataTypes.BYTES },
],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'burn',
inputs: [{ name: 'amount', type: ABIDataTypes.UINT256 }],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'metadata',
constant: true,
inputs: [],
outputs: [
{
name: 'name',
type: ABIDataTypes.STRING,
},
{
name: 'symbol',
type: ABIDataTypes.STRING,
},
{
name: 'icon',
type: ABIDataTypes.STRING,
},
{
name: 'decimals',
type: ABIDataTypes.UINT8,
},
{
name: 'totalSupply',
type: ABIDataTypes.UINT256,
},
{
name: 'domainSeparator',
type: ABIDataTypes.BYTES32,
},
],
type: BitcoinAbiTypes.Function,
},
{
name: 'mint',
type: BitcoinAbiTypes.Function,
inputs: [
{
name: 'address',
type: ABIDataTypes.ADDRESS,
},
{
name: 'amount',
type: ABIDataTypes.UINT256,
},
],
outputs: [],
},
{
name: 'airdrop',
type: BitcoinAbiTypes.Function,
inputs: [
{
name: 'addressAndAmount',
type: ABIDataTypes.ADDRESS_UINT256_TUPLE,
},
],
outputs: [],
},
// Events
...OP20Events,
// OP_NET
...OP_NET_ABI,
];