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:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user