A · DEPLOYED CONTRACTS
5 contracts live on X-Layer Testnet
VowSessionWrapper
0xa36aB36397aD8fccdBFA08b943819dAfFd68B60d
● LIVE
VowMarketplace
0x5B8D8e6e8eBeF9c9299179c1D5a499E0247Cd3Bf
● LIVE
VowCancelRateIndex
0x3C093c8f700A47E7601BcCFf39435A223ef4CDb2
● LIVE
MockUSDC (test)
0x858643fC60809aC384e97D7D11026e58A4546448
● LIVE
MockAPPEscrow (test)
0x3817a9e06daF12bFE814cDB3c0c42d12E37c87c4
● LIVE
DEPLOYER · 0x86C0FAC79D0fa6ADD411A6e1FdB0A369591A7283 |
EXPLORER · oklink.com/xlayer-test
B · HARDHAT TEST SUITE
17 / 17 passing · 612 ms
VowSessionWrapper · registerSession
✓mints NFT to caller and stores session info
✓rejects double-registration of same channelId
✓rejects expiry in the past
VowSessionWrapper · lockStake
✓rejects re-locking stake on same tokenId
VowSessionWrapper · claim
✓full stream — faceValue to NFT holder, full stake to seller
✓50% partial cancel — splits stake 50/50
✓day-0 cancel — full stake to lender, nothing to seller
✓reverts if channel not finalized
✓reverts on double-claim
VowSessionWrapper · expire
✓refunds full stake to seller after deadline if not finalized
✓reverts before deadline
✓reverts if channel already finalized
VowMarketplace
✓list + buy transfers NFT and USDC atomically
✓delist removes the listing
✓buy reverts if seller transferred NFT outside marketplace
VowCancelRateIndex
✓appends and aggregates records, isolated per source
End-to-end integration
✓seller register → stake → list → lender buy → channel close → claim