Conversation
Use miden-debug's DapExecutorFactory and DapConfig to let miden-client execute transaction scripts under a debug adapter via --start-debug-adapter.
e502fbb to
ec3fa67
Compare
|
Rebased on top of |
| [patch.crates-io] | ||
| miden-protocol = { path = "../protocol/crates/miden-protocol" } | ||
| miden-standards = { path = "../protocol/crates/miden-standards" } | ||
| miden-testing = { path = "../protocol/crates/miden-testing" } | ||
| miden-tx = { path = "../protocol/crates/miden-tx" } |
There was a problem hiding this comment.
This needs to be removed
| miden-node-ntx-builder = { version = "=0.14.0-alpha.4" } | ||
| miden-node-proto = { version = "=0.14.0-alpha.4" } | ||
| miden-node-proto-build = { default-features = false, version = "=0.14.0-alpha.4" } | ||
| miden-node-proto-build = { default-features = false, path = "../node/proto", version = "=0.14.0-alpha.1" } |
There was a problem hiding this comment.
This also needs to be fixed.
There was a problem hiding this comment.
Yes, sure. I should have marked this as a draft.
|
Could you provide a more detailed description like screenshots and a sample debug flow? |
Hi @juan518munoz, thanks for taking a look. The main idea is to enhance debugger with support to debug programs executed under the transaction kernel, instead of only debugging standalone VM programs. Please check: 0xMiden/miden-debug#41 Within 0xMiden/miden-debug#29, I have described one of possible use cases, but I was able to add even an "offline" mode to this dap execution, so you just do: run # terminal 1
$ miden-client init --local --network localhost
$ miden-client new-wallet --offline
$ miden-client exec \
--script-path /tmp/miden-no-node-client/nop.masm \
--start-debug-adapter localhost:4711and run debugger as: # terminal 2
miden-debug --dap-connect localhost:4711so, it starts the debugger in TUI mode, and you can step through the execution, and whenever you execute a command via DAP, it will be logged with the client -- see picture attached.
|
juan518munoz
left a comment
There was a problem hiding this comment.
Let's update the branch so we can run the CI
| client | ||
| .execute_program(account_id, tx_script, advice_inputs, BTreeSet::new()) | ||
| .await | ||
| }; | ||
|
|
||
| #[cfg(not(feature = "dap"))] | ||
| let result = client | ||
| .execute_program(account_id, tx_script, advice_inputs, BTreeSet::new()) | ||
| .await; |
There was a problem hiding this comment.
This is duplicated code. Maybe the best approach is not to split between feature = "dap" or not.
| path = "src/main.rs" | ||
|
|
||
| [features] | ||
| dap = ["miden-client/dap", "dep:miden-debug"] |
There was a problem hiding this comment.
Should we gate behind a feature? Or have connection depend on an Optional argument?
| use crate::store::{BlockRelevance, StoreError}; | ||
| use crate::{Client, ClientError}; | ||
|
|
||
| const OFFLINE_NATIVE_ASSET_FAUCET_ID: u128 = 0xab00_0000_0000_cd20_0000_ac00_0000_de00; |
There was a problem hiding this comment.
The whole diff of this part seems to be caused due to not being on track with next. As we should already have solved them here.

This was rebased on top of Fumuran's branch for migrating to
miden-vm v0.21.cc @bitwalker