Manage a checkpoint
As a controller or advancer, I want to inspect the evidence, state change and addressed value flow for a checkpoint operation.
Checkpoint is the funded lifecycle profile. Accepted steps return both next state and addressed value flow.
Examples below are model fixtures. Their oracle fields describe synthetic verification outcomes; they are not evidence accepted from production callers. The input shown includes common fixture context as well as the call.
flowchart LR
Caller[Caller] -->|Supplied published evidence| Assessment[Evidence assessment]
Assessment -->|Missing required evidence| Unknown[unknown]
Assessment -->|Complete model inputs| Model[Model operation]
Model -->|Predicate fails| Refused[Named refusal]
Model -->|Predicate holds| Result[State, flow or verdict]
Close
As a caller, I want to leave while preserving the parked key-state commitment.
Operation: checkpoint.close. The corpus contains 576 observations.
Named refusals:
checkpoint-state-mismatch: Action has no constructor for the supplied State.intent-unauthorized: intentOk returns false for the next epoch, action intent and refund option.rotation-evidence-invalid: rotationTo at the recorded epoch and sequence returns false.sequence-not-later: Requested sequence is less than or equal to the recorded sequence.
Accepted example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "present",
"bornAt": 10,
"epoch": 1,
"frozen": false,
"poisoned": false,
"pool": 1,
"refundTo": 1,
"sn": 1
},
"action": {
"action": "close",
"sn": 2,
"payee": 2,
"refund": null
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "accepted",
"flow": {
"bIn": 0,
"convictor": null,
"dregIn": 0,
"hunter": null,
"poolIn": 0,
"refund": {
"addr": 1,
"b": 5,
"dreg": 1000,
"pool": 1
}
},
"state": {
"state": "parked",
"epoch": 2,
"sn": 2
}
}
Refused example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "absent"
},
"action": {
"action": "close",
"sn": 0,
"payee": 2,
"refund": null
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "refused",
"refusals": [
"checkpoint-state-mismatch"
]
}
Convict
As a caller, I want to prove duplicity and settle the held value.
Operation: checkpoint.convict. The corpus contains 32 observations.
Named refusals:
checkpoint-state-mismatch: Action has no constructor for the supplied State.duplicity-evidence-invalid: duplicityAt at the recorded epoch and sequence returns false.
Accepted example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "parked",
"epoch": 1,
"sn": 1
},
"action": {
"action": "convict",
"payee": 3
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "accepted",
"flow": {
"bIn": 0,
"convictor": null,
"dregIn": 0,
"hunter": null,
"poolIn": 0,
"refund": null
},
"state": {
"state": "terminationPending",
"epoch": 1,
"sn": 1
}
}
Refused example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "absent"
},
"action": {
"action": "convict",
"payee": 3
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "refused",
"refusals": [
"checkpoint-state-mismatch"
]
}
Freeze
As a caller, I want to report stale keys and claim the held freeze bond.
Operation: checkpoint.freeze. The corpus contains 96 observations.
Named refusals:
already-frozen: freeze requires a clear freeze flag.checkpoint-state-mismatch: Action has no constructor for the supplied State.freeze-poisoned: freeze requires a clear poison flag.freeze-pool-covers-premium: freeze pool is greater than or equal to P.rotation-evidence-invalid: rotationTo at the recorded epoch and sequence returns false.sequence-not-later: Requested sequence is less than or equal to the recorded sequence.
Accepted example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "present",
"bornAt": 10,
"epoch": 1,
"frozen": false,
"poisoned": false,
"pool": 1,
"refundTo": 1,
"sn": 1
},
"action": {
"action": "freeze",
"sn": 2,
"payee": 2
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "accepted",
"flow": {
"bIn": 0,
"convictor": null,
"dregIn": 0,
"hunter": {
"addr": 2,
"b": 5,
"dreg": 0,
"pool": 0
},
"poolIn": 0,
"refund": null
},
"state": {
"state": "present",
"bornAt": 10,
"epoch": 1,
"frozen": true,
"poisoned": false,
"pool": 1,
"refundTo": 1,
"sn": 1
}
}
Refused example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "absent"
},
"action": {
"action": "freeze",
"sn": 0,
"payee": 2
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "refused",
"refusals": [
"checkpoint-state-mismatch"
]
}
Poison
As a caller, I want to declare the current keys unsafe.
Operation: checkpoint.poison. The corpus contains 32 observations.
Named refusals:
already-poisoned: poison requires a clear poison flag.checkpoint-state-mismatch: Action has no constructor for the supplied State.quorum-missing: poison quorum at the current epoch returns false.
Accepted example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "present",
"bornAt": 10,
"epoch": 1,
"frozen": false,
"poisoned": false,
"pool": 1,
"refundTo": 1,
"sn": 1
},
"action": {
"action": "poison"
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "accepted",
"flow": {
"bIn": 0,
"convictor": null,
"dregIn": 0,
"hunter": null,
"poolIn": 0,
"refund": null
},
"state": {
"state": "present",
"bornAt": 10,
"epoch": 1,
"frozen": false,
"poisoned": true,
"pool": 1,
"refundTo": 1,
"sn": 1
}
}
Refused example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "absent"
},
"action": {
"action": "poison"
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "refused",
"refusals": [
"checkpoint-state-mismatch"
]
}
Register
As a caller, I want to sponsor a new identity checkpoint.
Operation: checkpoint.register. The corpus contains 32 observations.
Named refusals:
checkpoint-state-mismatch: Action has no constructor for the supplied State.
Accepted example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "absent"
},
"action": {
"action": "register",
"pool0": 7,
"refund": 6
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "accepted",
"flow": {
"bIn": 5,
"convictor": null,
"dregIn": 1000,
"hunter": null,
"poolIn": 7,
"refund": null
},
"state": {
"state": "present",
"bornAt": 20,
"epoch": 0,
"frozen": false,
"poisoned": false,
"pool": 7,
"refundTo": 6,
"sn": 0
}
}
Refused example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "parked",
"epoch": 1,
"sn": 1
},
"action": {
"action": "register",
"pool0": 7,
"refund": 6
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "refused",
"refusals": [
"checkpoint-state-mismatch"
]
}
Reopen
As a caller, I want to return from the parked key state with fresh funding.
Operation: checkpoint.reopen. The corpus contains 96 observations.
Named refusals:
checkpoint-state-mismatch: Action has no constructor for the supplied State.rotation-evidence-invalid: rotationTo at the recorded epoch and sequence returns false.sequence-not-later: Requested sequence is less than or equal to the recorded sequence.
Accepted example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "parked",
"epoch": 1,
"sn": 1
},
"action": {
"action": "reopen",
"sn": 2,
"refund": 1,
"pool0": 7
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "accepted",
"flow": {
"bIn": 5,
"convictor": null,
"dregIn": 1000,
"hunter": null,
"poolIn": 7,
"refund": null
},
"state": {
"state": "present",
"bornAt": 20,
"epoch": 2,
"frozen": false,
"poisoned": false,
"pool": 7,
"refundTo": 1,
"sn": 2
}
}
Refused example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "absent"
},
"action": {
"action": "reopen",
"sn": 0,
"refund": 1,
"pool0": 7
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "refused",
"refusals": [
"checkpoint-state-mismatch"
]
}
Rotate
As a caller, I want to land a later witnessed rotation and obtain its value flow.
Operation: checkpoint.rotate. The corpus contains 576 observations.
Named refusals:
checkpoint-state-mismatch: Action has no constructor for the supplied State.intent-unauthorized: intentOk returns false for the next epoch, action intent and refund option.rotation-evidence-invalid: rotationTo at the recorded epoch and sequence returns false.sequence-not-later: Requested sequence is less than or equal to the recorded sequence.
Accepted example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "present",
"bornAt": 10,
"epoch": 1,
"frozen": false,
"poisoned": false,
"pool": 1,
"refundTo": 1,
"sn": 1
},
"action": {
"action": "rotate",
"sn": 2,
"bond": "keep",
"payee": 2,
"refund": null
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "accepted",
"flow": {
"bIn": 0,
"convictor": null,
"dregIn": 0,
"hunter": null,
"poolIn": 0,
"refund": null
},
"state": {
"state": "present",
"bornAt": 10,
"epoch": 2,
"frozen": false,
"poisoned": false,
"pool": 1,
"refundTo": 1,
"sn": 2
}
}
Refused example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "absent"
},
"action": {
"action": "rotate",
"sn": 0,
"bond": "keep",
"payee": 2,
"refund": null
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "refused",
"refusals": [
"checkpoint-state-mismatch"
]
}
Top Up
As a caller, I want to fund future advances.
Operation: checkpoint.topUp. The corpus contains 32 observations.
Named refusals:
checkpoint-state-mismatch: Action has no constructor for the supplied State.
Accepted example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "present",
"bornAt": 10,
"epoch": 1,
"frozen": false,
"poisoned": false,
"pool": 1,
"refundTo": 1,
"sn": 1
},
"action": {
"action": "topUp",
"amount": 5
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "accepted",
"flow": {
"bIn": 0,
"convictor": null,
"dregIn": 0,
"hunter": null,
"poolIn": 5,
"refund": null
},
"state": {
"state": "present",
"bornAt": 10,
"epoch": 1,
"frozen": false,
"poisoned": false,
"pool": 6,
"refundTo": 1,
"sn": 1
}
}
Refused example
Caller supplies this model fixture:
{
"params": {
"B": 5,
"D": 1000,
"P": 2,
"W": 10
},
"now": 20,
"state": {
"state": "absent"
},
"action": {
"action": "topUp",
"amount": 5
},
"oracle": {
"rotations": [
{
"epoch": 1,
"from": 1,
"to": 0
},
{
"epoch": 1,
"from": 1,
"to": 1
},
{
"epoch": 1,
"from": 1,
"to": 2
}
],
"intents": [
{
"epoch": 2,
"intent": {
"kind": "keep"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "deposit"
},
"refund": 1
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": null
},
{
"epoch": 2,
"intent": {
"kind": "close",
"payee": 2
},
"refund": 1
}
],
"quorums": [
{
"epoch": 1
}
],
"duplicities": [
{
"epoch": 1,
"sn": 1
}
]
}
}
Caller obtains:
{
"status": "refused",
"refusals": [
"checkpoint-state-mismatch"
]
}
Download every example · Read the complete shape · Read semantics and limits