Skip to content
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

Fix stdlib related tests #4373

Merged
merged 5 commits into from
Jan 17, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 9 additions & 9 deletions abi/resolver/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -426,51 +426,51 @@ mod tests {

#[test]
fn test_resolver_abi() {
let modules = stdlib::load_latest_stable_compiled_modules().unwrap().1;
let modules = stdlib::load_latest_compiled_modules();
let view = InMemoryStateView::new(modules);
let r = ABIResolver::new(&view);
// test module ok
{
let m = ModuleId::new(genesis_address(), Identifier::new("Dao").unwrap());
let m = ModuleId::new(genesis_address(), Identifier::new("dao").unwrap());
r.resolve_module(&m).unwrap();
}
// test struct tag
{
let st = parse_struct_tag(
"0x1::Dao::Proposal<0x1::STC::STC, 0x1::MintDaoProposal::MintToken>",
"0x1::dao::Proposal<0x1::starcoin_coin::STC, 0x1::dao_features_proposal::FeaturesUpdate>",
)
.unwrap();
r.resolve_struct_tag(&st).unwrap();
}
// test struct def
{
let m = ModuleId::new(genesis_address(), Identifier::new("Dao").unwrap());
let m = ModuleId::new(genesis_address(), Identifier::new("dao").unwrap());
let s = Identifier::new("Proposal").unwrap();
let func_abi = r.resolve_struct(&m, s.as_ident_str()).unwrap();
println!("{}", serde_json::to_string_pretty(&func_abi).unwrap());
}

// test resolve module function index
{
let m = ModuleId::new(genesis_address(), Identifier::new("Dao").unwrap());
let m = ModuleId::new(genesis_address(), Identifier::new("dao").unwrap());
let f = r.resolve_module_function_index(&m, 0).unwrap();
assert_eq!(f.name(), "cast_vote");
}

// test resolve module function index overflow
{
let m = ModuleId::new(genesis_address(), Identifier::new("Dao").unwrap());
let m = ModuleId::new(genesis_address(), Identifier::new("dao").unwrap());
assert!(r.resolve_module_function_index(&m, 31).is_err())
}
}

#[test]
fn test_normalized() {
let modules = stdlib::load_latest_stable_compiled_modules().unwrap().1;
let modules = stdlib::load_latest_compiled_modules();
let dao = modules
.iter()
.find(|m| {
m.self_id() == ModuleId::new(genesis_address(), Identifier::new("Dao").unwrap())
m.self_id() == ModuleId::new(genesis_address(), Identifier::new("dao").unwrap())
})
.unwrap();
let _m = Module::new(dao);
Expand All @@ -492,7 +492,7 @@ mod tests {
test_helper::executor::compile_modules_with_address(address, test_source)
.pop()
.unwrap();
let modules = stdlib::load_latest_stable_compiled_modules().unwrap().1;
let modules = stdlib::load_latest_compiled_modules();
let view = InMemoryStateView::new(modules);
let r = ABIResolver::new(&view);
let _abi = r.resolve_module_code(module.code()).unwrap();
Expand Down
Binary file modified genesis/generated/barnard/genesis
Binary file not shown.
Binary file modified genesis/generated/halley/genesis
Binary file not shown.
Binary file modified genesis/generated/main/genesis
Binary file not shown.
Binary file modified genesis/generated/proxima/genesis
Binary file not shown.
Binary file modified genesis/generated/vega/genesis
Binary file not shown.
54 changes: 27 additions & 27 deletions vm/framework/cached-packages/src/starcoin_framework_sdk_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -192,18 +192,18 @@ pub enum EntryFunctionCall {
},

/// Once the proposal is agreed, anyone can call the method to make the proposal happen.
DaoFeatuersProposalExecute {
DaoFeaturesProposalExecute {
proposal_adderss: AccountAddress,
proposal_id: u64,
},

DaoFeatuersProposalExecuteUrgent {
DaoFeaturesProposalExecuteUrgent {
enable: Vec<u64>,
disable: Vec<u64>,
},

/// Entrypoint for the proposal.
DaoFeatuersProposalPropose {
DaoFeaturesProposalPropose {
enable: Vec<u64>,
disable: Vec<u64>,
exec_delay: u64,
Expand Down Expand Up @@ -663,18 +663,18 @@ impl EntryFunctionCall {
proposer_address,
proposal_id,
} => dao_queue_proposal_action(token_t, action_t, proposer_address, proposal_id),
DaoFeatuersProposalExecute {
DaoFeaturesProposalExecute {
proposal_adderss,
proposal_id,
} => dao_featuers_proposal_execute(proposal_adderss, proposal_id),
DaoFeatuersProposalExecuteUrgent { enable, disable } => {
dao_featuers_proposal_execute_urgent(enable, disable)
} => dao_features_proposal_execute(proposal_adderss, proposal_id),
DaoFeaturesProposalExecuteUrgent { enable, disable } => {
dao_features_proposal_execute_urgent(enable, disable)
}
DaoFeatuersProposalPropose {
DaoFeaturesProposalPropose {
enable,
disable,
exec_delay,
} => dao_featuers_proposal_propose(enable, disable, exec_delay),
} => dao_features_proposal_propose(enable, disable, exec_delay),
DaoModifyConfigProposalExecute {
token_t,
proposer_address,
Expand Down Expand Up @@ -1362,14 +1362,14 @@ pub fn dao_queue_proposal_action(
}

/// Once the proposal is agreed, anyone can call the method to make the proposal happen.
pub fn dao_featuers_proposal_execute(
pub fn dao_features_proposal_execute(
proposal_adderss: AccountAddress,
proposal_id: u64,
) -> TransactionPayload {
TransactionPayload::EntryFunction(EntryFunction::new(
ModuleId::new(
AccountAddress::new([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]),
ident_str!("dao_featuers_proposal").to_owned(),
ident_str!("dao_features_proposal").to_owned(),
),
ident_str!("execute").to_owned(),
vec![],
Expand All @@ -1380,14 +1380,14 @@ pub fn dao_featuers_proposal_execute(
))
}

pub fn dao_featuers_proposal_execute_urgent(
pub fn dao_features_proposal_execute_urgent(
enable: Vec<u64>,
disable: Vec<u64>,
) -> TransactionPayload {
TransactionPayload::EntryFunction(EntryFunction::new(
ModuleId::new(
AccountAddress::new([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]),
ident_str!("dao_featuers_proposal").to_owned(),
ident_str!("dao_features_proposal").to_owned(),
),
ident_str!("execute_urgent").to_owned(),
vec![],
Expand All @@ -1399,15 +1399,15 @@ pub fn dao_featuers_proposal_execute_urgent(
}

/// Entrypoint for the proposal.
pub fn dao_featuers_proposal_propose(
pub fn dao_features_proposal_propose(
enable: Vec<u64>,
disable: Vec<u64>,
exec_delay: u64,
) -> TransactionPayload {
TransactionPayload::EntryFunction(EntryFunction::new(
ModuleId::new(
AccountAddress::new([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]),
ident_str!("dao_featuers_proposal").to_owned(),
ident_str!("dao_features_proposal").to_owned(),
),
ident_str!("propose").to_owned(),
vec![],
Expand Down Expand Up @@ -2603,11 +2603,11 @@ mod decoder {
}
}

pub fn dao_featuers_proposal_execute(
pub fn dao_features_proposal_execute(
payload: &TransactionPayload,
) -> Option<EntryFunctionCall> {
if let TransactionPayload::EntryFunction(script) = payload {
Some(EntryFunctionCall::DaoFeatuersProposalExecute {
Some(EntryFunctionCall::DaoFeaturesProposalExecute {
proposal_adderss: bcs::from_bytes(script.args().get(0)?).ok()?,
proposal_id: bcs::from_bytes(script.args().get(1)?).ok()?,
})
Expand All @@ -2616,11 +2616,11 @@ mod decoder {
}
}

pub fn dao_featuers_proposal_execute_urgent(
pub fn dao_features_proposal_execute_urgent(
payload: &TransactionPayload,
) -> Option<EntryFunctionCall> {
if let TransactionPayload::EntryFunction(script) = payload {
Some(EntryFunctionCall::DaoFeatuersProposalExecuteUrgent {
Some(EntryFunctionCall::DaoFeaturesProposalExecuteUrgent {
enable: bcs::from_bytes(script.args().get(0)?).ok()?,
disable: bcs::from_bytes(script.args().get(1)?).ok()?,
})
Expand All @@ -2629,11 +2629,11 @@ mod decoder {
}
}

pub fn dao_featuers_proposal_propose(
pub fn dao_features_proposal_propose(
payload: &TransactionPayload,
) -> Option<EntryFunctionCall> {
if let TransactionPayload::EntryFunction(script) = payload {
Some(EntryFunctionCall::DaoFeatuersProposalPropose {
Some(EntryFunctionCall::DaoFeaturesProposalPropose {
enable: bcs::from_bytes(script.args().get(0)?).ok()?,
disable: bcs::from_bytes(script.args().get(1)?).ok()?,
exec_delay: bcs::from_bytes(script.args().get(2)?).ok()?,
Expand Down Expand Up @@ -3436,16 +3436,16 @@ static SCRIPT_FUNCTION_DECODER_MAP: once_cell::sync::Lazy<EntryFunctionDecoderMa
Box::new(decoder::dao_queue_proposal_action),
);
map.insert(
"dao_featuers_proposal_execute".to_string(),
Box::new(decoder::dao_featuers_proposal_execute),
"dao_features_proposal_execute".to_string(),
Box::new(decoder::dao_features_proposal_execute),
);
map.insert(
"dao_featuers_proposal_execute_urgent".to_string(),
Box::new(decoder::dao_featuers_proposal_execute_urgent),
"dao_features_proposal_execute_urgent".to_string(),
Box::new(decoder::dao_features_proposal_execute_urgent),
);
map.insert(
"dao_featuers_proposal_propose".to_string(),
Box::new(decoder::dao_featuers_proposal_propose),
"dao_features_proposal_propose".to_string(),
Box::new(decoder::dao_features_proposal_propose),
);
map.insert(
"dao_modify_config_proposal_execute".to_string(),
Expand Down
Binary file modified vm/framework/releases/testnet.mrb
Binary file not shown.
54 changes: 27 additions & 27 deletions vm/framework/starcoin-framework/doc/dao_features_proposal.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@

<a id="0x1_dao_featuers_proposal"></a>
<a id="0x1_dao_features_proposal"></a>

# Module `0x1::dao_featuers_proposal`
# Module `0x1::dao_features_proposal`



- [Struct `FeaturesUpdate`](#0x1_dao_featuers_proposal_FeaturesUpdate)
- [Struct `FeaturesUpdate`](#0x1_dao_features_proposal_FeaturesUpdate)
- [Constants](#@Constants_0)
- [Function `propose`](#0x1_dao_featuers_proposal_propose)
- [Function `execute`](#0x1_dao_featuers_proposal_execute)
- [Function `execute_urgent`](#0x1_dao_featuers_proposal_execute_urgent)
- [Function `propose`](#0x1_dao_features_proposal_propose)
- [Function `execute`](#0x1_dao_features_proposal_execute)
- [Function `execute_urgent`](#0x1_dao_features_proposal_execute_urgent)
- [Specification](#@Specification_1)


Expand All @@ -25,13 +25,13 @@



<a id="0x1_dao_featuers_proposal_FeaturesUpdate"></a>
<a id="0x1_dao_features_proposal_FeaturesUpdate"></a>

## Struct `FeaturesUpdate`



<pre><code><b>struct</b> <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_FeaturesUpdate">FeaturesUpdate</a> <b>has</b> <b>copy</b>, drop, store
<pre><code><b>struct</b> <a href="dao_features_proposal.md#0x1_dao_features_proposal_FeaturesUpdate">FeaturesUpdate</a> <b>has</b> <b>copy</b>, drop, store
</code></pre>


Expand Down Expand Up @@ -63,32 +63,32 @@
## Constants


<a id="0x1_dao_featuers_proposal_E_NOT_ANY_FLAGS"></a>
<a id="0x1_dao_features_proposal_E_NOT_ANY_FLAGS"></a>



<pre><code><b>const</b> <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_E_NOT_ANY_FLAGS">E_NOT_ANY_FLAGS</a>: u64 = 2;
<pre><code><b>const</b> <a href="dao_features_proposal.md#0x1_dao_features_proposal_E_NOT_ANY_FLAGS">E_NOT_ANY_FLAGS</a>: u64 = 2;
</code></pre>



<a id="0x1_dao_featuers_proposal_E_NOT_AUTHORIZED"></a>
<a id="0x1_dao_features_proposal_E_NOT_AUTHORIZED"></a>



<pre><code><b>const</b> <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_E_NOT_AUTHORIZED">E_NOT_AUTHORIZED</a>: u64 = 1;
<pre><code><b>const</b> <a href="dao_features_proposal.md#0x1_dao_features_proposal_E_NOT_AUTHORIZED">E_NOT_AUTHORIZED</a>: u64 = 1;
</code></pre>



<a id="0x1_dao_featuers_proposal_propose"></a>
<a id="0x1_dao_features_proposal_propose"></a>

## Function `propose`

Entrypoint for the proposal.


<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_propose">propose</a>(<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>: &<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>, enable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;, disable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;, exec_delay: u64)
<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_features_proposal_propose">propose</a>(<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>: &<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>, enable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;, disable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;, exec_delay: u64)
</code></pre>


Expand All @@ -97,36 +97,36 @@ Entrypoint for the proposal.
<summary>Implementation</summary>


<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_propose">propose</a>(
<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_features_proposal_propose">propose</a>(
<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>: &<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>,
enable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;,
disable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;,
exec_delay: u64,
) {
<b>assert</b>!(
!<a href="../../move-stdlib/doc/vector.md#0x1_vector_is_empty">vector::is_empty</a>(&enable) || !<a href="../../move-stdlib/doc/vector.md#0x1_vector_is_empty">vector::is_empty</a>(&disable),
<a href="../../move-stdlib/doc/error.md#0x1_error_invalid_argument">error::invalid_argument</a>(<a href="dao_features_proposal.md#0x1_dao_featuers_proposal_E_NOT_ANY_FLAGS">E_NOT_ANY_FLAGS</a>)
<a href="../../move-stdlib/doc/error.md#0x1_error_invalid_argument">error::invalid_argument</a>(<a href="dao_features_proposal.md#0x1_dao_features_proposal_E_NOT_ANY_FLAGS">E_NOT_ANY_FLAGS</a>)
);
<b>let</b> action = <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_FeaturesUpdate">FeaturesUpdate</a> {
<b>let</b> action = <a href="dao_features_proposal.md#0x1_dao_features_proposal_FeaturesUpdate">FeaturesUpdate</a> {
enable,
disable,
};
<a href="dao.md#0x1_dao_propose">dao::propose</a>&lt;STC, <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_FeaturesUpdate">FeaturesUpdate</a>&gt;(<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>, action, exec_delay);
<a href="dao.md#0x1_dao_propose">dao::propose</a>&lt;STC, <a href="dao_features_proposal.md#0x1_dao_features_proposal_FeaturesUpdate">FeaturesUpdate</a>&gt;(<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>, action, exec_delay);
}
</code></pre>



</details>

<a id="0x1_dao_featuers_proposal_execute"></a>
<a id="0x1_dao_features_proposal_execute"></a>

## Function `execute`

Once the proposal is agreed, anyone can call the method to make the proposal happen.


<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_execute">execute</a>(proposal_adderss: <b>address</b>, proposal_id: u64)
<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_features_proposal_execute">execute</a>(proposal_adderss: <b>address</b>, proposal_id: u64)
</code></pre>


Expand All @@ -135,11 +135,11 @@ Once the proposal is agreed, anyone can call the method to make the proposal hap
<summary>Implementation</summary>


<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_execute">execute</a>(proposal_adderss: <b>address</b>, proposal_id: u64) {
<b>let</b> <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_FeaturesUpdate">FeaturesUpdate</a> {
<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_features_proposal_execute">execute</a>(proposal_adderss: <b>address</b>, proposal_id: u64) {
<b>let</b> <a href="dao_features_proposal.md#0x1_dao_features_proposal_FeaturesUpdate">FeaturesUpdate</a> {
enable,
disable,
} = <a href="dao.md#0x1_dao_extract_proposal_action">dao::extract_proposal_action</a>&lt;STC, <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_FeaturesUpdate">FeaturesUpdate</a>&gt;(
} = <a href="dao.md#0x1_dao_extract_proposal_action">dao::extract_proposal_action</a>&lt;STC, <a href="dao_features_proposal.md#0x1_dao_features_proposal_FeaturesUpdate">FeaturesUpdate</a>&gt;(
proposal_adderss,
proposal_id
);
Expand All @@ -153,13 +153,13 @@ Once the proposal is agreed, anyone can call the method to make the proposal hap

</details>

<a id="0x1_dao_featuers_proposal_execute_urgent"></a>
<a id="0x1_dao_features_proposal_execute_urgent"></a>

## Function `execute_urgent`



<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_execute_urgent">execute_urgent</a>(core_resource: &<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>, enable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;, disable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;)
<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_features_proposal_execute_urgent">execute_urgent</a>(core_resource: &<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>, enable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;, disable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;)
</code></pre>


Expand All @@ -168,8 +168,8 @@ Once the proposal is agreed, anyone can call the method to make the proposal hap
<summary>Implementation</summary>


<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_featuers_proposal_execute_urgent">execute_urgent</a>(core_resource: &<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>, enable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;, disable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;) {
<b>assert</b>!(<a href="../../move-stdlib/doc/signer.md#0x1_signer_address_of">signer::address_of</a>(core_resource) == @core_resources, <a href="../../move-stdlib/doc/error.md#0x1_error_unauthenticated">error::unauthenticated</a>(<a href="dao_features_proposal.md#0x1_dao_featuers_proposal_E_NOT_AUTHORIZED">E_NOT_AUTHORIZED</a>));
<pre><code><b>public</b> entry <b>fun</b> <a href="dao_features_proposal.md#0x1_dao_features_proposal_execute_urgent">execute_urgent</a>(core_resource: &<a href="../../move-stdlib/doc/signer.md#0x1_signer">signer</a>, enable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;, disable: <a href="../../move-stdlib/doc/vector.md#0x1_vector">vector</a>&lt;u64&gt;) {
<b>assert</b>!(<a href="../../move-stdlib/doc/signer.md#0x1_signer_address_of">signer::address_of</a>(core_resource) == @core_resources, <a href="../../move-stdlib/doc/error.md#0x1_error_unauthenticated">error::unauthenticated</a>(<a href="dao_features_proposal.md#0x1_dao_features_proposal_E_NOT_AUTHORIZED">E_NOT_AUTHORIZED</a>));
<b>let</b> framework = &<a href="create_signer.md#0x1_create_signer">create_signer</a>(@starcoin_framework);
<a href="../../move-stdlib/doc/features.md#0x1_features_change_feature_flags_for_next_epoch">features::change_feature_flags_for_next_epoch</a>(framework, enable, disable);
<a href="../../move-stdlib/doc/features.md#0x1_features_on_new_epoch">features::on_new_epoch</a>(framework);
Expand Down
Loading
Loading