Skip to content

Commit

Permalink
Add DAO nft image and member image (#96)
Browse files Browse the repository at this point in the history
* Add DAO nft image and member image

* Fix test

* Fix exp

* fix exp

* restoring integration test

* Fix checkpoints_test and Fix ensure_not_member
  • Loading branch information
WGB5445 committed Aug 30, 2022
1 parent 82032cc commit 2c89bbc
Show file tree
Hide file tree
Showing 17 changed files with 154 additions and 76 deletions.
2 changes: 1 addition & 1 deletion build/StarcoinFramework/BuildInfo.yaml
Expand Up @@ -300,7 +300,7 @@ compiled_package_info:
? address: "0x00000000000000000000000000000001"
name: YieldFarmingV2
: StarcoinFramework
source_digest: 954ABD7FF4FEE4DA9E7A4FE93042FFEB6F8A451572BCF05899AED27928F1CD47
source_digest: C3F10D8763E687130581034F694C48F86494655044F4BC0919B011480303FC2C
build_flags:
dev_mode: false
test_mode: false
Expand Down
Binary file modified build/StarcoinFramework/bytecode_modules/MemberProposalPlugin.mv
Binary file not shown.
23 changes: 19 additions & 4 deletions build/StarcoinFramework/docs/MemberProposalPlugin.md
Expand Up @@ -15,6 +15,7 @@

<pre><code><b>use</b> <a href="DAOSpace.md#0x1_DAOSpace">0x1::DAOSpace</a>;
<b>use</b> <a href="InstallPluginProposalPlugin.md#0x1_InstallPluginProposalPlugin">0x1::InstallPluginProposalPlugin</a>;
<b>use</b> <a href="Option.md#0x1_Option">0x1::Option</a>;
<b>use</b> <a href="Vector.md#0x1_Vector">0x1::Vector</a>;
</code></pre>

Expand Down Expand Up @@ -74,6 +75,18 @@
</dt>
<dd>

</dd>
<dt>
<code>image_url: vector&lt;u8&gt;</code>
</dt>
<dd>

</dd>
<dt>
<code>image_data: vector&lt;u8&gt;</code>
</dt>
<dd>

</dd>
</dl>

Expand Down Expand Up @@ -112,7 +125,7 @@



<pre><code><b>public</b>(<b>script</b>) <b>fun</b> <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin_create_proposal">create_proposal</a>&lt;DAOT: store&gt;(sender: signer, description: vector&lt;u8&gt;, member: <b>address</b>, init_sbt: u128, action_delay: u64)
<pre><code><b>public</b>(<b>script</b>) <b>fun</b> <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin_create_proposal">create_proposal</a>&lt;DAOT: store&gt;(sender: signer, description: vector&lt;u8&gt;, member: <b>address</b>, image_data: vector&lt;u8&gt;, image_url: vector&lt;u8&gt;, init_sbt: u128, action_delay: u64)
</code></pre>


Expand All @@ -121,12 +134,14 @@
<summary>Implementation</summary>


<pre><code><b>public</b> (<b>script</b>) <b>fun</b> <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin_create_proposal">create_proposal</a>&lt;DAOT: store&gt;(sender: signer, description: vector&lt;u8&gt;, member: <b>address</b>, init_sbt: u128, action_delay: u64){
<pre><code><b>public</b> (<b>script</b>) <b>fun</b> <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin_create_proposal">create_proposal</a>&lt;DAOT: store&gt;(sender: signer, description: vector&lt;u8&gt;, member: <b>address</b>, image_data:vector&lt;u8&gt;, image_url:vector&lt;u8&gt;, init_sbt: u128, action_delay: u64){
<b>let</b> witness = <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin">MemberProposalPlugin</a>{};
<b>let</b> cap = <a href="DAOSpace.md#0x1_DAOSpace_acquire_proposal_cap">DAOSpace::acquire_proposal_cap</a>&lt;DAOT, <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin">MemberProposalPlugin</a>&gt;(&witness);
<b>let</b> action = <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin_MemberJoinAction">MemberJoinAction</a>{
member,
init_sbt,
image_data,
image_url
};
<a href="DAOSpace.md#0x1_DAOSpace_create_proposal">DAOSpace::create_proposal</a>(&cap, &sender, action, description, action_delay);
}
Expand Down Expand Up @@ -154,9 +169,9 @@
<pre><code><b>public</b> (<b>script</b>) <b>fun</b> <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin_execute_proposal">execute_proposal</a>&lt;DAOT: store&gt;(sender: signer, proposal_id: u64){
<b>let</b> witness = <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin">MemberProposalPlugin</a>{};
<b>let</b> proposal_cap = <a href="DAOSpace.md#0x1_DAOSpace_acquire_proposal_cap">DAOSpace::acquire_proposal_cap</a>&lt;DAOT, <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin">MemberProposalPlugin</a>&gt;(&witness);
<b>let</b> <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin_MemberJoinAction">MemberJoinAction</a>{member, init_sbt} = <a href="DAOSpace.md#0x1_DAOSpace_execute_proposal">DAOSpace::execute_proposal</a>&lt;DAOT, <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin">MemberProposalPlugin</a>, <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin_MemberJoinAction">MemberJoinAction</a>&gt;(&proposal_cap, &sender, proposal_id);
<b>let</b> <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin_MemberJoinAction">MemberJoinAction</a>{member, init_sbt, image_data, image_url} = <a href="DAOSpace.md#0x1_DAOSpace_execute_proposal">DAOSpace::execute_proposal</a>&lt;DAOT, <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin">MemberProposalPlugin</a>, <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin_MemberJoinAction">MemberJoinAction</a>&gt;(&proposal_cap, &sender, proposal_id);
<b>let</b> member_cap = <a href="DAOSpace.md#0x1_DAOSpace_acquire_member_cap">DAOSpace::acquire_member_cap</a>&lt;DAOT, <a href="MemberProposalPlugin.md#0x1_MemberProposalPlugin">MemberProposalPlugin</a>&gt;(&witness);
<a href="DAOSpace.md#0x1_DAOSpace_join_member">DAOSpace::join_member</a>(&member_cap, member, init_sbt);
<a href="DAOSpace.md#0x1_DAOSpace_join_member">DAOSpace::join_member</a>(&member_cap, member, <a href="Option.md#0x1_Option_some">Option::some</a>(image_data), <a href="Option.md#0x1_Option_some">Option::some</a>(image_url) , init_sbt);
}
</code></pre>

Expand Down
Binary file modified build/StarcoinFramework/source_maps/MemberProposalPlugin.mvsm
Binary file not shown.
16 changes: 8 additions & 8 deletions integration-tests/daospace/dao_grant.exp
Expand Up @@ -16,25 +16,25 @@ task 5 'run'. lines 13-21:
}
}

task 8 'run'. lines 99-108:
task 8 'run'. lines 100-109:
{
"gas_used": 1159993,
"gas_used": 1174718,
"status": "Executed"
}

task 9 'run'. lines 110-129:
task 9 'run'. lines 111-130:
{
"gas_used": 315396,
"status": "Executed"
}

task 10 'run'. lines 131-165:
task 10 'run'. lines 132-166:
{
"gas_used": 561697,
"status": "Executed"
}

task 12 'run'. lines 169-181:
task 12 'run'. lines 170-182:
{
"gas_used": 52853,
"status": {
Expand All @@ -50,19 +50,19 @@ task 12 'run'. lines 169-181:
}
}

task 13 'run'. lines 183-203:
task 13 'run'. lines 184-204:
{
"gas_used": 241369,
"status": "Executed"
}

task 15 'run'. lines 207-227:
task 15 'run'. lines 208-228:
{
"gas_used": 229003,
"status": "Executed"
}

task 16 'run'. lines 229-243:
task 16 'run'. lines 230-244:
{
"gas_used": 192361,
"status": "Executed"
Expand Down
5 changes: 3 additions & 2 deletions integration-tests/daospace/dao_grant.move
Expand Up @@ -28,7 +28,8 @@ module creator::DAOHelper {
use StarcoinFramework::InstallPluginProposalPlugin::{Self, InstallPluginProposalPlugin};
use StarcoinFramework::Vector;
use StarcoinFramework::STC;

use StarcoinFramework::Option;

struct X has store, copy, drop{}

const NAME: vector<u8> = b"X";
Expand All @@ -52,7 +53,7 @@ module creator::DAOHelper {
min_action_delay,
min_proposal_deposit,
);
let dao_root_cap = DAOSpace::create_dao<X>(dao_account_cap, *&NAME, b"ipfs://description", X{}, config);
let dao_root_cap = DAOSpace::create_dao<X>(dao_account_cap, *&NAME, Option::none<vector<u8>>(), Option::none<vector<u8>>(), b"ipfs://description", X{}, config);

DAOSpace::install_plugin_with_root_cap<X, InstallPluginProposalPlugin>(&dao_root_cap, InstallPluginProposalPlugin::required_caps());
DAOSpace::install_plugin_with_root_cap<X, AnyMemberPlugin>(&dao_root_cap, AnyMemberPlugin::required_caps());
Expand Down
@@ -1,42 +1,42 @@
processed 42 tasks

task 7 'run'. lines 149-158:
task 7 'run'. lines 150-159:
{
"gas_used": 1157196,
"gas_used": 1171921,
"status": "Executed"
}

task 8 'run'. lines 162-176:
task 8 'run'. lines 163-177:
{
"gas_used": 109239,
"status": "Executed"
}

task 9 'run'. lines 178-203:
task 9 'run'. lines 179-204:
{
"gas_used": 306386,
"status": "Executed"
}

task 11 'run'. lines 208-224:
task 11 'run'. lines 209-225:
{
"gas_used": 221171,
"gas_used": 235032,
"status": "Executed"
}

task 12 'run'. lines 226-242:
task 12 'run'. lines 227-243:
{
"gas_used": 221171,
"gas_used": 235032,
"status": "Executed"
}

task 16 'run'. lines 250-264:
task 16 'run'. lines 251-265:
{
"gas_used": 104944,
"status": "Executed"
}

task 19 'run'. lines 271-284:
task 19 'run'. lines 272-285:
{
"gas_used": 532278,
"status": {
Expand All @@ -52,46 +52,46 @@ task 19 'run'. lines 271-284:
}
}

task 22 'run'. lines 291-302:
task 22 'run'. lines 292-303:
{
"gas_used": 577624,
"status": "Executed"
}

task 23 'run'. lines 305-324:
task 23 'run'. lines 306-325:
{
"gas_used": 461617,
"status": "Executed"
}

task 25 'run'. lines 328-337:
task 25 'run'. lines 329-338:
{
"gas_used": 11943,
"status": "Executed"
}

task 26 'call'. lines 339-339:
task 26 'call'. lines 340-340:
"0xb5d577dc9ce59725e29886632e69ecdf/1/0x00000000000000000000000000000001::IdentifierNFT::IdentifierNFT<0x00000000000000000000000000000001::DAOSpace::DAOMember<0x662ba5a1a1da0f1c70a9762c7eeb7aaf::DAOHelper::X>,0x00000000000000000000000000000001::DAOSpace::DAOMemberBody<0x662ba5a1a1da0f1c70a9762c7eeb7aaf::DAOHelper::X>>"

task 28 'run'. lines 343-362:
task 28 'run'. lines 344-363:
{
"gas_used": 6591445,
"gas_used": 6523189,
"status": "Executed"
}

task 29 'call'. lines 365-365:
task 29 'call'. lines 366-366:
"0xa7dcef9aef26202fce82a7c7d6672afb/1/0x00000000000000000000000000000001::IdentifierNFT::IdentifierNFT<0x00000000000000000000000000000001::DAOSpace::DAOMember<0x662ba5a1a1da0f1c70a9762c7eeb7aaf::DAOHelper::X>,0x00000000000000000000000000000001::DAOSpace::DAOMemberBody<0x662ba5a1a1da0f1c70a9762c7eeb7aaf::DAOHelper::X>>"

task 31 'run'. lines 369-382:
task 31 'run'. lines 370-383:
{
"gas_used": 6264148,
"gas_used": 6195892,
"status": "Executed"
}

task 32 'call'. lines 385-385:
task 32 'call'. lines 386-386:
"0x3d4926eeda5b14b0ac979269ee79e40e/1/0x00000000000000000000000000000001::IdentifierNFT::IdentifierNFT<0x00000000000000000000000000000001::DAOSpace::DAOMember<0x662ba5a1a1da0f1c70a9762c7eeb7aaf::DAOHelper::X>,0x00000000000000000000000000000001::DAOSpace::DAOMemberBody<0x662ba5a1a1da0f1c70a9762c7eeb7aaf::DAOHelper::X>>"

task 34 'run'. lines 389-402:
task 34 'run'. lines 390-403:
{
"gas_used": 35135,
"status": {
Expand All @@ -107,19 +107,19 @@ task 34 'run'. lines 389-402:
}
}

task 36 'run'. lines 407-428:
task 36 'run'. lines 408-429:
{
"gas_used": 134454,
"status": "Executed"
}

task 39 'run'. lines 436-446:
task 39 'run'. lines 437-447:
{
"gas_used": 115663,
"status": "Executed"
}

task 41 'run'. lines 451-463:
task 41 'run'. lines 452-464:
{
"gas_used": 450922,
"status": "Executed"
Expand Down
Expand Up @@ -29,6 +29,7 @@ module creator::DAOHelper {
use StarcoinFramework::InstallPluginProposalPlugin::{Self, InstallPluginProposalPlugin};
use StarcoinFramework::Account;
use StarcoinFramework::Vector;
use StarcoinFramework::Option;

struct X has store, copy, drop{}

Expand Down Expand Up @@ -58,7 +59,7 @@ module creator::DAOHelper {
min_action_delay,
min_proposal_deposit,
);
let dao_root_cap = DAOSpace::create_dao<X>(dao_account_cap, *&NAME, b"ipfs://description", X{}, config);
let dao_root_cap = DAOSpace::create_dao<X>(dao_account_cap, *&NAME, Option::none<vector<u8>>(), Option::none<vector<u8>>(), b"ipfs://description", X{}, config);

DAOSpace::install_plugin_with_root_cap<X, InstallPluginProposalPlugin>(&dao_root_cap, InstallPluginProposalPlugin::required_caps());
DAOSpace::install_plugin_with_root_cap<X, MemberProposalPlugin>(&dao_root_cap, MemberProposalPlugin::required_caps());
Expand Down Expand Up @@ -113,7 +114,7 @@ module creator::DAOHelper {
public fun member_join<DAOT:store>(to_address: address, init_sbt: u128){
let witness = XPlugin{};
let member_cap = DAOSpace::acquire_member_cap<DAOT, XPlugin>(&witness);
DAOSpace::join_member<DAOT, XPlugin>(&member_cap, to_address, init_sbt);
DAOSpace::join_member<DAOT, XPlugin>(&member_cap, to_address, Option::none<vector<u8>>(), Option::none<vector<u8>>(), init_sbt);
}

struct Checkpoint<phantom DAOt:store> has key{
Expand Down Expand Up @@ -460,4 +461,4 @@ script{
DAOHelper::execute_x_proposal<X, STC>(&sender, proposal_id);
}
}
// check: EXECUTED
// check: EXECUTED
24 changes: 12 additions & 12 deletions integration-tests/daospace/stake_to_sbt_plugin.exp
Expand Up @@ -16,19 +16,19 @@ task 4 'run'. lines 9-17:
}
}

task 6 'run'. lines 60-68:
task 6 'run'. lines 61-69:
{
"gas_used": 1253093,
"gas_used": 1267818,
"status": "Executed"
}

task 7 'run'. lines 70-106:
task 7 'run'. lines 71-107:
{
"gas_used": 556439,
"gas_used": 569616,
"status": "Executed"
}

task 8 'run'. lines 108-119:
task 8 'run'. lines 109-120:
{
"gas_used": 38208,
"status": {
Expand All @@ -44,31 +44,31 @@ task 8 'run'. lines 108-119:
}
}

task 10 'run'. lines 123-136:
task 10 'run'. lines 124-137:
{
"gas_used": 86008,
"status": "Executed"
}

task 11 'run'. lines 138-154:
task 11 'run'. lines 139-155:
{
"gas_used": 337565,
"gas_used": 336881,
"status": "Executed"
}

task 13 'run'. lines 158-171:
task 13 'run'. lines 159-172:
{
"gas_used": 124169,
"status": "Executed"
}

task 14 'run'. lines 173-189:
task 14 'run'. lines 174-190:
{
"gas_used": 459491,
"gas_used": 458402,
"status": "Executed"
}

task 16 'run'. lines 193-208:
task 16 'run'. lines 194-209:
{
"gas_used": 133134,
"status": "Executed"
Expand Down
3 changes: 2 additions & 1 deletion integration-tests/daospace/stake_to_sbt_plugin.move
Expand Up @@ -23,6 +23,7 @@ module creator::XDAO {
use StarcoinFramework::StakeToSBTPlugin::StakeToSBTPlugin;
use StarcoinFramework::StakeToSBTPlugin;
use StarcoinFramework::STC;
use StarcoinFramework::Option;

struct X has store {}

Expand All @@ -45,7 +46,7 @@ module creator::XDAO {
min_action_delay,
min_proposal_deposit,
);
let dao_root_cap = DAOSpace::create_dao<X>(dao_account_cap, *&NAME, b"ipfs://description", X {}, config);
let dao_root_cap = DAOSpace::create_dao<X>(dao_account_cap, *&NAME, Option::none<vector<u8>>(), Option::none<vector<u8>>(),b"ipfs://description", X {}, config);

DAOSpace::install_plugin_with_root_cap<X, StakeToSBTPlugin>(&dao_root_cap, StakeToSBTPlugin::required_caps());
StakeToSBTPlugin::accept_token_with_root_cap<X, STC::STC>(&dao_root_cap);
Expand Down

0 comments on commit 2c89bbc

Please sign in to comment.