Commit 7bb710c
Add MCMS contracts suite + tests (Tolk) (#43)
* Add drawio example support, document Ownable2Step flow
* Add RBACTimelock drawio flow diagram
* Polish diagrams
* Add color to differentiate op, deploy, and log type of messages
* Polish diagrams
* Flow chart polish
* Add Timelock contract (Tolk) MVP
* Remove package-lock.json and add Tolk extension
* Update Timelock to tolk 0.13, update NPM packages, update storage management
* Trait composition model (admin actions)
* Upgrade to tolk 0.99
* Split out contracts/lib/access/access_control.tolk, upgrade to tolk 0.99, format
* Remove global storage
* Add basic admin role check/modifer to timelock
* AC union message type
* Rewrite lib/access/access_control.tolk
* Separate underlying data from trait and hooks
* Fix compile issues
* Add lib/access/extension/access_control_enumerable.tolk
* Add a generic super (extensions) chain for Traits
* Polish docs, remove Ownable example
* Add AccessControlEnumerable<T> trait hooks type (reusing AccessControl<T> hooks)
* Polish and simplify AC composition structure
* Add 'AccessControl_RenounceRole' msg handler
* Namespace hooks - AccessControlEnumerable_Hooks<T>
* Work on TS bindings
* Add lib/access/extension/AccessControlEnumerable bindigs, disable failing tests
* Add test
* Fix data structure encoding/decoding, debug context mutability
* Simplify ACE composition
* Fix rebase
* Update deps
* Merge lib/access/extension/AccessControlEnumerable with lib/access/AccessControl
* Remove lib/access/extension/AccessControlEnumerable
* AC - Reconstruct the address from the key
* Remove tests/libraries/access/Ownable2Step.spec.ts (duplicate)
* Move 'tests/libraries/merkle_proof' to 'tests/lib/merkle_proof'
* Update contracts to tolk 1.0
* Update to use sDict vs uDict for AccessControl_RoleData.hasRole dict
* Add AC contract docs
* Add outgoing message definitions to AC contract
* Send AC outgoing messages on changes
* Fix rebase, move utils.tolk, fmt
* Add tolk lazy
* Remove unused timelock utils
* Add Timelock docs and outgoing message structs
* Add Timelock incoming message structs
* Set up Timelock contract struct with data and hooks
* Add hashOperationBatch fn
* Add Timelock<T>.blockedFnSelectors storage and fns
* Add Timelock<T>.checkFunctionSelectorNotBlocked
fn
* Add Timelock fns that manage timestamps
* Implement block/unblock fn selector
* Add Timelock<T>.executeBatch fn
* Add Timelock<T>.scheduleBatch/cancel fns
* Add Timelock<T>.init fn
* Iterate over collections
* Add Timelock<T>.updateDelay fn
* Add Timelock<T>.bypasserExecuteBatch fn + polish args
* Add Timelock_InMessage processing + fixes
* Cleanup Timelock admin fns
* Add Timelock_TopUp opcode
* Remove unused opcode handling and code/files
* Polish, rename, move paths
* Add Timelock TS bindings
* Add Timelock contract data and call encoders
* Expose Timelock getters
* Simplify Timelock message handling, storage updates
* self.context is now optional
* Polish Timelock role bindings, enable few tests, remove unused getter bindings
* Restructure onInternalMessage handling
* Enable and add more Timelock/AC tests
* Polish ts bindings, add update delay test
* Add the rest of Timelock TS getters, add more tests
* Add missing TS getter bindings and polish
* Enable sendScheduleBatch test, fix opcode bug
* Fix post rebase Nix yarn.lock hash
* Fix Timelock_CallScheduled msg size
* Timestamp as unit64
* PR comments
* Add MCMS and CallProxy contracts (#77)
* Add Timelock incoming message structs
* Upgrade to tolk 0.99
Add MCMS contract (init)
Add MCMC contract method structure and errors
Add MCMC outgoing messages/events structs
Add default execute hook and getters
Add MCMS<T>.execute fn
Resolve MCMS_Execute msg size issue
Add MCMS<T>.setConfig fn impl
Add Ownable2Step to MCMS
Restructure MCMS data storage to avoid limits
Add MCMS signature verification
Add MCMS TS bindings (structs, errors)
Add MCMS TS bindings (msgs, getters)
Add MCMS<T>.setRoot group quorum checks
Finish MCMS<T>.setRoot fn
Add MCMS MerkleProof verify
Fix rebase
Typo
Add more MCMS.ts bindings
[WIP] Add MCMS deploy test (+bindings)
Add MCMS chain ID (globalId) check
Encode address? (Option) properly
Add uint32 ID to contract for multiple instances
Polish bindings
More bindings structure polish
Start translating EVM test/IntegrationTest.t.sol
Add CallProxy contract
Refactor Counter/Ownable2Step contracts and bindings
MCMS integration test - add counter deploy
Remove 'contracts/contracts/examples/counter_legacy.tact' and update Go bindings
deleted: ../contracts/wrappers/CounterLegacy.compile.ts
Replace tracetracking-specific counter bindings
Fix lint and add tolk 1.0 declaration to /examples/counter.tolk
Use wrappers.Deploy to fix deploy timing issue
Fix msg (opcode) serialization issue
Fix Timelock<T>.bypasserExecuteBatch (reply vs. event emit)
Fix rbac_timelock.tolk value:0 reply, replace with emit
Fix rbac_timelock.hashOperationBatch TS binding
* Post rebase fixes
* [NONEVM-2276] TS tests Timelock Cancel&BlockFunction (#89)
test: base test setup
test: timelock cancel
test: block function
* [NONEVM-2276] TS tests Timelock Hashing (#93)
test: Timelock Hashing
* [NONEVM-2276] TS tests Timelock Getters (#95)
test: timelock getters
* [NONEVM-2276] TS tests Timelock Receivable (#94)
test: timelock receivable
* [NONEVM-2276] TS tests Timelock Schedule Batch (#96)
test: timelock schedule batch
* [NONEVM-2276] TS tests Timelock Update Delay (#98)
test: timelock update delay
* Post-rebase fixes
---------
Co-authored-by: Patricio <[email protected]>
---------
Co-authored-by: Patricio <[email protected]>1 parent 5631f3d commit 7bb710c
File tree
81 files changed
+11341
-8605
lines changed- contracts
- contracts
- ccip
- examples
- lib
- access
- crypto
- mcms
- test/examples
- generated
- scripts
- examples
- tests
- ccip
- helpers
- examples/upgrades
- libraries/ocr
- lib
- access
- merkle_proof
- helpers
- mcms
- wrappers
- ccip
- examples
- access
- upgrades
- libraries/access
- lib/access
- mcms
- docs/contracts/overview
- libraries
- mcms
- integration-tests
- smoke/logpoller
- counter
- helper
- tracetracking
- counter/wrappers
- txm
- wrappers/counterlegacy
- pkg
- bindings/examples/counter
- ton/wrappers
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
81 files changed
+11341
-8605
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| 17 | + | |
| 18 | + | |
17 | 19 | | |
18 | | - | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
19 | 23 | | |
20 | 24 | | |
21 | 25 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| |||
Lines changed: 29 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
1 | 3 | | |
2 | | - | |
3 | | - | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
4 | 7 | | |
5 | 8 | | |
6 | 9 | | |
| |||
33 | 36 | | |
34 | 37 | | |
35 | 38 | | |
| 39 | + | |
| 40 | + | |
36 | 41 | | |
37 | 42 | | |
38 | 43 | | |
| |||
51 | 56 | | |
52 | 57 | | |
53 | 58 | | |
| 59 | + | |
54 | 60 | | |
55 | 61 | | |
56 | 62 | | |
57 | 63 | | |
58 | 64 | | |
59 | 65 | | |
60 | 66 | | |
| 67 | + | |
61 | 68 | | |
62 | 69 | | |
63 | 70 | | |
64 | 71 | | |
65 | 72 | | |
66 | | - | |
67 | | - | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
68 | 83 | | |
69 | 84 | | |
70 | 85 | | |
71 | 86 | | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
72 | 92 | | |
73 | 93 | | |
74 | | - | |
75 | | - | |
| 94 | + | |
| 95 | + | |
76 | 96 | | |
77 | 97 | | |
78 | 98 | | |
79 | 99 | | |
80 | | - | |
81 | | - | |
| 100 | + | |
| 101 | + | |
82 | 102 | | |
83 | 103 | | |
84 | 104 | | |
85 | 105 | | |
86 | | - | |
| 106 | + | |
87 | 107 | | |
88 | 108 | | |
0 commit comments