Purpose
What VLVerifier is for.
Whitelisted proof providers verify evidence and initiate collateralized issuance.
Only governance-whitelisted proof providers call verifyAndSettle. Customers can deposit or withdraw VOW collateral.
Proof → claim
Whitelisted proof providers verify evidence and initiate collateralized issuance.
Purpose
Whitelisted proof providers verify evidence and initiate collateralized issuance.
Only governance-whitelisted proof providers call verifyAndSettle. Customers can deposit or withdraw VOW collateral.
Basic workflow
Methods
These are the public and external methods declared directly by VLVerifier. Inherited token, ownership, and upgrade methods follow their respective standards.
initialize(address settlement_, address voting_, address publicIssuance_, address issuance_, address vow_)TransactionInitializes the deployed contract and its required dependencies.
registryName() returns (string memory)ReadReturns the human-readable name used for contract registration.
setTransactionAuthority(address authority, address grantor)Transaction · onlyVotingUpdates the named protocol configuration value or permission.
isAuthorized(address provider) returns (bool)ReadReads the requested contract state or calculated result without changing state.
stakingContract() returns (address)ReadExecutes the staking contract operation.
depositVOW(uint256 amount)TransactionExecutes the deposit vow operation.
withdrawVOW(uint256 amount)TransactionExecutes the withdraw vow operation.
verifyAndSettle(VLTransactionTypes.Claim calldata claim, bytes calldata proof)TransactionExecutes the verify and settle operation.
tokensReceived(address, address from, address to, uint256 amount, bytes calldata, bytes calldata)TransactionHandles an ERC-777 token-receipt callback.
Node.js
import { Contract, JsonRpcProvider, Wallet, encodeBytes32String, parseUnits } from "ethers";
const provider = new JsonRpcProvider(process.env.RPC_URL);
const signer = new Wallet(process.env.SIGNER_PRIVATE_KEY, provider);
const at = (address, abi, writable = false) =>
new Contract(address, abi, writable ? signer : provider);
const verifier = at(VERIFIER, [
"function vowDepositOf(address) view returns (uint256)",
"function depositVOW(uint256)"
], true);
console.log(await verifier.vowDepositOf(customer));
await (await verifier.depositVOW(parseUnits("100", 18))).wait();Deployment
Read the deployment manifest or resolve the configured registry entry for the target network. Test on a local or test network before using a privileged signer. See the contract source and contract index for the full interface.