From ae1c235883690cf5779ab14765765a46594426f7 Mon Sep 17 00:00:00 2001 From: Adam Spofford Date: Thu, 31 Jul 2025 07:05:49 -0700 Subject: [PATCH 1/4] use a real SNS (Dragginz) instead of the NNS's IDs for sns commands --- e2e/assets/sns_canister_ids.json | 8 ++++---- tests/output/default/sns/balance/simple.txt | 2 +- tests/output/default/sns/disburse/simple.txt | 2 +- tests/output/default/sns/disburse/subaccount.txt | 2 +- tests/output/default/sns/dissolve_delay/add_seconds.txt | 2 +- .../default/sns/dissolve_delay/start_dissolving.txt | 2 +- .../output/default/sns/dissolve_delay/stop_dissolving.txt | 2 +- tests/output/default/sns/follow/follow.txt | 2 +- tests/output/default/sns/follow/unfollow.txt | 2 +- tests/output/default/sns/make_proposal/from_file.txt | 2 +- tests/output/default/sns/make_proposal/simple.txt | 2 +- tests/output/default/sns/make_proposal/upgrade.txt | 2 +- tests/output/default/sns/make_proposal/upgrade_arg.txt | 2 +- .../default/sns/make_proposal/upgrade_summary_path.txt | 2 +- tests/output/default/sns/make_proposal/with_blob.txt | 2 +- tests/output/default/sns/manage_neuron/disburse.txt | 2 +- .../default/sns/manage_neuron/disburse_subaccount.txt | 2 +- tests/output/default/sns/manage_neuron/split.txt | 2 +- tests/output/default/sns/manage_neuron/stake_maturity.txt | 2 +- tests/output/default/sns/neuron_permission/add.txt | 2 +- tests/output/default/sns/neuron_permission/remove.txt | 2 +- tests/output/default/sns/stake_neuron/memo.txt | 6 +++--- tests/output/default/sns/stake_neuron/no_amount.txt | 2 +- tests/output/default/sns/status.txt | 2 +- tests/output/default/sns/swap/new_ticket.txt | 2 +- tests/output/default/sns/swap/participation.txt | 2 +- tests/output/default/sns/swap/pay.txt | 4 ++-- .../default/sns/swap/pay_with_confirmation_text.txt | 4 ++-- tests/output/default/sns/swap/refund.txt | 2 +- tests/output/default/sns/transfer/fees_and_memo.txt | 2 +- tests/output/default/sns/transfer/simple.txt | 2 +- tests/output/default/sns/vote/no.txt | 2 +- tests/output/default/sns/vote/yes.txt | 2 +- tests/output/ledger/sns/disburse/simple.txt | 2 +- tests/output/ledger/sns/disburse/subaccount.txt | 2 +- .../output/ledger/sns/dissolve_delay/start_dissolving.txt | 2 +- .../output/ledger/sns/dissolve_delay/stop_dissolving.txt | 2 +- tests/output/ledger/sns/manage_neuron/stake_maturity.txt | 2 +- tests/output/ledger/sns/neuron_permission/add.txt | 2 +- tests/output/ledger/sns/neuron_permission/remove.txt | 2 +- tests/output/ledger/sns/transfer/fees_and_memo.txt | 2 +- tests/output/ledger/sns/transfer/simple.txt | 2 +- 42 files changed, 49 insertions(+), 49 deletions(-) diff --git a/e2e/assets/sns_canister_ids.json b/e2e/assets/sns_canister_ids.json index 71ec5d56..26f5a1e9 100644 --- a/e2e/assets/sns_canister_ids.json +++ b/e2e/assets/sns_canister_ids.json @@ -1,6 +1,6 @@ { - "governance_canister_id": "rrkah-fqaaa-aaaaa-aaaaq-cai", - "ledger_canister_id": "ryjl3-tyaaa-aaaaa-aaaba-cai", - "root_canister_id": "r7inp-6aaaa-aaaaa-aaabq-cai", - "swap_canister_id": "rkp4c-7iaaa-aaaaa-aaaca-cai" + "governance_canister_id": "zqfso-syaaa-aaaaq-aaafq-cai", + "ledger_canister_id": "zfcdd-tqaaa-aaaaq-aaaga-cai", + "root_canister_id": "zxeu2-7aaaa-aaaaq-aaafa-cai", + "swap_canister_id": "zcdfx-6iaaa-aaaaq-aaagq-cai" } diff --git a/tests/output/default/sns/balance/simple.txt b/tests/output/default/sns/balance/simple.txt index 11dab9a4..d102f251 100644 --- a/tests/output/default/sns/balance/simple.txt +++ b/tests/output/default/sns/balance/simple.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: 2vxsx-fae - Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Canister id: zfcdd-tqaaa-aaaaq-aaaga-cai Method name: icrc1_balance_of Arguments: ( record { diff --git a/tests/output/default/sns/disburse/simple.txt b/tests/output/default/sns/disburse/simple.txt index 9fcca87f..7637d40c 100644 --- a/tests/output/default/sns/disburse/simple.txt +++ b/tests/output/default/sns/disburse/simple.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/disburse/subaccount.txt b/tests/output/default/sns/disburse/subaccount.txt index a3773863..84bfebdf 100644 --- a/tests/output/default/sns/disburse/subaccount.txt +++ b/tests/output/default/sns/disburse/subaccount.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/dissolve_delay/add_seconds.txt b/tests/output/default/sns/dissolve_delay/add_seconds.txt index 4277d467..4e9e2875 100755 --- a/tests/output/default/sns/dissolve_delay/add_seconds.txt +++ b/tests/output/default/sns/dissolve_delay/add_seconds.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/dissolve_delay/start_dissolving.txt b/tests/output/default/sns/dissolve_delay/start_dissolving.txt index 598a99f1..ab824a53 100755 --- a/tests/output/default/sns/dissolve_delay/start_dissolving.txt +++ b/tests/output/default/sns/dissolve_delay/start_dissolving.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/dissolve_delay/stop_dissolving.txt b/tests/output/default/sns/dissolve_delay/stop_dissolving.txt index bb572c6a..eddce69c 100755 --- a/tests/output/default/sns/dissolve_delay/stop_dissolving.txt +++ b/tests/output/default/sns/dissolve_delay/stop_dissolving.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/follow/follow.txt b/tests/output/default/sns/follow/follow.txt index f060dd7f..d28d6e64 100644 --- a/tests/output/default/sns/follow/follow.txt +++ b/tests/output/default/sns/follow/follow.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/follow/unfollow.txt b/tests/output/default/sns/follow/unfollow.txt index 63e458d3..d763bd6f 100644 --- a/tests/output/default/sns/follow/unfollow.txt +++ b/tests/output/default/sns/follow/unfollow.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/make_proposal/from_file.txt b/tests/output/default/sns/make_proposal/from_file.txt index b4ff1d87..e51c42d0 100644 --- a/tests/output/default/sns/make_proposal/from_file.txt +++ b/tests/output/default/sns/make_proposal/from_file.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/make_proposal/simple.txt b/tests/output/default/sns/make_proposal/simple.txt index b4ff1d87..e51c42d0 100644 --- a/tests/output/default/sns/make_proposal/simple.txt +++ b/tests/output/default/sns/make_proposal/simple.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/make_proposal/upgrade.txt b/tests/output/default/sns/make_proposal/upgrade.txt index d016febf..758f50ba 100644 --- a/tests/output/default/sns/make_proposal/upgrade.txt +++ b/tests/output/default/sns/make_proposal/upgrade.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/make_proposal/upgrade_arg.txt b/tests/output/default/sns/make_proposal/upgrade_arg.txt index 5fca8d32..55773cf6 100644 --- a/tests/output/default/sns/make_proposal/upgrade_arg.txt +++ b/tests/output/default/sns/make_proposal/upgrade_arg.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/make_proposal/upgrade_summary_path.txt b/tests/output/default/sns/make_proposal/upgrade_summary_path.txt index 54d54e22..c9e3d13d 100644 --- a/tests/output/default/sns/make_proposal/upgrade_summary_path.txt +++ b/tests/output/default/sns/make_proposal/upgrade_summary_path.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/make_proposal/with_blob.txt b/tests/output/default/sns/make_proposal/with_blob.txt index eb55a6e4..e722c4d5 100644 --- a/tests/output/default/sns/make_proposal/with_blob.txt +++ b/tests/output/default/sns/make_proposal/with_blob.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/manage_neuron/disburse.txt b/tests/output/default/sns/manage_neuron/disburse.txt index c5913017..b5b1a410 100644 --- a/tests/output/default/sns/manage_neuron/disburse.txt +++ b/tests/output/default/sns/manage_neuron/disburse.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/manage_neuron/disburse_subaccount.txt b/tests/output/default/sns/manage_neuron/disburse_subaccount.txt index 9b444d60..0c739525 100644 --- a/tests/output/default/sns/manage_neuron/disburse_subaccount.txt +++ b/tests/output/default/sns/manage_neuron/disburse_subaccount.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/manage_neuron/split.txt b/tests/output/default/sns/manage_neuron/split.txt index 976d8f31..dd8215f2 100644 --- a/tests/output/default/sns/manage_neuron/split.txt +++ b/tests/output/default/sns/manage_neuron/split.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/manage_neuron/stake_maturity.txt b/tests/output/default/sns/manage_neuron/stake_maturity.txt index 7f962e60..f630f3f1 100644 --- a/tests/output/default/sns/manage_neuron/stake_maturity.txt +++ b/tests/output/default/sns/manage_neuron/stake_maturity.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/neuron_permission/add.txt b/tests/output/default/sns/neuron_permission/add.txt index 14651408..fb3fa62e 100644 --- a/tests/output/default/sns/neuron_permission/add.txt +++ b/tests/output/default/sns/neuron_permission/add.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/neuron_permission/remove.txt b/tests/output/default/sns/neuron_permission/remove.txt index 73db9031..03d1b798 100644 --- a/tests/output/default/sns/neuron_permission/remove.txt +++ b/tests/output/default/sns/neuron_permission/remove.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/stake_neuron/memo.txt b/tests/output/default/sns/stake_neuron/memo.txt index e60e1d72..7b9adac2 100644 --- a/tests/output/default/sns/stake_neuron/memo.txt +++ b/tests/output/default/sns/stake_neuron/memo.txt @@ -2,12 +2,12 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Canister id: zfcdd-tqaaa-aaaaq-aaaga-cai Method name: icrc1_transfer Arguments: ( record { to = record { - owner = principal "rrkah-fqaaa-aaaaa-aaaaq-cai"; + owner = principal "zqfso-syaaa-aaaaq-aaafq-cai"; subaccount = opt blob "\72\8a\c1\3b\10\49\a3\ac\af\fe\13\f1\3b\c7\1e\fd\9b\34\97\65\80\d4\0d\f2\79\b2\73\20\6e\f1\34\24"; }; fee = null; @@ -21,7 +21,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/stake_neuron/no_amount.txt b/tests/output/default/sns/stake_neuron/no_amount.txt index fa24cb61..8ade8fd8 100644 --- a/tests/output/default/sns/stake_neuron/no_amount.txt +++ b/tests/output/default/sns/stake_neuron/no_amount.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/status.txt b/tests/output/default/sns/status.txt index 822fdd5e..e5fde0cf 100644 --- a/tests/output/default/sns/status.txt +++ b/tests/output/default/sns/status.txt @@ -2,6 +2,6 @@ Sending message with Call type: update Sender: 2vxsx-fae - Canister id: r7inp-6aaaa-aaaaa-aaabq-cai + Canister id: zxeu2-7aaaa-aaaaq-aaafa-cai Method name: get_sns_canisters_summary Arguments: (record { update_canister_list = null }) diff --git a/tests/output/default/sns/swap/new_ticket.txt b/tests/output/default/sns/swap/new_ticket.txt index ed5e0c5e..c2f81277 100644 --- a/tests/output/default/sns/swap/new_ticket.txt +++ b/tests/output/default/sns/swap/new_ticket.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rkp4c-7iaaa-aaaaa-aaaca-cai + Canister id: zcdfx-6iaaa-aaaaq-aaagq-cai Method name: new_sale_ticket Arguments: ( record { diff --git a/tests/output/default/sns/swap/participation.txt b/tests/output/default/sns/swap/participation.txt index 99ec8203..3b4cbbca 100644 --- a/tests/output/default/sns/swap/participation.txt +++ b/tests/output/default/sns/swap/participation.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: 2vxsx-fae - Canister id: rkp4c-7iaaa-aaaaa-aaaca-cai + Canister id: zcdfx-6iaaa-aaaaq-aaagq-cai Method name: get_buyer_state Arguments: ( record { diff --git a/tests/output/default/sns/swap/pay.txt b/tests/output/default/sns/swap/pay.txt index ba6bb586..82163b7f 100644 --- a/tests/output/default/sns/swap/pay.txt +++ b/tests/output/default/sns/swap/pay.txt @@ -6,7 +6,7 @@ Sending message with Method name: transfer Arguments: ( record { - to = blob "\bf\f3\21\8e\70\8b\09\18\7a\58\6a\1f\39\7e\df\08\19\64\e5\60\a5\a0\f6\43\5f\ac\04\4c\7f\4a\25\e9"; + to = blob "\ca\ee\4f\b7\75\0b\cb\ba\82\74\67\ea\40\df\ec\22\5f\f4\7e\87\2f\c7\ee\e5\8d\80\69\17\8b\a0\3e\70"; fee = record { e8s = 10_000 : nat64 }; memo = 100 : nat64; from_subaccount = opt blob "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\e0\00\d8\01\01"; @@ -20,7 +20,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rkp4c-7iaaa-aaaaa-aaaca-cai + Canister id: zcdfx-6iaaa-aaaaq-aaagq-cai Method name: refresh_buyer_tokens Arguments: ( record { diff --git a/tests/output/default/sns/swap/pay_with_confirmation_text.txt b/tests/output/default/sns/swap/pay_with_confirmation_text.txt index 3eccdf86..d641dba0 100644 --- a/tests/output/default/sns/swap/pay_with_confirmation_text.txt +++ b/tests/output/default/sns/swap/pay_with_confirmation_text.txt @@ -6,7 +6,7 @@ Sending message with Method name: transfer Arguments: ( record { - to = blob "\bf\f3\21\8e\70\8b\09\18\7a\58\6a\1f\39\7e\df\08\19\64\e5\60\a5\a0\f6\43\5f\ac\04\4c\7f\4a\25\e9"; + to = blob "\ca\ee\4f\b7\75\0b\cb\ba\82\74\67\ea\40\df\ec\22\5f\f4\7e\87\2f\c7\ee\e5\8d\80\69\17\8b\a0\3e\70"; fee = record { e8s = 10_000 : nat64 }; memo = 100 : nat64; from_subaccount = null; @@ -20,7 +20,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rkp4c-7iaaa-aaaaa-aaaca-cai + Canister id: zcdfx-6iaaa-aaaaq-aaagq-cai Method name: refresh_buyer_tokens Arguments: ( record { diff --git a/tests/output/default/sns/swap/refund.txt b/tests/output/default/sns/swap/refund.txt index eb7d64d2..f83bf9b9 100644 --- a/tests/output/default/sns/swap/refund.txt +++ b/tests/output/default/sns/swap/refund.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rkp4c-7iaaa-aaaaa-aaaca-cai + Canister id: zcdfx-6iaaa-aaaaq-aaagq-cai Method name: error_refund_icp Arguments: ( record { diff --git a/tests/output/default/sns/transfer/fees_and_memo.txt b/tests/output/default/sns/transfer/fees_and_memo.txt index 61741672..aa01de1f 100644 --- a/tests/output/default/sns/transfer/fees_and_memo.txt +++ b/tests/output/default/sns/transfer/fees_and_memo.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Canister id: zfcdd-tqaaa-aaaaq-aaaga-cai Method name: icrc1_transfer Arguments: ( record { diff --git a/tests/output/default/sns/transfer/simple.txt b/tests/output/default/sns/transfer/simple.txt index 21be9d98..3f3c5236 100644 --- a/tests/output/default/sns/transfer/simple.txt +++ b/tests/output/default/sns/transfer/simple.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Canister id: zfcdd-tqaaa-aaaaq-aaaga-cai Method name: icrc1_transfer Arguments: ( record { diff --git a/tests/output/default/sns/vote/no.txt b/tests/output/default/sns/vote/no.txt index 10eaa682..f0c2bb11 100644 --- a/tests/output/default/sns/vote/no.txt +++ b/tests/output/default/sns/vote/no.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/default/sns/vote/yes.txt b/tests/output/default/sns/vote/yes.txt index 446e8084..5f2f94c8 100644 --- a/tests/output/default/sns/vote/yes.txt +++ b/tests/output/default/sns/vote/yes.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/ledger/sns/disburse/simple.txt b/tests/output/ledger/sns/disburse/simple.txt index 35e92e0d..146eab3b 100644 --- a/tests/output/ledger/sns/disburse/simple.txt +++ b/tests/output/ledger/sns/disburse/simple.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/ledger/sns/disburse/subaccount.txt b/tests/output/ledger/sns/disburse/subaccount.txt index 574dbf6e..401786d3 100644 --- a/tests/output/ledger/sns/disburse/subaccount.txt +++ b/tests/output/ledger/sns/disburse/subaccount.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/ledger/sns/dissolve_delay/start_dissolving.txt b/tests/output/ledger/sns/dissolve_delay/start_dissolving.txt index 82643e7d..7d6a963a 100644 --- a/tests/output/ledger/sns/dissolve_delay/start_dissolving.txt +++ b/tests/output/ledger/sns/dissolve_delay/start_dissolving.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/ledger/sns/dissolve_delay/stop_dissolving.txt b/tests/output/ledger/sns/dissolve_delay/stop_dissolving.txt index cb73891d..616fbf85 100644 --- a/tests/output/ledger/sns/dissolve_delay/stop_dissolving.txt +++ b/tests/output/ledger/sns/dissolve_delay/stop_dissolving.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/ledger/sns/manage_neuron/stake_maturity.txt b/tests/output/ledger/sns/manage_neuron/stake_maturity.txt index ada94c89..e320b1bb 100644 --- a/tests/output/ledger/sns/manage_neuron/stake_maturity.txt +++ b/tests/output/ledger/sns/manage_neuron/stake_maturity.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/ledger/sns/neuron_permission/add.txt b/tests/output/ledger/sns/neuron_permission/add.txt index 573bf0a4..8537c2bd 100644 --- a/tests/output/ledger/sns/neuron_permission/add.txt +++ b/tests/output/ledger/sns/neuron_permission/add.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/ledger/sns/neuron_permission/remove.txt b/tests/output/ledger/sns/neuron_permission/remove.txt index 14e021a1..c6f18b3d 100644 --- a/tests/output/ledger/sns/neuron_permission/remove.txt +++ b/tests/output/ledger/sns/neuron_permission/remove.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe - Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Canister id: zqfso-syaaa-aaaaq-aaafq-cai Method name: manage_neuron Arguments: ( record { diff --git a/tests/output/ledger/sns/transfer/fees_and_memo.txt b/tests/output/ledger/sns/transfer/fees_and_memo.txt index c10e25f1..b8cfb109 100644 --- a/tests/output/ledger/sns/transfer/fees_and_memo.txt +++ b/tests/output/ledger/sns/transfer/fees_and_memo.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe - Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Canister id: zfcdd-tqaaa-aaaaq-aaaga-cai Method name: icrc1_transfer Arguments: ( record { diff --git a/tests/output/ledger/sns/transfer/simple.txt b/tests/output/ledger/sns/transfer/simple.txt index 76ed6ac8..4329c957 100644 --- a/tests/output/ledger/sns/transfer/simple.txt +++ b/tests/output/ledger/sns/transfer/simple.txt @@ -2,7 +2,7 @@ Sending message with Call type: update Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe - Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Canister id: zfcdd-tqaaa-aaaaq-aaaga-cai Method name: icrc1_transfer Arguments: ( record { From 29517de4cae8b1cb23632cbd47b5573692bfa7ec Mon Sep 17 00:00:00 2001 From: Adam Spofford Date: Thu, 31 Jul 2025 07:15:07 -0700 Subject: [PATCH 2/4] Support more operations with Ledger --- CHANGELOG.md | 1 + src/commands/claim_neurons.rs | 44 ++++++++----- src/commands/neuron_manage.rs | 10 ++- src/commands/neuron_stake.rs | 6 +- src/lib/ledger.rs | 2 +- tests/output/ckbtc.rs | 8 ++- tests/output/ledger/claim_neurons/simple.txt | 9 +++ .../ledger/neuron_manage/add_hot_key.txt | 23 +++++++ tests/output/ledger/neuron_manage/clear.txt | 17 +++++ .../disburse_somewhat_to_someone.txt | 22 +++++++ .../disburse_stop_dissolving.txt | 36 ++++++++++ tests/output/ledger/neuron_manage/follow.txt | 23 +++++++ .../neuron_manage/join_community_fund.txt | 19 ++++++ .../neuron_manage/leave_community_fund.txt | 19 ++++++ .../neuron_manage/refresh_following.txt | 15 +++++ .../remove_hot_key_and_dissolve.txt | 65 +++++++++++++++++++ .../ledger/neuron_manage/set_visibility.txt | 21 ++++++ tests/output/ledger/neuron_manage/vote.txt | 40 ++++++++++++ .../output/ledger/neuron_stake/stake_only.txt | 22 +++++++ .../output/ledger/neuron_stake/with_name.txt | 40 ++++++++++++ .../output/ledger/neuron_stake/with_nonce.txt | 40 ++++++++++++ tests/output/ledger/transfer/e8s-2.txt | 18 +++++ tests/output/ledger/transfer/e8s.txt | 18 +++++ tests/output/ledger/transfer/icp-and-e8s.txt | 18 +++++ tests/output/ledger/transfer/simple.txt | 18 +++++ .../ledger/transfer/with-fees-and-memo.txt | 18 +++++ tests/output/ledger/transfer/with-fees.txt | 18 +++++ tests/output/neuron_manage.rs | 13 ++-- tests/output/root.rs | 5 +- tests/output/sns.rs | 1 + 30 files changed, 574 insertions(+), 35 deletions(-) create mode 100644 tests/output/ledger/claim_neurons/simple.txt create mode 100644 tests/output/ledger/neuron_manage/add_hot_key.txt create mode 100644 tests/output/ledger/neuron_manage/clear.txt create mode 100644 tests/output/ledger/neuron_manage/disburse_somewhat_to_someone.txt create mode 100644 tests/output/ledger/neuron_manage/disburse_stop_dissolving.txt create mode 100644 tests/output/ledger/neuron_manage/follow.txt create mode 100644 tests/output/ledger/neuron_manage/join_community_fund.txt create mode 100644 tests/output/ledger/neuron_manage/leave_community_fund.txt create mode 100644 tests/output/ledger/neuron_manage/refresh_following.txt create mode 100644 tests/output/ledger/neuron_manage/remove_hot_key_and_dissolve.txt create mode 100644 tests/output/ledger/neuron_manage/set_visibility.txt create mode 100644 tests/output/ledger/neuron_manage/vote.txt create mode 100644 tests/output/ledger/neuron_stake/stake_only.txt create mode 100644 tests/output/ledger/neuron_stake/with_name.txt create mode 100644 tests/output/ledger/neuron_stake/with_nonce.txt create mode 100644 tests/output/ledger/transfer/e8s-2.txt create mode 100644 tests/output/ledger/transfer/e8s.txt create mode 100644 tests/output/ledger/transfer/icp-and-e8s.txt create mode 100644 tests/output/ledger/transfer/simple.txt create mode 100644 tests/output/ledger/transfer/with-fees-and-memo.txt create mode 100644 tests/output/ledger/transfer/with-fees.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 9adb720d..d8c7b678 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## Unreleased +- Ledger support has been updated. Ledger devices can now be used to vote and follow, disburse neurons (but not neuron maturity), add hotkeys, and set neuron visibility; as well as stake new neurons or claim them from Genesis, and transfer to all types of NNS accounts. - Added command for disbursing maturity from neurons, `quill neuron-manage --disburse-maturity`, with optional parameters `--disburse-maturity-percentage` and `--disburse-maturity-to`. - Updated to rev c7993fa049275b6700df8dfcc02f90d0fca82f24, adding support for the `FulfillSubnetRentalRequest` proposal. - `--refresh-followers` has been renamed to the more accurate `--refresh-following`. diff --git a/src/commands/claim_neurons.rs b/src/commands/claim_neurons.rs index 00973efc..82112317 100644 --- a/src/commands/claim_neurons.rs +++ b/src/commands/claim_neurons.rs @@ -1,32 +1,46 @@ use crate::lib::{ genesis_token_canister_id, + ledger::LedgerIdentity, signing::{sign_ingress_with_request_status_query, IngressWithRequestId}, AnyhowResult, AuthInfo, ROLE_NNS_GTC, }; use anyhow::anyhow; use candid::Encode; use clap::Parser; -use k256::elliptic_curve::sec1::ToEncodedPoint; +use k256::{elliptic_curve::sec1::ToEncodedPoint, PublicKey}; +use pkcs8::DecodePublicKey; /// Claim seed neurons from the Genesis Token Canister. #[derive(Parser)] pub struct ClaimNeuronOpts; pub fn exec(auth: &AuthInfo) -> AnyhowResult> { - if let AuthInfo::K256Key(pk) = auth { - let point = pk.public_key().to_encoded_point(false); - let sig = Encode!(&hex::encode(point.as_bytes()))?; - - Ok(vec![sign_ingress_with_request_status_query( - auth, - genesis_token_canister_id(), - ROLE_NNS_GTC, - "claim_neurons", - sig, - )?]) - } else { - Err(anyhow!( + match auth { + AuthInfo::K256Key(pk) => { + let point = pk.public_key().to_encoded_point(false); + let sig = Encode!(&hex::encode(point.as_bytes()))?; + Ok(vec![sign_ingress_with_request_status_query( + auth, + genesis_token_canister_id(), + ROLE_NNS_GTC, + "claim_neurons", + sig, + )?]) + } + AuthInfo::Ledger => { + let point = PublicKey::from_public_key_der(&LedgerIdentity::new()?.public_key()?.1)? + .to_encoded_point(false); + let sig = Encode!(&hex::encode(point.as_bytes()))?; + Ok(vec![sign_ingress_with_request_status_query( + auth, + genesis_token_canister_id(), + ROLE_NNS_GTC, + "claim_neurons", + sig, + )?]) + } + _ => Err(anyhow!( "claim-neurons command requires --pem-file to be specified" - )) + )), } } diff --git a/src/commands/neuron_manage.rs b/src/commands/neuron_manage.rs index cc40f03b..cc7a1904 100644 --- a/src/commands/neuron_manage.rs +++ b/src/commands/neuron_manage.rs @@ -167,13 +167,11 @@ enum NativeVisibility { pub fn exec(auth: &AuthInfo, opts: ManageOpts) -> AnyhowResult> { if opts.ledger { ensure!( - opts.add_hot_key.is_none() && opts.remove_hot_key.is_none() && !opts.disburse && opts.disburse_amount.is_none() && opts.disburse_to.is_none() - && !opts.clear_manage_neuron_followees && !opts.join_community_fund && !opts.leave_community_fund - && opts.follow_topic.is_none() && opts.follow_neurons.is_none() && opts.register_vote.is_none() && !opts.reject - && opts.set_visibility.is_none() && !opts.refresh_following, + !opts.disburse_maturity && opts.disburse_maturity_to.is_none() + && opts.disburse_maturity_percentage.is_none(), "\ -Cannot use --ledger with these flags. This version of quill only supports the following neuron-manage operations with a Ledger device: ---additional-dissolve-delay-seconds, --start-dissolving, --stop-dissolving, --split, --merge-from-neuron, --spawn, --stake-maturity, --auto-stake-maturity" +Cannot use --ledger with these flags. This version of quill does not support the --disburse-maturity, --disburse-maturity-to, \ +or --disburse-maturity-percentage flags with a Ledger device" ); } let mut msgs = Vec::new(); diff --git a/src/commands/neuron_stake.rs b/src/commands/neuron_stake.rs index 31554ce1..46cdb529 100644 --- a/src/commands/neuron_stake.rs +++ b/src/commands/neuron_stake.rs @@ -6,7 +6,7 @@ use crate::{ AnyhowResult, AuthInfo, ParsedNnsAccount, ParsedSubaccount, ROLE_NNS_GOVERNANCE, }, }; -use anyhow::{anyhow, ensure}; +use anyhow::anyhow; use candid::{Encode, Principal}; use clap::Parser; use ic_nns_constants::GOVERNANCE_CANISTER_ID; @@ -57,10 +57,6 @@ pub struct StakeOpts { } pub fn exec(auth: &AuthInfo, opts: StakeOpts) -> AnyhowResult> { - ensure!( - !opts.ledger, - "Cannot use `--ledger` with this command. This version of Quill does not support staking new neurons with a Ledger device" - ); let controller = crate::lib::get_principal(auth)?; let nonce = match (&opts.nonce, &opts.name) { (Some(nonce), _) => *nonce, diff --git a/src/lib/ledger.rs b/src/lib/ledger.rs index 3eaf877f..dce9b92d 100644 --- a/src/lib/ledger.rs +++ b/src/lib/ledger.rs @@ -266,7 +266,7 @@ pub fn supported_transaction(canister_id: &Principal, method_name: &str) -> bool || method_name == "list_neurons_pb" || method_name == "update_node_provider" } else if *canister_id == ledger_canister_id() { - method_name == "send_pb" || method_name == "icrc1_transfer" + method_name == "send_pb" || method_name == "icrc1_transfer" || method_name == "transfer" } else { method_name == "icrc1_transfer" || method_name == "manage_neuron" diff --git a/tests/output/ckbtc.rs b/tests/output/ckbtc.rs index 9d0cdaaa..b0f1bb8f 100644 --- a/tests/output/ckbtc.rs +++ b/tests/output/ckbtc.rs @@ -3,7 +3,13 @@ use crate::{ PRINCIPAL, }; -ledger_compatible![balance, withdrawal_address, transfer]; +ledger_compatible![ + balance, + withdrawal_address, + transfer, + // update_balance, + // retrieve_btc +]; #[test] fn balance() { diff --git a/tests/output/ledger/claim_neurons/simple.txt b/tests/output/ledger/claim_neurons/simple.txt new file mode 100644 index 00000000..858c1ead --- /dev/null +++ b/tests/output/ledger/claim_neurons/simple.txt @@ -0,0 +1,9 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: renrk-eyaaa-aaaaa-aaada-cai + Method name: claim_neurons + Arguments: ( + "0410d34980a51af89d3331ad5fa80fe30d8868ad87526460b3b3e15596ee58e812422987d8589ba61098264df5bb9c2d3ff6fe061746b4b31a44ec26636632b835", +) diff --git a/tests/output/ledger/neuron_manage/add_hot_key.txt b/tests/output/ledger/neuron_manage/add_hot_key.txt new file mode 100644 index 00000000..4a011eee --- /dev/null +++ b/tests/output/ledger/neuron_manage/add_hot_key.txt @@ -0,0 +1,23 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Configure = record { + operation = opt variant { + AddHotKey = record { + new_hot_key = opt principal "5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe"; + } + }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) diff --git a/tests/output/ledger/neuron_manage/clear.txt b/tests/output/ledger/neuron_manage/clear.txt new file mode 100644 index 00000000..b8f39e33 --- /dev/null +++ b/tests/output/ledger/neuron_manage/clear.txt @@ -0,0 +1,17 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Follow = record { topic = 1 : int32; followees = vec {} } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) diff --git a/tests/output/ledger/neuron_manage/disburse_somewhat_to_someone.txt b/tests/output/ledger/neuron_manage/disburse_somewhat_to_someone.txt new file mode 100644 index 00000000..5388594c --- /dev/null +++ b/tests/output/ledger/neuron_manage/disburse_somewhat_to_someone.txt @@ -0,0 +1,22 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Disburse = record { + to_account = opt record { + hash = blob "\c6\48\b8\14\e8\1d\79\46\e8\ba\ce\a9\92\80\e0\7c\5f\51\a0\4b\a7\a3\80\09\d8\ad\8e\89"; + }; + amount = opt record { e8s = 5_731_000_000 : nat64 }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) diff --git a/tests/output/ledger/neuron_manage/disburse_stop_dissolving.txt b/tests/output/ledger/neuron_manage/disburse_stop_dissolving.txt new file mode 100644 index 00000000..0f53fcdb --- /dev/null +++ b/tests/output/ledger/neuron_manage/disburse_stop_dissolving.txt @@ -0,0 +1,36 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Configure = record { + operation = opt variant { StopDissolving = record {} }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Disburse = record { to_account = null; amount = null } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) diff --git a/tests/output/ledger/neuron_manage/follow.txt b/tests/output/ledger/neuron_manage/follow.txt new file mode 100644 index 00000000..14fb7658 --- /dev/null +++ b/tests/output/ledger/neuron_manage/follow.txt @@ -0,0 +1,23 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Follow = record { + topic = 0 : int32; + followees = vec { + record { id = 380_519_530_470_538 : nat64 }; + record { id = 380_519_530_470_539 : nat64 }; + }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) diff --git a/tests/output/ledger/neuron_manage/join_community_fund.txt b/tests/output/ledger/neuron_manage/join_community_fund.txt new file mode 100644 index 00000000..59424241 --- /dev/null +++ b/tests/output/ledger/neuron_manage/join_community_fund.txt @@ -0,0 +1,19 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Configure = record { + operation = opt variant { JoinCommunityFund = record {} }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) diff --git a/tests/output/ledger/neuron_manage/leave_community_fund.txt b/tests/output/ledger/neuron_manage/leave_community_fund.txt new file mode 100644 index 00000000..4e5dbf4b --- /dev/null +++ b/tests/output/ledger/neuron_manage/leave_community_fund.txt @@ -0,0 +1,19 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Configure = record { + operation = opt variant { LeaveCommunityFund = record {} }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) diff --git a/tests/output/ledger/neuron_manage/refresh_following.txt b/tests/output/ledger/neuron_manage/refresh_following.txt new file mode 100644 index 00000000..56479213 --- /dev/null +++ b/tests/output/ledger/neuron_manage/refresh_following.txt @@ -0,0 +1,15 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { RefreshVotingPower = record {} }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) diff --git a/tests/output/ledger/neuron_manage/remove_hot_key_and_dissolve.txt b/tests/output/ledger/neuron_manage/remove_hot_key_and_dissolve.txt new file mode 100644 index 00000000..1e82f516 --- /dev/null +++ b/tests/output/ledger/neuron_manage/remove_hot_key_and_dissolve.txt @@ -0,0 +1,65 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Configure = record { + operation = opt variant { + RemoveHotKey = record { + hot_key_to_remove = opt principal "5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe"; + } + }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Configure = record { + operation = opt variant { StartDissolving = record {} }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Configure = record { + operation = opt variant { + IncreaseDissolveDelay = record { + additional_dissolve_delay_seconds = 7_200 : nat32; + } + }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) diff --git a/tests/output/ledger/neuron_manage/set_visibility.txt b/tests/output/ledger/neuron_manage/set_visibility.txt new file mode 100644 index 00000000..14075ed1 --- /dev/null +++ b/tests/output/ledger/neuron_manage/set_visibility.txt @@ -0,0 +1,21 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + Configure = record { + operation = opt variant { + SetVisibility = record { visibility = opt (2 : int32) } + }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) diff --git a/tests/output/ledger/neuron_manage/vote.txt b/tests/output/ledger/neuron_manage/vote.txt new file mode 100644 index 00000000..5333781e --- /dev/null +++ b/tests/output/ledger/neuron_manage/vote.txt @@ -0,0 +1,40 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + RegisterVote = record { + vote = 1 : int32; + proposal = opt record { id = 123 : nat64 }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + RegisterVote = record { + vote = 1 : int32; + proposal = opt record { id = 456 : nat64 }; + } + }; + neuron_id_or_subaccount = opt variant { + NeuronId = record { id = 2_313_380_519_530_470_538 : nat64 } + }; + }, +) diff --git a/tests/output/ledger/neuron_stake/stake_only.txt b/tests/output/ledger/neuron_stake/stake_only.txt new file mode 100644 index 00000000..844f05c8 --- /dev/null +++ b/tests/output/ledger/neuron_stake/stake_only.txt @@ -0,0 +1,22 @@ +Sending message with + + Call type: update + Sender: 2vxsx-fae + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + ClaimOrRefresh = record { + by = opt variant { + MemoAndController = record { + controller = opt principal "5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe"; + memo = 7_888_422_419_985_231_726 : nat64; + } + }; + } + }; + neuron_id_or_subaccount = null; + }, +) diff --git a/tests/output/ledger/neuron_stake/with_name.txt b/tests/output/ledger/neuron_stake/with_name.txt new file mode 100644 index 00000000..d7dab55a --- /dev/null +++ b/tests/output/ledger/neuron_stake/with_name.txt @@ -0,0 +1,40 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Method name: transfer + Arguments: ( + record { + to = blob "\47\d0\3c\27\46\15\8d\85\47\1b\84\35\64\6f\fd\2c\46\c8\a2\23\a1\66\ba\73\3e\f1\4f\be\f2\8d\d3\87"; + fee = record { e8s = 10_000 : nat64 }; + memo = 7_888_422_419_985_231_726 : nat64; + from_subaccount = null; + created_at_time = opt record { + timestamp_nanos = 1_669_073_904_187_044_208 : nat64; + }; + amount = record { e8s = 1_200_000_000 : nat64 }; + }, +) +Sending message with + + Call type: update + Sender: 2vxsx-fae + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + ClaimOrRefresh = record { + by = opt variant { + MemoAndController = record { + controller = opt principal "5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe"; + memo = 7_888_422_419_985_231_726 : nat64; + } + }; + } + }; + neuron_id_or_subaccount = null; + }, +) diff --git a/tests/output/ledger/neuron_stake/with_nonce.txt b/tests/output/ledger/neuron_stake/with_nonce.txt new file mode 100644 index 00000000..9e1d8100 --- /dev/null +++ b/tests/output/ledger/neuron_stake/with_nonce.txt @@ -0,0 +1,40 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Method name: transfer + Arguments: ( + record { + to = blob "\07\55\17\b4\b5\d6\0a\c5\7d\94\b0\d5\33\1d\bd\1f\c5\fc\85\6d\4b\10\02\5f\f0\23\8e\5d\b7\3d\ca\62"; + fee = record { e8s = 10_000 : nat64 }; + memo = 777 : nat64; + from_subaccount = opt blob "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01"; + created_at_time = opt record { + timestamp_nanos = 1_669_073_904_187_044_208 : nat64; + }; + amount = record { e8s = 1_200_000_000 : nat64 }; + }, +) +Sending message with + + Call type: update + Sender: 2vxsx-fae + Canister id: rrkah-fqaaa-aaaaa-aaaaq-cai + Method name: manage_neuron + Arguments: ( + record { + id = null; + command = opt variant { + ClaimOrRefresh = record { + by = opt variant { + MemoAndController = record { + controller = opt principal "5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe"; + memo = 777 : nat64; + } + }; + } + }; + neuron_id_or_subaccount = null; + }, +) diff --git a/tests/output/ledger/transfer/e8s-2.txt b/tests/output/ledger/transfer/e8s-2.txt new file mode 100644 index 00000000..502143e1 --- /dev/null +++ b/tests/output/ledger/transfer/e8s-2.txt @@ -0,0 +1,18 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Method name: transfer + Arguments: ( + record { + to = blob "\34\5f\72\3e\9e\61\99\34\da\ac\6a\e0\f4\be\13\a7\b0\ba\57\d6\a6\08\e5\11\a0\0f\d0\de\d5\86\67\52"; + fee = record { e8s = 10_000 : nat64 }; + memo = 0 : nat64; + from_subaccount = opt blob "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\01"; + created_at_time = opt record { + timestamp_nanos = 1_669_073_904_187_044_208 : nat64; + }; + amount = record { e8s = 9 : nat64 }; + }, +) diff --git a/tests/output/ledger/transfer/e8s.txt b/tests/output/ledger/transfer/e8s.txt new file mode 100644 index 00000000..1e3f50cc --- /dev/null +++ b/tests/output/ledger/transfer/e8s.txt @@ -0,0 +1,18 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Method name: transfer + Arguments: ( + record { + to = blob "\34\5f\72\3e\9e\61\99\34\da\ac\6a\e0\f4\be\13\a7\b0\ba\57\d6\a6\08\e5\11\a0\0f\d0\de\d5\86\67\52"; + fee = record { e8s = 10_000 : nat64 }; + memo = 0 : nat64; + from_subaccount = null; + created_at_time = opt record { + timestamp_nanos = 1_669_073_904_187_044_208 : nat64; + }; + amount = record { e8s = 12_345_600 : nat64 }; + }, +) diff --git a/tests/output/ledger/transfer/icp-and-e8s.txt b/tests/output/ledger/transfer/icp-and-e8s.txt new file mode 100644 index 00000000..b0554634 --- /dev/null +++ b/tests/output/ledger/transfer/icp-and-e8s.txt @@ -0,0 +1,18 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Method name: transfer + Arguments: ( + record { + to = blob "\34\5f\72\3e\9e\61\99\34\da\ac\6a\e0\f4\be\13\a7\b0\ba\57\d6\a6\08\e5\11\a0\0f\d0\de\d5\86\67\52"; + fee = record { e8s = 10_000 : nat64 }; + memo = 0 : nat64; + from_subaccount = null; + created_at_time = opt record { + timestamp_nanos = 1_669_073_904_187_044_208 : nat64; + }; + amount = record { e8s = 123_456_000 : nat64 }; + }, +) diff --git a/tests/output/ledger/transfer/simple.txt b/tests/output/ledger/transfer/simple.txt new file mode 100644 index 00000000..4c68c349 --- /dev/null +++ b/tests/output/ledger/transfer/simple.txt @@ -0,0 +1,18 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Method name: transfer + Arguments: ( + record { + to = blob "\34\5f\72\3e\9e\61\99\34\da\ac\6a\e0\f4\be\13\a7\b0\ba\57\d6\a6\08\e5\11\a0\0f\d0\de\d5\86\67\52"; + fee = record { e8s = 10_000 : nat64 }; + memo = 0 : nat64; + from_subaccount = null; + created_at_time = opt record { + timestamp_nanos = 1_669_073_904_187_044_208 : nat64; + }; + amount = record { e8s = 12_300 : nat64 }; + }, +) diff --git a/tests/output/ledger/transfer/with-fees-and-memo.txt b/tests/output/ledger/transfer/with-fees-and-memo.txt new file mode 100644 index 00000000..4fca28ac --- /dev/null +++ b/tests/output/ledger/transfer/with-fees-and-memo.txt @@ -0,0 +1,18 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Method name: transfer + Arguments: ( + record { + to = blob "\34\5f\72\3e\9e\61\99\34\da\ac\6a\e0\f4\be\13\a7\b0\ba\57\d6\a6\08\e5\11\a0\0f\d0\de\d5\86\67\52"; + fee = record { e8s = 230_000 : nat64 }; + memo = 777 : nat64; + from_subaccount = null; + created_at_time = opt record { + timestamp_nanos = 1_669_073_904_187_044_208 : nat64; + }; + amount = record { e8s = 12_304_560_000 : nat64 }; + }, +) diff --git a/tests/output/ledger/transfer/with-fees.txt b/tests/output/ledger/transfer/with-fees.txt new file mode 100644 index 00000000..927f5a8c --- /dev/null +++ b/tests/output/ledger/transfer/with-fees.txt @@ -0,0 +1,18 @@ +Sending message with + + Call type: update + Sender: 5upke-tazvi-6ufqc-i3v6r-j4gpu-dpwti-obhal-yb5xj-ue32x-ktkql-rqe + Canister id: ryjl3-tyaaa-aaaaa-aaaba-cai + Method name: transfer + Arguments: ( + record { + to = blob "\34\5f\72\3e\9e\61\99\34\da\ac\6a\e0\f4\be\13\a7\b0\ba\57\d6\a6\08\e5\11\a0\0f\d0\de\d5\86\67\52"; + fee = record { e8s = 230_000 : nat64 }; + memo = 0 : nat64; + from_subaccount = null; + created_at_time = opt record { + timestamp_nanos = 1_669_073_904_187_044_208 : nat64; + }; + amount = record { e8s = 12_304_560_000 : nat64 }; + }, +) diff --git a/tests/output/neuron_manage.rs b/tests/output/neuron_manage.rs index 335ca24f..770fd428 100644 --- a/tests/output/neuron_manage.rs +++ b/tests/output/neuron_manage.rs @@ -4,16 +4,19 @@ const NEURON_ID: &str = "2313380519530470538"; // uncomment tests on next ledger app update ledger_compatible![ - // hot_key, + hot_key, additional_dissolve_delay_seconds, - // disburse, + disburse, + // disburse_maturity, dissolve, - // follow, - // community_fund, + follow, + community_fund, maturity, merge, + refresh_following, + set_visibility, split, - // vote + vote ]; #[test] diff --git a/tests/output/root.rs b/tests/output/root.rs index 4e8fe4fa..6a33704c 100644 --- a/tests/output/root.rs +++ b/tests/output/root.rs @@ -10,10 +10,11 @@ use crate::{ // Uncomment tests on next ledger app update ledger_compatible![ account_balance, - // claim_neurons, + claim_neurons, list_neurons, - // neuron_stake, + neuron_stake, public_ids, + transfer, transfer_icrc1, ]; diff --git a/tests/output/sns.rs b/tests/output/sns.rs index 55b2c348..e4b81f67 100644 --- a/tests/output/sns.rs +++ b/tests/output/sns.rs @@ -14,6 +14,7 @@ ledger_compatible![ neuron_permission, dissolve, disburse, + // swap, // make_proposal, // stake_neuron, stake_maturity, From 784156e7d673f3251437f2151228c8c2efdc2833 Mon Sep 17 00:00:00 2001 From: Adam Spofford Date: Thu, 31 Jul 2025 07:28:52 -0700 Subject: [PATCH 3/4] fix failfast test --- tests/output/default/ledger_incompatible/by_command.txt | 2 +- tests/output/default/ledger_incompatible/by_flag.txt | 3 +-- tests/output/main.rs | 5 +++++ tests/output/root.rs | 6 +++--- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/tests/output/default/ledger_incompatible/by_command.txt b/tests/output/default/ledger_incompatible/by_command.txt index 95684fb3..9fa3d60d 100644 --- a/tests/output/default/ledger_incompatible/by_command.txt +++ b/tests/output/default/ledger_incompatible/by_command.txt @@ -1 +1 @@ -Error: Cannot use `--ledger` with this command. This version of Quill does not support staking new neurons with a Ledger device +Error: Cannot use --ledger with this command. This version of Quill only supports transfers and certain neuron management operations with a Ledger device diff --git a/tests/output/default/ledger_incompatible/by_flag.txt b/tests/output/default/ledger_incompatible/by_flag.txt index 792c63aa..34e4e5b3 100644 --- a/tests/output/default/ledger_incompatible/by_flag.txt +++ b/tests/output/default/ledger_incompatible/by_flag.txt @@ -1,2 +1 @@ -Error: Cannot use --ledger with these flags. This version of quill only supports the following neuron-manage operations with a Ledger device: ---additional-dissolve-delay-seconds, --start-dissolving, --stop-dissolving, --split, --merge-from-neuron, --spawn, --stake-maturity, --auto-stake-maturity +Error: Cannot use --ledger with these flags. This version of quill does not support the --disburse-maturity, --disburse-maturity-to, or --disburse-maturity-percentage flags with a Ledger device diff --git a/tests/output/main.rs b/tests/output/main.rs index 6cf007b8..c9cb56c5 100644 --- a/tests/output/main.rs +++ b/tests/output/main.rs @@ -54,6 +54,11 @@ fn quill_query(cmd: &str) -> Output { quill_inner(cmd, ["--dry-run".into()]) } +#[must_use] +fn quill_sns(cmd: &str) -> Output { + quill_inner(cmd, sns_args()) +} + #[must_use] fn quill_sns_query(cmd: &str) -> Output { quill_inner(cmd, ["--dry-run".into()].into_iter().chain(sns_args())) diff --git a/tests/output/root.rs b/tests/output/root.rs index 6a33704c..25e13b77 100644 --- a/tests/output/root.rs +++ b/tests/output/root.rs @@ -4,7 +4,7 @@ use tempfile::NamedTempFile; use crate::{ escape_p, ledger_compatible, quill, quill_authed, quill_query, quill_query_authed, quill_send, - OutputExt, + quill_sns, OutputExt, }; // Uncomment tests on next ledger app update @@ -191,8 +191,8 @@ fn ledger_fail_early() { quill("replace-node-provider-id --ledger --node-operator-id fdsgv-62ihb-nbiqv-xgic5-iefsv-3cscz-tmbzv-63qd5-vh43v-dqfrt-pae \ --node-provider-id pnf55-r7gzn-s3oqn-ah2v7-r6b63-a2ma2-wyzhb-dzbwb-sghid-lzcxh-4ae") .diff_err("ledger_incompatible/by_function.txt"); - quill("neuron-stake --ledger --amount 12 --name myNeuron") + quill_sns("sns new-sale-ticket --ledger --amount-icp-e8s 100000 --subaccount e000d80101") .diff_err("ledger_incompatible/by_command.txt"); - quill("neuron-manage 1 --ledger --join-community-fund") + quill("neuron-manage 1 --ledger --disburse-maturity") .diff_err("ledger_incompatible/by_flag.txt"); } From 24c8a1d85da6dd6091047c8cadce3d86fcf85127 Mon Sep 17 00:00:00 2001 From: Adam Spofford Date: Thu, 31 Jul 2025 07:37:01 -0700 Subject: [PATCH 4/4] feature flag --- src/commands/claim_neurons.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/commands/claim_neurons.rs b/src/commands/claim_neurons.rs index 82112317..09050436 100644 --- a/src/commands/claim_neurons.rs +++ b/src/commands/claim_neurons.rs @@ -1,14 +1,12 @@ use crate::lib::{ genesis_token_canister_id, - ledger::LedgerIdentity, signing::{sign_ingress_with_request_status_query, IngressWithRequestId}, AnyhowResult, AuthInfo, ROLE_NNS_GTC, }; use anyhow::anyhow; use candid::Encode; use clap::Parser; -use k256::{elliptic_curve::sec1::ToEncodedPoint, PublicKey}; -use pkcs8::DecodePublicKey; +use k256::elliptic_curve::sec1::ToEncodedPoint; /// Claim seed neurons from the Genesis Token Canister. #[derive(Parser)] @@ -27,7 +25,12 @@ pub fn exec(auth: &AuthInfo) -> AnyhowResult> { sig, )?]) } + #[cfg(feature = "ledger")] AuthInfo::Ledger => { + use crate::lib::ledger::LedgerIdentity; + use k256::PublicKey; + use pkcs8::DecodePublicKey; + let point = PublicKey::from_public_key_der(&LedgerIdentity::new()?.public_key()?.1)? .to_encoded_point(false); let sig = Encode!(&hex::encode(point.as_bytes()))?;