Purpose
What VLIssuance is for.
Collateralized VCurrency issuance positions and reserve controls.
Configured issuers issue against VOW collateral; governance controls issuers and reserve policy.
Collateral → currency
Collateralized VCurrency issuance positions and reserve controls.
Purpose
Collateralized VCurrency issuance positions and reserve controls.
Configured issuers issue against VOW collateral; governance controls issuers and reserve policy.
Basic workflow
Methods
These are the public and external methods declared directly by VLIssuance. Inherited token, ownership, and upgrade methods follow their respective standards.
initialize(address voting_, address bootstrapAdmin_, address vow_, address acceptedUsdToken_, address router_, address pricing_, uint16 minimumReserveBps_)TransactionInitializes the deployed contract and its required dependencies.
setFactory(address factory, bool enabled)Transaction · onlyVotingOrBootstrapUpdates the named protocol configuration value or permission.
registerIssuer(address issuer, address vcurrency)TransactionRegisters the supplied account, relationship, or event subscription.
registerBootstrapIssuer(address issuer, address vcurrency)TransactionRegisters the supplied account, relationship, or event subscription.
setIssuer(address issuer, address vcurrency, bool enabled)Transaction · onlyVotingUpdates the named protocol configuration value or permission.
finalizeBootstrap()TransactionExecutes the finalize bootstrap operation.
setNotary(address notary_, uint256 subscriptionId)Transaction · onlyVotingOrBootstrapUpdates the named protocol configuration value or permission.
registryName() returns (string memory)ReadReturns the human-readable name used for contract registration.
quote(address issuer, uint256 vcurrencyAmount, uint16 reserve) returns (uint256 vowAmount)ReadReads the requested contract state or calculated result without changing state.
issue(address stakeOwner, address fundingAccount, address recipient, uint256 vcurrencyAmount, uint16 reserve) returns (uint256 vowAmount)TransactionReads the requested contract state or calculated result without changing state.
issueBootstrap(address stakeOwner, address fundingAccount, address recipient, uint256 vowAmount, uint256 vcurrencyAmount)TransactionReads the requested contract state or calculated result without changing state.
consume(address stakeOwner, uint256 amount) returns (uint256 vowReturned, uint256 burned, uint256 remainder)TransactionConsumes or destroys the specified value under the contract's authorization rules.
release(address stakeOwner, address recipient) returns (uint256 vowAmount, uint256 mintedAmount)TransactionRemoves or releases the specified record, permission, or held value.
position(address issuer, address stakeOwner) returns (Position memory)ReadReads the requested contract state or calculated result without changing state.
setMinimumReserveBps(uint16 reserve)Transaction · onlyVotingUpdates the named protocol configuration value or permission.
setVowRateTolerance(uint256 tolerance)Transaction · onlyVotingUpdates the named protocol configuration value or permission.
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 issuance = at(ISSUANCE, [
"function quote(address,uint256,uint16) view returns (uint256)",
"function position(address,address) view returns ((uint256,uint256))"
]);
console.log(await issuance.quote(issuer, parseUnits("100", 6), 2_000));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.