-
Notifications
You must be signed in to change notification settings - Fork 73
feat: Add support for submitting general DAO proposals #492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
frol
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@vsavchyn-dev Niiice! This looks really good and already works mostly fine. I would like to only ask to address the minor review requests and we are good to go!
src/transaction_signature_options/submit_dao_proposal/dao_kind_arguments.rs
Outdated
Show resolved
Hide resolved
also removed `from_near` inside `src/types/near_token.rs` as it is not used anymore
630974f to
a2c8622
Compare
frol
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@race-of-sloths score 13
|
@vsavchyn-dev Thank you for your contribution! Your pull request is now a part of the Race of Sloths! Current status: executed
Your contribution is much appreciated with a final score of 13! @frol received 25 Sloth Points for reviewing and scoring this pull request. Congratulations @vsavchyn-dev! Your PR was highly scored and you completed another monthly streak! To keep your monthly streak make another pull request next month and get 8+ score for it What is the Race of SlothsRace of Sloths is a friendly competition where you can participate in challenges and compete with other open-source contributors within your normal workflow For contributors:
For maintainers:
Feel free to check our website for additional details! Bot commands
|
## 🤖 New release
* `near-cli-rs`: 0.20.0 -> 0.21.0 (⚠ API breaking changes)
### ⚠ `near-cli-rs` breaking changes
```text
--- failure enum_no_repr_variant_discriminant_changed: enum variant had its discriminant change value ---
Description:
The enum's variant had its discriminant value change. This breaks downstream code that used its value via a numeric cast like `as isize`.
ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.41.0/src/lints/enum_no_repr_variant_discriminant_changed.ron
Failed in:
variant ContractActionsDiscriminants::DownloadAbi 4 -> 5 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:61
variant ContractActionsDiscriminants::DownloadWasm 5 -> 6 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:64
variant ContractActionsDiscriminants::ViewStorage 6 -> 7 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:67
variant ContractActionsDiscriminants::DownloadAbi 4 -> 5 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:61
variant ContractActionsDiscriminants::DownloadWasm 5 -> 6 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:64
variant ContractActionsDiscriminants::ViewStorage 6 -> 7 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:67
--- failure enum_variant_added: enum variant added on exhaustive enum ---
Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.41.0/src/lints/enum_variant_added.ron
Failed in:
variant SignWithDiscriminants:SubmitAsDaoProposal in /tmp/.tmpHq8aq0/near-cli-rs/src/transaction_signature_options/mod.rs:64
variant SignWithDiscriminants:SubmitAsDaoProposal in /tmp/.tmpHq8aq0/near-cli-rs/src/transaction_signature_options/mod.rs:64
variant CliContractActions:Verify in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:26
variant CliSignWith:SubmitAsDaoProposal in /tmp/.tmpHq8aq0/near-cli-rs/src/transaction_signature_options/mod.rs:19
variant SignWith:SubmitAsDaoProposal in /tmp/.tmpHq8aq0/near-cli-rs/src/transaction_signature_options/mod.rs:64
variant ContractActionsDiscriminants:Verify in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:58
variant ContractActionsDiscriminants:Verify in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:58
--- failure trait_newly_sealed: pub trait became sealed ---
Description:
A publicly-visible trait became sealed, so downstream crates are no longer able to implement it
ref: https://rust-lang.github.io/api-guidelines/future-proofing.html#sealed-traits-protect-against-downstream-implementations-c-sealed
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.41.0/src/lints/trait_newly_sealed.ron
Failed in:
trait near_cli_rs::common::JsonRpcClientExt in file /tmp/.tmpHq8aq0/near-cli-rs/src/common.rs:2342
```
<details><summary><i><b>Changelog</b></i></summary><p>
<blockquote>
##
[0.21.0](v0.20.0...v0.21.0)
- 2025-07-08
### Added
- Improved support for importing implicit accounts
([#498](#498))
- Added a command to confirm locally that the deployed contract matches
the source code it was built from
([#480](#480))
- Add support for submitting general DAO proposals
([#492](#492))
### Fixed
- Fixed typos in the default CLI config
([#501](#501))
- Fixed error RpcError: [missing field disable_9393_fix]
([#502](#502))
- use re-rexported version of `indicatif` module, needed for
`tracing-indicatif`
([#503](#503))
- `clippy::result_large_err` warning
([#488](#488))
### Other
- Added `verify_contract`/`inspect_contract` feauture gates
([#504](#504))
- Pinned binary releases to use ubuntu-22.04
([#506](#506))
- Fixed linting errors - non-inlined formatting syntax
([#499](#499))
- fix some typos ([#494](#494))
- simplified action struct
([#493](#493))
- added more RPCs (FAST NEAR and Lava) to the default config generation
([#491](#491))
- introduced `BoxedJsonRpcResult` type
([#490](#490))
- fixed shell configuration for command history
([#487](#487))
</blockquote>
</p></details>
---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).
## 🤖 New release
* `near-cli-rs`: 0.20.0 -> 0.21.0 (⚠ API breaking changes)
### ⚠ `near-cli-rs` breaking changes
```text
--- failure enum_no_repr_variant_discriminant_changed: enum variant had its discriminant change value ---
Description:
The enum's variant had its discriminant value change. This breaks downstream code that used its value via a numeric cast like `as isize`.
ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.41.0/src/lints/enum_no_repr_variant_discriminant_changed.ron
Failed in:
variant ContractActionsDiscriminants::DownloadAbi 4 -> 5 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:61
variant ContractActionsDiscriminants::DownloadWasm 5 -> 6 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:64
variant ContractActionsDiscriminants::ViewStorage 6 -> 7 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:67
variant ContractActionsDiscriminants::DownloadAbi 4 -> 5 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:61
variant ContractActionsDiscriminants::DownloadWasm 5 -> 6 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:64
variant ContractActionsDiscriminants::ViewStorage 6 -> 7 in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:67
--- failure enum_variant_added: enum variant added on exhaustive enum ---
Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.41.0/src/lints/enum_variant_added.ron
Failed in:
variant SignWithDiscriminants:SubmitAsDaoProposal in /tmp/.tmpHq8aq0/near-cli-rs/src/transaction_signature_options/mod.rs:64
variant SignWithDiscriminants:SubmitAsDaoProposal in /tmp/.tmpHq8aq0/near-cli-rs/src/transaction_signature_options/mod.rs:64
variant CliContractActions:Verify in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:26
variant CliSignWith:SubmitAsDaoProposal in /tmp/.tmpHq8aq0/near-cli-rs/src/transaction_signature_options/mod.rs:19
variant SignWith:SubmitAsDaoProposal in /tmp/.tmpHq8aq0/near-cli-rs/src/transaction_signature_options/mod.rs:64
variant ContractActionsDiscriminants:Verify in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:58
variant ContractActionsDiscriminants:Verify in /tmp/.tmpHq8aq0/near-cli-rs/src/commands/contract/mod.rs:58
--- failure trait_newly_sealed: pub trait became sealed ---
Description:
A publicly-visible trait became sealed, so downstream crates are no longer able to implement it
ref: https://rust-lang.github.io/api-guidelines/future-proofing.html#sealed-traits-protect-against-downstream-implementations-c-sealed
impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.41.0/src/lints/trait_newly_sealed.ron
Failed in:
trait near_cli_rs::common::JsonRpcClientExt in file /tmp/.tmpHq8aq0/near-cli-rs/src/common.rs:2342
```
<details><summary><i><b>Changelog</b></i></summary><p>
<blockquote>
##
[0.21.0](near/near-cli-rs@v0.20.0...v0.21.0)
- 2025-07-08
### Added
- Improved support for importing implicit accounts
([#498](near/near-cli-rs#498))
- Added a command to confirm locally that the deployed contract matches
the source code it was built from
([#480](near/near-cli-rs#480))
- Add support for submitting general DAO proposals
([#492](near/near-cli-rs#492))
### Fixed
- Fixed typos in the default CLI config
([#501](near/near-cli-rs#501))
- Fixed error RpcError: [missing field disable_9393_fix]
([#502](near/near-cli-rs#502))
- use re-rexported version of `indicatif` module, needed for
`tracing-indicatif`
([#503](near/near-cli-rs#503))
- `clippy::result_large_err` warning
([#488](near/near-cli-rs#488))
### Other
- Added `verify_contract`/`inspect_contract` feauture gates
([#504](near/near-cli-rs#504))
- Pinned binary releases to use ubuntu-22.04
([#506](near/near-cli-rs#506))
- Fixed linting errors - non-inlined formatting syntax
([#499](near/near-cli-rs#499))
- fix some typos ([#494](near/near-cli-rs#494))
- simplified action struct
([#493](near/near-cli-rs#493))
- added more RPCs (FAST NEAR and Lava) to the default config generation
([#491](near/near-cli-rs#491))
- introduced `BoxedJsonRpcResult` type
([#490](near/near-cli-rs#490))
- fixed shell configuration for command history
([#487](near/near-cli-rs#487))
</blockquote>
</p></details>
---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).
This pull request closes #197, adding support for submitting transactions of type
Action::FunctionCallandAction::TransferasFunctionCallandTransferDAO proposal kinds respectfully.Therefore, by writing:
You can construct
Transferdao proposal:Added things:
DAO Proposal Functionality:
submit_dao_proposalinsrc/transaction_signature_options/mod.rsto support converting transactions into DAO proposals. This includes defining theDaoProposalstructure and its associated arguments, contexts, and signing options.ProposalKindenum insrc/transaction_signature_options/submit_dao_proposal/dao_kind_arguments.rsto handle different types of DAO proposal arguments, such asTransferandFunctionCall.Argument Decoding:
deep_decode_argsfunction insrc/common.rsforprint_unsigned_transactionfunction to recursively decode base64-encoded arguments in JSON objects. This ensures nested arguments are properly decoded, so person who submits things can see all sub-arguments in human-readable text, and not in base64.Dependency Updates:
base64andserde_withtoCargo.tomlfor handling base64 encoding/decoding and advanced serialization/deserialization (it was already included to other dependencies).Utility Enhancements:
from_nearmethod to theNearTokentype insrc/types/near_token.rs.