192 lines
3.7 KiB
Markdown
192 lines
3.7 KiB
Markdown
# V3 Script Context Tests
|
|
|
|
This project contains a few handcrafted Plutus V3 validators and transactions
|
|
whose sole purpose is to test the interpretation of the `ScriptContext` from
|
|
within an Aiken's validators.
|
|
|
|
So validators are meant to work hand-in-hand with an associated context.
|
|
Because we can't have fully static context (since they contain the validator
|
|
and its hash), we define _templates_.
|
|
|
|
Everything is a bit clunky, but steps have been captured in a `test.sh` script
|
|
for convenience.
|
|
|
|
## How to use
|
|
|
|
```
|
|
./test.sh [VALIDATOR_TITLE]
|
|
```
|
|
|
|
## Test Coverage
|
|
|
|
- Purpose
|
|
- [x] spend
|
|
- [ ] mint
|
|
- [ ] withdraw
|
|
- [ ] publish
|
|
- [ ] voting
|
|
- [ ] proposing
|
|
|
|
- Transaction body
|
|
- [x] inputs
|
|
- reference inputs
|
|
- [x] none
|
|
- [ ] some
|
|
- outputs
|
|
- [ ] none
|
|
- [ ] some
|
|
- [x] fee
|
|
- [ ] mint
|
|
- certificates
|
|
- [ ] none
|
|
- some
|
|
- Register credential
|
|
- [ ] no deposit
|
|
- [ ] with deposit
|
|
- Unregister credential
|
|
- [ ] no deposit
|
|
- [ ] with deposit
|
|
- [ ] Delegate
|
|
- [ ] Register & delegate credential
|
|
- [ ] Register drep
|
|
- [ ] Unregister drep
|
|
- [ ] Update drep
|
|
- [ ] Register pool
|
|
- [ ] Retire pool
|
|
- [ ] Delegate CC
|
|
- [ ] Retire CC
|
|
- withdrawals
|
|
- [ ] none
|
|
- [ ] some
|
|
- [ ] validity range
|
|
- extra signatories
|
|
- [x] none
|
|
- [ ] some
|
|
- [ ] redeemers
|
|
- [ ] datums
|
|
- votes
|
|
- [ ] none
|
|
- [ ] some
|
|
- proposal procedures
|
|
- [ ] none
|
|
- [ ] some
|
|
- current treasury
|
|
- [ ] with
|
|
- [ ] without
|
|
- treasury donation
|
|
- [ ] with
|
|
- [ ] without
|
|
|
|
- Address
|
|
- [ ] type-0 (key | key)
|
|
- [ ] type-1 (script | key)
|
|
- [ ] type-2 (key | script)
|
|
- [ ] type-3 (script | script)
|
|
- [ ] type-4 (key | ptr)
|
|
- [ ] type-5 (script | ptr)
|
|
- [ ] type-6 (key | ø)
|
|
- [x] type-7 (key | ø)
|
|
|
|
- Value
|
|
- [x] only ada
|
|
- [ ] multi-assets
|
|
|
|
- Output datum
|
|
- [ ] none
|
|
- [ ] hash
|
|
- [x] inline
|
|
|
|
- Output script
|
|
- [x] none
|
|
- [ ] inline
|
|
|
|
- Governance Action
|
|
- parameter change
|
|
- [ ] with action id
|
|
- [ ] without action id
|
|
- hardfork initiation
|
|
- [ ] with action id
|
|
- [ ] without action id
|
|
- treasuryWithdrawals
|
|
- [ ] with constitution
|
|
- [ ] without constitution
|
|
- no confidence
|
|
- [ ] with action id
|
|
- [ ] without action id
|
|
- update committee
|
|
- [ ] with action id
|
|
- [ ] without action id
|
|
- new constitution
|
|
- [ ] with action id
|
|
- [ ] without action id
|
|
- [ ] info action
|
|
|
|
- Vote
|
|
- [ ] No
|
|
- [ ] Yes
|
|
- [ ] Abstain
|
|
|
|
- Voter
|
|
- [ ] CC
|
|
- [ ] DRep
|
|
- [ ] SPO
|
|
|
|
- ChangedParameters
|
|
- [ ] 0: coin
|
|
- [ ] 1 : coin
|
|
- [ ] 2 : uint .size 4
|
|
- [ ] 3 : uint .size 4
|
|
- [ ] 4 : uint .size 2
|
|
- [ ] 5 : coin
|
|
- [ ] 6 : coin
|
|
- [ ] 7 : epoch_interval
|
|
- [ ] 8 : uint .size 2
|
|
- [ ] 9 : nonnegative_interval
|
|
- [ ] 10 : unit_interval
|
|
- [ ] 11 : unit_interval
|
|
- [ ] 16 : coin
|
|
- [ ] 17 : coin
|
|
- [ ] 18 : costmdls
|
|
- [ ] 19 : ex_unit_prices
|
|
- [ ] 20 : ex_units
|
|
- [ ] 21 : ex_units
|
|
- [ ] 22 : uint .size 4
|
|
- [ ] 23 : uint .size 2
|
|
- [ ] 24 : uint .size 2
|
|
- [ ] 25 : pool_voting_thresholds
|
|
- [ ] 26 : drep_voting_thresholds
|
|
- [ ] 27 : uint .size 2
|
|
- [ ] 28 : epoch_interval
|
|
- [ ] 29 : epoch_interval
|
|
- [ ] 30 : coin
|
|
- [ ] 31 : coin
|
|
- [ ] 32 : epoch_interval
|
|
- [ ] 33 : nonnegative_interval}
|
|
|
|
- Constitution
|
|
- [ ] with guardrail script
|
|
- [ ] without guardrail script
|
|
|
|
- Value
|
|
- [x] pure ada
|
|
- [ ] native assets
|
|
|
|
- Credential
|
|
- [ ] key
|
|
- [x] script
|
|
|
|
- Delegatee
|
|
- [ ] pool
|
|
- [ ] drep
|
|
- [ ] pool + drep
|
|
|
|
- DRep
|
|
- [ ] key
|
|
- [ ] script
|
|
- [ ] abstain
|
|
- [ ] no confidence
|
|
|
|
- Boundary
|
|
- [ ] closed
|
|
- [ ] open
|