1
0
mirror of https://github.com/oceanprotocol/ocean.js.git synced 2024-11-26 20:39:05 +01:00

creating interface for the dispenser contract

This commit is contained in:
Jamie Hewitt 2021-05-07 12:53:15 +03:00
parent f2d2463d87
commit 413b17e668

View File

@ -0,0 +1,45 @@
import Web3 from 'web3'
import { AbiItem } from 'web3-utils/types'
import defaultDispenserABI from '@oceanprotocol/contracts/artifacts/Dispenser.json'
import defaultDatatokensABI from '@oceanprotocol/contracts/artifacts/DataTokenTemplate.json'
import { Logger, getFairGasPrice } from '../utils'
import wordListDefault from '../data/words.json'
import { TransactionReceipt } from 'web3-core'
import BigNumber from 'bignumber.js'
import Decimal from 'decimal.js'
/**
* Provides an interface to Dispenser
*/
export class Dispenser {
public GASLIMIT_DEFAULT = 1000000
public dispenserAddress: string
public dispenserABI: AbiItem | AbiItem[]
public datatokensABI: AbiItem | AbiItem[]
public web3: Web3
private logger: Logger
public startBlock: number
/**
* Instantiate DataTokens (independently of Ocean).
* @param {String} factoryAddress
* @param {AbiItem | AbiItem[]} factoryABI
* @param {AbiItem | AbiItem[]} datatokensABI
* @param {Web3} web3
*/
constructor(
dispenserAddress: string,
dispenserABI: AbiItem | AbiItem[],
datatokensABI: AbiItem | AbiItem[],
web3: Web3,
logger: Logger,
startBlock?: number
) {
this.dispenserAddress = dispenserAddress
this.dispenserABI = dispenserABI || (defaultDispenserABI.abi as AbiItem[])
this.datatokensABI = datatokensABI || (defaultDatatokensABI.abi as AbiItem[])
this.web3 = web3
this.logger = logger
this.startBlock = startBlock || 0
}
}