Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
59fdb76
feat(explorations): enhance conditional-token settlement documentatio…
sofia-bobbiesi Jul 8, 2026
1229d0e
feat(explorations): add DAO exploration documentation
franciscojoray Jul 8, 2026
b9328ee
fix(docs): correct section references and enhance design sketch in pr…
sofia-bobbiesi Jul 13, 2026
8870936
Adjust reference
sofia-bobbiesi Jul 13, 2026
81f007c
fix(docs): clarify RefundVoid mechanism
sofia-bobbiesi Jul 13, 2026
9728451
feat(explorations): update design sketch for conditional-token settle…
sofia-bobbiesi Jul 14, 2026
2f7303a
fix(docs): clarify minting and burning actions in conditional-token s…
sofia-bobbiesi Jul 14, 2026
40344c0
docs: add numbered headings to dao.md exploration doc
Copilot Jul 14, 2026
c03cd38
fix(docs): title and typos
franciscojoray Jul 14, 2026
26a6578
fix(docs): enhance design sketch for conditional-token settlement wit…
sofia-bobbiesi Jul 15, 2026
beeb955
feat(explorations): enhance outcome handling
sofia-bobbiesi Jul 16, 2026
1f52a91
feat(docs): add tx diagrams typst template
franciscojoray Jul 17, 2026
0553fbc
feat(docs): add tx diagrams for prediction market with conditional to…
franciscojoray Jul 17, 2026
3f13af4
fix(docs): update collateral type to TokenInfo
franciscojoray Jul 20, 2026
6b80da8
fix(docs): generalize fee types to TokenInfo
franciscojoray Jul 20, 2026
682a59b
fix(docs): improve fees notation in diagram
franciscojoray Jul 20, 2026
748916f
feat(docs): add ClaimDraw functionality and update related documentation
franciscojoray Jul 22, 2026
ffc8a65
fix(docs): update winner options in resolve outcome diagram
franciscojoray Jul 22, 2026
f84aaca
tx diagrams for settings contract
francolq Jul 24, 2026
e0cb173
implementation prototype
francolq Jul 24, 2026
49d116d
refactor: rename vesting-meshjs to meshjs and update package description
sofia-bobbiesi Jul 24, 2026
764e13c
feat(settings): add settings datum and types for protocol management
sofia-bobbiesi Jul 24, 2026
a0695c4
feat(settings): implement transaction builders for settings contract
sofia-bobbiesi Jul 27, 2026
111802b
update onchain artifacts
franciscojoray Jul 27, 2026
f3942cb
feat(settings): add e2e tests for settings contract
franciscojoray Jul 27, 2026
a81b355
feat(settings): add settings datum and update plutus definitions
sofia-bobbiesi Jul 27, 2026
939351a
settings validator: add missing checks
franciscojoray Jul 28, 2026
7886fdf
fix `get_settings_datum`
franciscojoray Jul 28, 2026
491f147
feat(settings): enhance validator by implementing burn and close vali…
sofia-bobbiesi Jul 28, 2026
e7fd232
Refactor validate_close function call in validator settings
sofia-bobbiesi Jul 28, 2026
8c8b471
Merge branch '20-explore-config-parameter-management' into 27-impleme…
sofia-bobbiesi Jul 28, 2026
cf06f8d
simplify close and burn by removing redundant parameters
franciscojoray Jul 28, 2026
634c79e
move authorization check from `validate_burn` to `validate_close`
franciscojoray Jul 28, 2026
7f76227
update aiken.lock
franciscojoray Jul 29, 2026
1c7debd
Refactor code structure for improved readability and maintainability
sofia-bobbiesi Jul 29, 2026
c8e65a4
Add settingsTokenName to SettingsParams and update related exports
sofia-bobbiesi Jul 29, 2026
f08555b
feat(docs): wip add design sketch to dao exploration document
Micrograx Jul 29, 2026
a214c09
feat(docs): Adds transaction diagrams to dao exploration
Micrograx Jul 30, 2026
004cbad
Export SETTINGS_TOKEN_NAME for use in settings e2e tests
franciscojoray Jul 31, 2026
f24ab49
Fix: update slotConfig assignment to use devnetSlotConfig function
franciscojoray Jul 31, 2026
b262f8b
fix outdated comment
franciscojoray Aug 3, 2026
9a677aa
Add node.properties for Yaci DevKit configuration and update devnet-t…
franciscojoray Aug 3, 2026
36a9bda
fix buildCloseTx function
franciscojoray Aug 3, 2026
e617245
fix propose and apply time calculations
franciscojoray Aug 3, 2026
feb6dff
fix: update settings blueprint hash in package.json
franciscojoray Aug 3, 2026
64dfb2a
test: add case to reject propose with same value as current
franciscojoray Aug 3, 2026
2669d6f
feat: add initial files for tx3 offchain
sofia-bobbiesi Aug 3, 2026
1816fcd
feat: implement configuration parameter management with governance fu…
sofia-bobbiesi Aug 3, 2026
b89114c
utils for running tx3 e2e tests
franciscojoray Aug 9, 2026
20aacf0
fix settings tx3 type definitions and remove unnecessary references
franciscojoray Aug 9, 2026
381e588
add package.json and tsconfig.json for tx3 offchain project
franciscojoray Aug 9, 2026
79c4508
update .gitignore for tx3
franciscojoray Aug 9, 2026
9fc4a8c
test: add devnet tests for configuration parameter management
franciscojoray Aug 9, 2026
c355265
docs: update README for Tx3 off-chain devnet tests and add placeholde…
franciscojoray Aug 9, 2026
eb8a00f
fix: add paths configuration to tsconfig for module resolution
franciscojoray Aug 9, 2026
3fb0603
feat: enhance mesh e2e tests for settings contract
franciscojoray Aug 9, 2026
dfd0562
reflect new meshJS e2e test cases in tx3
franciscojoray Aug 9, 2026
8973fae
fix: handle error during dolos binary spawning in TestDevnet
franciscojoray Aug 9, 2026
67f379e
fix: update documentation and method names for clarity in TestDevnet
franciscojoray Aug 10, 2026
d056fec
refactor: remove unnecessary TOML config files for settings protocol
franciscojoray Aug 10, 2026
593e3f3
refactor: move `unwrapCborBytes` function to devnet utils
franciscojoray Aug 10, 2026
e45f8c2
update package-lock
franciscojoray Aug 10, 2026
984066a
docs: add instructions for generating TypeScript client before runnin…
sofia-bobbiesi Aug 11, 2026
af2f772
docs: update TypeScript client generation instructions for clarity
franciscojoray Aug 11, 2026
bdc91c9
Merge branch 'main' into 27-implement-config-parameter-management
sofia-bobbiesi Aug 11, 2026
0a04437
fix(meshjs): align vitest version with lockfile for CI npm ci
Copilot Aug 11, 2026
80b3f8a
Potential fix for pull request finding
sofia-bobbiesi Aug 11, 2026
a21cb4f
Merge branch '12-explore-dao' into 43-implement-dao
sofia-bobbiesi Aug 13, 2026
021378d
Implement DAO proposal minting functionality with validation
sofia-bobbiesi Aug 13, 2026
d4df874
Refactor DAO validators: separate proposal, stake, and vote logic int…
franciscojoray Aug 14, 2026
8fe96f6
Enhance DAO types: add stake position and vote handling, update propo…
franciscojoray Aug 14, 2026
b5359e5
e2e skeleton for dao tests
sofia-bobbiesi Aug 14, 2026
8531bc5
WIP: complete lib for dao validators
franciscojoray Aug 14, 2026
f103a7f
Fix unlock timing for proposal voting phase in DAO stake logic
franciscojoray Aug 14, 2026
4beb907
Add end-to-end tests for DAO governance contracts on Yaci DevKit
sofia-bobbiesi Aug 14, 2026
831a15f
Merge branch '43-implement-dao' of https://github.com/input-output-hk…
sofia-bobbiesi Aug 14, 2026
d93d7fe
WIP: fix stake validator logic
franciscojoray Aug 18, 2026
a1367e6
fix: consistent import style
rober-m Aug 18, 2026
1ea0677
feat: update to aiken v1.1.22 and aiken fmt
rober-m Aug 18, 2026
549f7b9
fix: typo
rober-m Aug 18, 2026
28dd34f
fix: lib-level README doesn't pin a specific validator hash
rober-m Aug 18, 2026
4f5e2e1
fix: remove unnecesary types
rober-m Aug 18, 2026
4ce06db
Refactor DAO proposal and stake validation logic to streamline settin…
franciscojoray Aug 18, 2026
9c2669d
Refactor DAO proposal and stake logic to utilize get_dao_settings and…
sofia-bobbiesi Aug 18, 2026
d65167c
update DAO comments
sofia-bobbiesi Aug 18, 2026
5b5e0fc
Enhance DAO vote logic: update minting and spending functions to ensu…
sofia-bobbiesi Aug 18, 2026
8c70cde
improve param names for clarity
franciscojoray Aug 19, 2026
9ab312a
simplify find_input_by_policy function
franciscojoray Aug 19, 2026
539ab99
Refactor vote validator: update parameters and utilize get_dao_settin…
franciscojoray Aug 19, 2026
884af7c
Refactor vote spending logic: use find_proposal_input for readability
franciscojoray Aug 19, 2026
3e67f9b
add missing Vote minting policy datum checks
franciscojoray Aug 19, 2026
5373a90
fix dao onchain tests
franciscojoray Aug 19, 2026
3a0584c
Refactor proposal and vote minting logic to include output index in r…
franciscojoray Aug 19, 2026
e34c022
Refactor code structure for improved readability and maintainability
franciscojoray Aug 19, 2026
10585f6
Add default output index to mint vote tests for consistency
franciscojoray Aug 19, 2026
0762c98
chore: add biome + aiken fmt tooling with pre-commit hook
sofia-bobbiesi Aug 20, 2026
e0a883c
style: apply biome format
sofia-bobbiesi Aug 20, 2026
b576022
chore: unify CI on aiken v1.1.22
sofia-bobbiesi Aug 20, 2026
bd9b32c
fix: drop markdown/yaml from biome lint-staged (unsupported in biome …
sofia-bobbiesi Aug 20, 2026
ddf255c
feat: add protocol settings specification document
sofia-bobbiesi Aug 20, 2026
72b5313
feat: implement settings_typed validator and associated scripts
sofia-bobbiesi Aug 20, 2026
f1cc1ac
chore: remove VSCode settings file
sofia-bobbiesi Aug 20, 2026
4ff1b6a
update blueprints with aiken version 1.1.22
franciscojoray Aug 20, 2026
ae87fc8
add complete happy path and more failure cases for typed settings e2e…
franciscojoray Aug 21, 2026
a784b88
update blueprints in package.json
franciscojoray Aug 21, 2026
aa51a5a
fix: update settings_hash calculation and remove wrong minting
franciscojoray Aug 21, 2026
d217dbc
add close settings diagram
franciscojoray Aug 21, 2026
fd4d427
fix: correct seedUtxo property name in settings parameters
franciscojoray Aug 21, 2026
bf8ddcc
update package-lock.json
franciscojoray Aug 21, 2026
14801c3
add tx3 script-authorized transactions
franciscojoray Aug 21, 2026
d282c22
Refactor devnet infrastructure and testing setup
sofia-bobbiesi Aug 24, 2026
d4dba59
fix: improve README clarity and formatting for test instructions
sofia-bobbiesi Aug 24, 2026
c7d8b9a
docs: update protocol settings documentation to clarify staking crede…
sofia-bobbiesi Aug 24, 2026
48285a0
refactor: improve validation logic in spend.ak for setting proposals
sofia-bobbiesi Aug 24, 2026
4d23b34
test: add assertion for settings UTxO in end-to-end tests
sofia-bobbiesi Aug 24, 2026
8c5c68d
refactor: streamline transaction builder return statements in setting…
franciscojoray Aug 24, 2026
3a7c84b
docs: clarify comments on environment handling and configuration over…
sofia-bobbiesi Aug 24, 2026
019d73d
Merge branch '27-implement-config-parameter-management' into 43-imple…
sofia-bobbiesi Aug 25, 2026
c5825af
refactor: move settings retrieval into MintVote case in vote validator
sofia-bobbiesi Aug 25, 2026
9b1cee3
refactor: update proposal results type to List<ScriptHash> and apply fmt
franciscojoray Aug 25, 2026
7c54568
refactor: update proposal status votes type to List<Int> and adjust r…
sofia-bobbiesi Aug 25, 2026
ca1a873
fix tests
sofia-bobbiesi Aug 25, 2026
23a2397
Refactor code structure for improved readability and maintainability
sofia-bobbiesi Aug 25, 2026
a6f696d
update plutus.json
sofia-bobbiesi Aug 25, 2026
7a0d5f7
refactor: replace find_input with resolve_input and improve stake val…
franciscojoray Aug 25, 2026
a526224
optimize vote datum comparison
franciscojoray Aug 25, 2026
c92e69e
remove impossible case in votes burn check
franciscojoray Aug 25, 2026
db6fd6a
pass `proposal_id` within CosignProposal and VoteProposal
franciscojoray Aug 25, 2026
94bc699
add Cancel action to VoteRedeemer and update vote spending logic
franciscojoray Aug 26, 2026
72181d5
refactor: replace list.find with list.expect_find
franciscojoray Aug 26, 2026
5f29b28
refactor: move settings retrieval into MintProposal case
franciscojoray Aug 26, 2026
2ec8a92
refactor: remove unnecessary check for all burned votes in proposal s…
franciscojoray Aug 26, 2026
0c1ba4c
refactor: simplify winner function using option.and_then for better r…
franciscojoray Aug 26, 2026
98fa97e
fix: add missing import for aiken/option in spend.ak
franciscojoray Aug 26, 2026
1197483
refactor: update vote spending logic to use separate functions for ta…
sofia-bobbiesi Aug 26, 2026
ed039c0
refactor: enhance proposal spending logic with dedicated validation f…
sofia-bobbiesi Aug 26, 2026
cc8ed96
refactor: update stake spending logic to use dedicated validation fun…
sofia-bobbiesi Aug 26, 2026
cd7f45e
apply formatter
sofia-bobbiesi Aug 26, 2026
201b7bc
refactor: consolidate imports for Credential and OutputRef in DAO types
sofia-bobbiesi Aug 26, 2026
ac6e097
refactor: replace OutputRef with TxInput in ProposalParams and StakeP…
sofia-bobbiesi Aug 26, 2026
28c2552
fix proposal burning policy for better composability
franciscojoray Aug 26, 2026
ebda9fa
Refactor DAO validators to use settings_policy instead of settings_utxo
sofia-bobbiesi Aug 26, 2026
5925213
Refactor and update offchain DAO
sofia-bobbiesi Aug 26, 2026
349ce38
Fix vote function to include proposal_validator in validate_mint_vote…
sofia-bobbiesi Aug 27, 2026
c0c93fd
feat: enhance DAO functionality with slot management and NFT handling
sofia-bobbiesi Aug 27, 2026
7681473
feat: allow >1 vote nft burn in tally tx
franciscojoray Aug 27, 2026
c7e83d9
feat: add e2e test for maximum votes in DAO tally transaction
franciscojoray Aug 27, 2026
ad84fa7
feat: add initial DAO governance tx3 code
sofia-bobbiesi Aug 28, 2026
ef3a2bc
feat: update DAO settings parameter names for clarity and consistency
sofia-bobbiesi Aug 28, 2026
2346a3e
feat: implement DAO test kit and enhance devnet utilities for protoco…
sofia-bobbiesi Aug 28, 2026
2b1f36e
add Close Vote tx diagram
franciscojoray Aug 28, 2026
c5dab3a
dao onchain: add `am_i_the_winner` lib function to be used by well-fo…
franciscojoray Aug 28, 2026
81f7ffb
feat: add simple poll_effect validator for DAO proposal execution
franciscojoray Aug 28, 2026
b613f3f
feat: add poll-effect candidate and related functionality
franciscojoray Aug 28, 2026
c9f3047
apply formatter
franciscojoray Aug 28, 2026
ea5aa5a
change Lock type definition from tuple to record
franciscojoray Aug 28, 2026
1f14e3f
fix(tx3): align dao protocol with current on-chain validators
franciscojoray Aug 28, 2026
615b649
test(tx3): run the poll_effect candidate (am_i_the_winner) in dao dev…
franciscojoray Aug 29, 2026
f36022c
test(tx3): add negative parity tests for dao proposal lifecycle.
franciscojoray Aug 29, 2026
5432dfa
refactor(tx3): adjust phase durations and tests to reduce times
franciscojoray Aug 29, 2026
a01e2bf
refactor(tx3): harden dao attack tests with expectAttackRejected
franciscojoray Aug 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2

[*.{md,txt}]
trim_trailing_whitespace = false
22 changes: 21 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,34 @@
branches: [main]

jobs:
format:
name: Format (biome + aiken)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
cache-dependency-path: package-lock.json
- name: Install
run: npm ci
- name: Biome format check
run: npm run format:check
- uses: aiken-lang/setup-aiken@v1
with:
version: v1.1.22
- name: aiken fmt check (onchain)
working-directory: onchain
run: aiken fmt --check
onchain:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
name: On-chain (aiken)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: aiken-lang/setup-aiken@v1
with:
version: v1.1.21
version: v1.1.22
# Cache fetched Aiken dependencies (the analog of node_modules), keyed on
# the resolved lockfile so a dependency bump invalidates it.
- name: Cache Aiken packages
Expand Down
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,10 @@
# Keep the repository documentation tracked
!docs/*
!specs/*

# Agents
.opencode
.agents
.claude

node_modules/
1 change: 1 addition & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
npx lint-staged
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,20 @@ aiken check # run tests

The off-chain layer provides TypeScript builders (MeshJS) and Tx3 implementations under `offchain/`.

## Formatting

Formatting is enforced automatically:

- **TypeScript/JavaScript/JSON** — [Biome](https://biomejs.dev) with the repo-level `biome.json` config.
- **Aiken** — `aiken fmt` with the compiler version pinned in `onchain/aiken.toml`.

A pre-commit hook (Husky + lint-staged) formats staged files on every commit, and CI fails on unformatted code. To format everything at once:

```sh
npm install # once, from the repo root
npm run format
```

## Documentation

- [Product Requirements (PRD)](docs/PRD.md) — what we ship, goals, catalog.
Expand Down
39 changes: 39 additions & 0 deletions biome.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"$schema": "https://biomejs.dev/schemas/2.5.9/schema.json",
"files": {
"includes": [
"**",
"!**/node_modules",
"!**/dist",
"!**/*.tsbuildinfo",
"!**/package-lock.json",
"!offchain/tx3/devnet/genesis/**",
"!onchain/**",
"!formal/**",
"!logs/**",
"!.opencode/**",
"!.husky/**",
"!.git/**"
]
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 80,
"lineEnding": "lf"
},
"javascript": {
"formatter": {
"quoteStyle": "double",
"semicolons": "always",
"trailingCommas": "all",
"arrowParentheses": "always"
}
},
"json": {
"formatter": {
"enabled": true
}
}
}
Loading
Loading