mirror of
https://github.com/codex-storage/nim-codex.git
synced 2025-02-20 08:38:29 +00:00
Documentation in the REST OpenAPI spec were showing incorrect information about Purchasing endpoints. Update the open api spec to reflect information about purchases, not requests.
58 lines
1.7 KiB
Nim
58 lines
1.7 KiB
Nim
import codex/contracts
|
|
import ../ethertest
|
|
import ./examples
|
|
|
|
ethersuite "On-Chain Proofs":
|
|
|
|
let contractId = SlotId.example
|
|
let proof = exampleProof()
|
|
|
|
var proofs: OnChainProofs
|
|
var marketplace: Marketplace
|
|
|
|
setup:
|
|
let deployment = deployment()
|
|
marketplace = Marketplace.new(!deployment.address(Marketplace), provider.getSigner())
|
|
proofs = OnChainProofs.new(marketplace)
|
|
|
|
test "can retrieve proof periodicity":
|
|
let periodicity = await proofs.periodicity()
|
|
let config = await marketplace.config()
|
|
let periodLength = config.proofs.period
|
|
check periodicity.seconds == periodLength
|
|
|
|
test "supports checking whether proof is required now":
|
|
check (await proofs.isProofRequired(contractId)) == false
|
|
|
|
test "supports checking whether proof is required soon":
|
|
check (await proofs.willProofBeRequired(contractId)) == false
|
|
|
|
test "retrieves correct slot state when request is unknown":
|
|
check (await proofs.slotState(SlotId.example)) == SlotState.Free
|
|
|
|
test "submits proofs":
|
|
await proofs.submitProof(contractId, proof)
|
|
|
|
test "supports proof submission subscriptions":
|
|
var receivedIds: seq[SlotId]
|
|
var receivedProofs: seq[seq[byte]]
|
|
|
|
proc onProofSubmission(id: SlotId, proof: seq[byte]) =
|
|
receivedIds.add(id)
|
|
receivedProofs.add(proof)
|
|
|
|
let subscription = await proofs.subscribeProofSubmission(onProofSubmission)
|
|
|
|
await proofs.submitProof(contractId, proof)
|
|
|
|
check receivedIds == @[contractId]
|
|
check receivedProofs == @[proof]
|
|
|
|
await subscription.unsubscribe()
|
|
|
|
test "proof not required when slot is empty":
|
|
check not await proofs.isProofRequired(contractId)
|
|
|
|
test "proof will not be required when slot is empty":
|
|
check not await proofs.willProofBeRequired(contractId)
|