Spin up local development node, run script.sh
- Initialize collection (public symbol: u128)
- issue_zkid (private requester: address, private personal_info: URI) (URI can be change to direct info storing)
- prove_ownership (private nft: NFT, private prove_to: address)
- zkid_transfer_private (nft: NFT, private receiver: address)
- Add liquidity
- Remove liquidity
- (Earn interest)
- Withdraw to LP (Admin function)
- Get loan
- Send loan amount (Admin function)
- Repay loan
- Return Id (Admin function)
- Liquidate to enable auction if duration > block.height
- Start auction with loan id
- (Wait for bidding)
- Resolve bids
- Finish with winning bid
- (Wait for payment)
- Transfer zkID to winning Debt Collector
- Place bid with loan id
- (Wait for result)
- Pay for the winning bid
- Receive zkID for further action
- Programs could not own private states (cannot automate the process of transferring records like Aleo credits, zkID).
- Caller must be owner (cannot transfer credits on behalf of others).
- Record within struct does not work while importing.
- Array assignment not available.