diff --git a/packages/rln/src/contract/rln_contract.ts b/packages/rln/src/contract/rln_contract.ts index 863a9ee12c..0aa0d81fb8 100644 --- a/packages/rln/src/contract/rln_contract.ts +++ b/packages/rln/src/contract/rln_contract.ts @@ -152,7 +152,7 @@ export class RLNContract { */ public async getMinRateLimit(): Promise { const minRate = await this.contract.minMembershipRateLimit(); - return minRate.toNumber(); + return ethers.BigNumber.from(minRate).toNumber(); } /** @@ -161,7 +161,7 @@ export class RLNContract { */ public async getMaxRateLimit(): Promise { const maxRate = await this.contract.maxMembershipRateLimit(); - return maxRate.toNumber(); + return ethers.BigNumber.from(maxRate).toNumber(); } /** diff --git a/packages/rln/src/contract/rln_light_contract.ts b/packages/rln/src/contract/rln_light_contract.ts index db0ccdb65c..2205c704f9 100644 --- a/packages/rln/src/contract/rln_light_contract.ts +++ b/packages/rln/src/contract/rln_light_contract.ts @@ -133,7 +133,7 @@ export class RLNLightContract { */ public async getMinRateLimit(): Promise { const minRate = await this.contract.minMembershipRateLimit(); - return minRate.toNumber(); + return ethers.BigNumber.from(minRate).toNumber(); } /** @@ -142,7 +142,7 @@ export class RLNLightContract { */ public async getMaxRateLimit(): Promise { const maxRate = await this.contract.maxMembershipRateLimit(); - return maxRate.toNumber(); + return ethers.BigNumber.from(maxRate).toNumber(); } /** @@ -151,7 +151,7 @@ export class RLNLightContract { */ public async getMaxTotalRateLimit(): Promise { const maxTotalRate = await this.contract.maxTotalRateLimit(); - return maxTotalRate.toNumber(); + return ethers.BigNumber.from(maxTotalRate).toNumber(); } /** @@ -160,7 +160,7 @@ export class RLNLightContract { */ public async getCurrentTotalRateLimit(): Promise { const currentTotal = await this.contract.currentTotalRateLimit(); - return currentTotal.toNumber(); + return ethers.BigNumber.from(currentTotal).toNumber(); } /** @@ -172,7 +172,9 @@ export class RLNLightContract { this.contract.maxTotalRateLimit(), this.contract.currentTotalRateLimit() ]); - return Number(maxTotal) - Number(currentTotal); + return ethers.BigNumber.from(maxTotal) + .sub(ethers.BigNumber.from(currentTotal)) + .toNumber(); } /** @@ -451,7 +453,12 @@ export class RLNLightContract { membershipId, currentEpochStart ); - return Math.max(0, rateLimit.sub(messageCount).toNumber()); + return Math.max( + 0, + ethers.BigNumber.from(rateLimit) + .sub(ethers.BigNumber.from(messageCount)) + .toNumber() + ); } catch (error) { log.error( `Error getting remaining messages: ${(error as Error).message}`