opnet
Version:
The perfect library for building Bitcoin-based applications.
101 lines (98 loc) • 3.13 kB
text/typescript
import { ABIDataTypes } from '@btc-vision/transaction';
import { BitcoinAbiTypes } from '../../../BitcoinAbiTypes.js';
import { BitcoinInterfaceAbi } from '../../../interfaces/BitcoinInterfaceAbi.js';
import { OP_20S_ABI } from '../opnet/OP_20S_ABI.js';
export const MultiOracleStablecoinEvents: BitcoinInterfaceAbi = [
{
name: 'OracleAdded',
values: [
{ name: 'oracle', type: ABIDataTypes.ADDRESS },
{ name: 'addedBy', type: ABIDataTypes.ADDRESS },
],
type: BitcoinAbiTypes.Event,
},
{
name: 'OracleRemoved',
values: [
{ name: 'oracle', type: ABIDataTypes.ADDRESS },
{ name: 'removedBy', type: ABIDataTypes.ADDRESS },
],
type: BitcoinAbiTypes.Event,
},
{
name: 'PriceSubmitted',
values: [
{ name: 'oracle', type: ABIDataTypes.ADDRESS },
{ name: 'price', type: ABIDataTypes.UINT256 },
{ name: 'blockNumber', type: ABIDataTypes.UINT64 },
],
type: BitcoinAbiTypes.Event,
},
{
name: 'PriceAggregated',
values: [
{ name: 'medianPrice', type: ABIDataTypes.UINT256 },
{ name: 'oracleCount', type: ABIDataTypes.UINT32 },
{ name: 'blockNumber', type: ABIDataTypes.UINT64 },
],
type: BitcoinAbiTypes.Event,
},
];
export const MultiOracleStablecoin_ABI: BitcoinInterfaceAbi = [
{
name: 'addOracle',
inputs: [{ name: 'oracle', type: ABIDataTypes.ADDRESS }],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'removeOracle',
inputs: [{ name: 'oracle', type: ABIDataTypes.ADDRESS }],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'submitPrice',
inputs: [{ name: 'price', type: ABIDataTypes.UINT256 }],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'aggregatePrice',
inputs: [{ name: 'oracles', type: ABIDataTypes.ARRAY_OF_ADDRESSES }],
outputs: [],
type: BitcoinAbiTypes.Function,
},
{
name: 'oracleCount',
inputs: [],
outputs: [{ name: 'count', type: ABIDataTypes.UINT256 }],
type: BitcoinAbiTypes.Function,
},
{
name: 'minOracles',
inputs: [],
outputs: [{ name: 'min', type: ABIDataTypes.UINT256 }],
type: BitcoinAbiTypes.Function,
},
{
name: 'isOracleActive',
inputs: [{ name: 'oracle', type: ABIDataTypes.ADDRESS }],
outputs: [{ name: 'active', type: ABIDataTypes.BOOL }],
type: BitcoinAbiTypes.Function,
},
{
name: 'oracleSubmission',
inputs: [{ name: 'oracle', type: ABIDataTypes.ADDRESS }],
outputs: [{ name: 'price', type: ABIDataTypes.UINT256 }],
type: BitcoinAbiTypes.Function,
},
{
name: 'admin',
inputs: [],
outputs: [{ name: 'admin', type: ABIDataTypes.ADDRESS }],
type: BitcoinAbiTypes.Function,
},
...MultiOracleStablecoinEvents,
...OP_20S_ABI,
];