Skip to content

Commit

Permalink
Divide getAllowance function into two functions
Browse files Browse the repository at this point in the history
  • Loading branch information
Filip Lelek committed Oct 2, 2024
1 parent b394ed5 commit a07277d
Showing 1 changed file with 34 additions and 29 deletions.
63 changes: 34 additions & 29 deletions src/components/AllocatorBalance.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,47 +19,52 @@ const AllocatorBalance: React.FC<ComponentProps> = ({ owner, repo }) => {
[allocators, owner, repo],
)

const getAllowance = async (
contractAddress: string,
const getAllowanceClassic = async (
multisigAddress: string,
allocatorSmartContract: boolean,
): Promise<number> => {
let allowance = 0
if (!allocatorSmartContract) {
const multisigAllowance = await getAllowanceForVerifier(multisigAddress)
if (multisigAllowance.success) {
allowance = parseInt(multisigAllowance.data)
}
} else {
const contractAllowance = await getAllowanceForVerifier(contractAddress)
const allocatorAllowance = await getAllocatorAllowanceFromContract(
contractAddress,
multisigAddress,
)
if (contractAllowance.success) {
allowance = Math.min(
parseInt(contractAllowance.data),
allocatorAllowance,
)
): Promise<void> => {
const multisigAllowance = await getAllowanceForVerifier(multisigAddress)
if (multisigAllowance.success) {
const allowance = parseInt(multisigAllowance.data)
if (!isNaN(allowance)) {
setBalance(allowance)
} else {
setBalance(0)
}
}
}

if (!isNaN(allowance)) {
return allowance
} else {
return 0
const getAllowanceSmartContract = async (
contractAddress: string,
multisigAddress: string,
): Promise<void> => {
const [contractAllowance, allocatorAllowance] = await Promise.all([
getAllowanceForVerifier(contractAddress),
getAllocatorAllowanceFromContract(contractAddress, multisigAddress),
])
if (contractAllowance.success) {
const allowance = Math.min(
parseInt(contractAllowance.data),
allocatorAllowance,
)
if (!isNaN(allowance)) {
setBalance(allowance)
} else {
setBalance(0)
}
}
}

const fetchBalance = async (
address: string,
multisigAddress: string,
allocatorSmartContract: boolean,
isMetaallocatorContract: boolean,
): Promise<void> => {
setLoading(true)
setBalance(
await getAllowance(address, multisigAddress, allocatorSmartContract),
)
if (!isMetaallocatorContract) {
await getAllowanceClassic(multisigAddress)
} else {
await getAllowanceSmartContract(address, multisigAddress)
}
setLoading(false)
}

Expand Down

0 comments on commit a07277d

Please sign in to comment.