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

throw error when a condition is not valid instead of returning null

fixed allowance and value comparison
This commit is contained in:
Bogdan Fazakas 2021-01-08 19:06:26 +02:00
parent 742436dbac
commit 286e737e93

View File

@ -94,33 +94,33 @@ export class OceanPool extends Pool {
): SubscribablePromise<PoolCreateProgressStep, TransactionReceipt> { ): SubscribablePromise<PoolCreateProgressStep, TransactionReceipt> {
if (this.oceanAddress == null) { if (this.oceanAddress == null) {
this.logger.error('ERROR: oceanAddress is not defined') this.logger.error('ERROR: oceanAddress is not defined')
return null throw new Error('ERROR: oceanAddress is not defined')
} }
if (parseFloat(fee) > 0.1) { if (parseFloat(fee) > 0.1) {
this.logger.error('ERROR: Swap fee too high. The maximum allowed swapFee is 10%') this.logger.error('ERROR: Swap fee too high. The maximum allowed swapFee is 10%')
return null throw new Error('ERROR: Swap fee too high. The maximum allowed swapFee is 10%')
} }
if (parseFloat(dtAmount) < 2) { if (parseFloat(dtAmount) < 2) {
this.logger.error('ERROR: Amount of DT is too low') this.logger.error('ERROR: Amount of DT is too low')
return null throw new Error('ERROR: Amount of DT is too low')
} }
if (parseFloat(dtWeight) > 9 || parseFloat(dtWeight) < 1) { if (parseFloat(dtWeight) > 9 || parseFloat(dtWeight) < 1) {
this.logger.error('ERROR: Weight out of bounds (min 1, max9)') this.logger.error('ERROR: Weight out of bounds (min 1, max9)')
return null throw new Error('ERROR: Weight out of bounds (min 1, max9)')
} }
return new SubscribablePromise(async (observer) => { return new SubscribablePromise(async (observer) => {
observer.next(PoolCreateProgressStep.CreatingPool) observer.next(PoolCreateProgressStep.CreatingPool)
const createTxid = await super.createPool(account) const createTxid = await super.createPool(account)
if (!createTxid) { if (!createTxid) {
this.logger.error('ERROR: Failed to call approve DT token') this.logger.error('ERROR: Failed to call create pool')
return null throw new Error('ERROR: Failed to call create pool')
} }
const address = createTxid.events.BPoolRegistered.returnValues[0] const address = createTxid.events.BPoolRegistered.returnValues[0]
const oceanWeight = 10 - parseFloat(dtWeight) const oceanWeight = 10 - parseFloat(dtWeight)
this.dtAddress = dtAddress this.dtAddress = dtAddress
let txid let txid
const dtAllowance = await this.allowance(dtAddress, account, address) const dtAllowance = await this.allowance(dtAddress, account, address)
if (dtAllowance < dtAmount) { if (parseFloat(dtAllowance) < parseFloat(dtAmount)) {
observer.next(PoolCreateProgressStep.ApprovingDatatoken) observer.next(PoolCreateProgressStep.ApprovingDatatoken)
txid = await this.approve( txid = await this.approve(
account, account,
@ -130,11 +130,11 @@ export class OceanPool extends Pool {
) )
if (!txid) { if (!txid) {
this.logger.error('ERROR: Failed to call approve DT token') this.logger.error('ERROR: Failed to call approve DT token')
return null throw new Error('ERROR: Failed to call approve DT token')
} }
} }
const oceanAllowance = await this.allowance(this.oceanAddress, account, address) const oceanAllowance = await this.allowance(this.oceanAddress, account, address)
if (oceanAllowance < oceanAmount) { if (parseFloat(oceanAllowance) < parseFloat(oceanAmount)) {
observer.next(PoolCreateProgressStep.ApprovingOcean) observer.next(PoolCreateProgressStep.ApprovingOcean)
txid = await this.approve( txid = await this.approve(
account, account,
@ -144,7 +144,7 @@ export class OceanPool extends Pool {
) )
if (!txid) { if (!txid) {
this.logger.error('ERROR: Failed to call approve OCEAN token') this.logger.error('ERROR: Failed to call approve OCEAN token')
return null throw new Error('ERROR: Failed to call approve OCEAN token')
} }
} }
observer.next(PoolCreateProgressStep.SetupPool) observer.next(PoolCreateProgressStep.SetupPool)
@ -161,7 +161,7 @@ export class OceanPool extends Pool {
) )
if (!txid) { if (!txid) {
this.logger.error('ERROR: Failed to create a new pool') this.logger.error('ERROR: Failed to create a new pool')
return null throw new Error('ERROR: Failed to create a new pool')
} }
return createTxid return createTxid
}) })