ABI's from //contract/out URLs; arbsep; placement fee considers upcoming fee changes; vault detection bugfixes; order placement bugfixes; BETA

This commit is contained in:
Tim
2024-07-03 16:18:29 -04:00
parent 104b798d4f
commit d38baccd49
18 changed files with 200 additions and 170 deletions

View File

@@ -1,5 +1,7 @@
import {ethers} from "ethers";
import {queryHelperAbi} from "@/blockchain/abi.js";
import {AbiURLCache} from "../common.js";
export const abiCache = new AbiURLCache('/contract/out/')
export function vaultAddress( factory, vaultInitCodeHash, owner, num=0) {
@@ -20,6 +22,23 @@ export function contractOrNull(addr,abi,provider) {
}
export async function queryHelperContract(helper, provider) {
return contractOrNull(helper, queryHelperAbi, provider)
return newContract(helper, 'QueryHelper', provider)
}
// do not supply extensions with name or file: e.g.
// use newContract(addr, 'IVaultLogic', provider, 'IVault') to get the ABI from IVault.sol/IVaultLogic.json
export async function newContract(addr, name, provider) {
const abi = await abiCache.get(name)
return new ethers.Contract(addr, abi, provider)
}
export async function erc20Contract(addr, provider) {
return newContract(addr, 'IERC20Metadata', provider)
}
export async function vaultContract(addr, provider) {
return await newContract(addr, 'IVault', provider)
}