1
0
mirror of https://github.com/oceanprotocol-archive/squid-js.git synced 2024-02-02 15:31:51 +01:00
squid-js/src/ocean/OceanTokens.ts

46 lines
1.4 KiB
TypeScript
Raw Normal View History

2019-06-20 00:20:09 +02:00
import Account from './Account'
import { Instantiable, InstantiableConfig } from '../Instantiable.abstract'
2019-02-15 14:44:48 +01:00
/**
* Tokens submodule of Ocean Protocol.
*/
export class OceanTokens extends Instantiable {
2019-02-15 14:44:48 +01:00
/**
* Returns the instance of OceanTokens.
* @return {Promise<OceanTokens>}
*/
2019-09-09 12:18:54 +02:00
public static async getInstance(config: InstantiableConfig): Promise<OceanTokens> {
const instance = new OceanTokens()
instance.setInstanceConfig(config)
2019-02-15 14:44:48 +01:00
return instance
2019-02-15 14:44:48 +01:00
}
/**
* Transfer a number of tokens to the mentioned account.
2019-12-06 09:57:26 +01:00
* @param {string} to Address that receives the tokens.
2019-02-15 14:44:48 +01:00
* @param {number} amount Tokens to transfer.
* @param {Account} from Sender account address.
* @return {Promise<boolean>} Success,
*/
2019-09-09 12:18:54 +02:00
public async transfer(to: string, amount: number, from: Account): Promise<boolean> {
2019-06-20 00:20:09 +02:00
this.ocean.keeper.token.transfer(to, amount, from.getId())
2019-03-01 13:24:04 +01:00
return true
2019-02-15 14:44:48 +01:00
}
/**
2019-12-06 09:57:26 +01:00
* Request tokens for an account.
2019-02-15 14:44:48 +01:00
* @param {Account} account Account instance.
* @param {number} amount Token amount.
* @return {Promise<boolean>} Success.
*/
public async request(account: Account, amount: number): Promise<boolean> {
try {
await account.requestTokens(amount)
return true
2019-02-21 18:14:07 +01:00
} catch (e) {
2019-02-15 14:44:48 +01:00
return false
}
}
}