Skip to content

Commit 49dae59

Browse files
authored
[using-objects] modify events example (#743)
* [using-objects] modify events example * fix typo * fix typo * add object resource group
1 parent 6e7dc9e commit 49dae59

File tree

1 file changed

+36
-21
lines changed

1 file changed

+36
-21
lines changed

apps/nextra/pages/en/build/smart-contracts/object/using-objects.mdx

+36-21
Original file line numberDiff line numberDiff line change
@@ -205,53 +205,68 @@ Generated event handles can be transferred to the Object as long as you have the
205205
```move filename="example.move"
206206
module 0x42::example {
207207
use aptos_framework::event;
208-
use aptos_framework::fungible_asset::FungibleAsset;
208+
use aptos_framework::fungible_asset::Metadata;
209209
use aptos_framework::object::{Self, Object};
210210
211-
struct LiquidityPoolEventStore has key {
212-
create_events: event::EventHandle<CreateLiquidtyPoolEvent>,
211+
#[resource_group_member(group = aptos_framework::object::ObjectGroup)]
212+
struct LiquidityPoolResourceGroup has key {
213+
pool: LiquidityPool,
214+
event_store: LiquidityPoolEventStore,
215+
}
216+
217+
struct LiquidityPool has store {
218+
metadata_token_a: Object<Metadata>,
219+
metadata_token_b: Object<Metadata>,
220+
reserves_a: u128,
221+
reserves_b: u128,
222+
}
223+
224+
struct LiquidityPoolEventStore has store {
225+
create_events: event::EventHandle<CreateLiquidityPoolEvent>,
213226
}
214227
215-
struct CreateLiquidtyPoolEvent {
228+
#[event]
229+
struct CreateLiquidityPoolEvent has store, drop {
216230
token_a: address,
217231
token_b: address,
218232
reserves_a: u128,
219233
reserves_b: u128,
220234
}
221235
222236
public entry fun create_liquidity_pool_with_events(
223-
token_a: Object<FungibleAsset>,
224-
token_b: Object<FungibleAsset>,
237+
account_signer: &signer,
238+
metadata_token_a: Object<Metadata>,
239+
metadata_token_b: Object<Metadata>,
225240
reserves_a: u128,
226241
reserves_b: u128
227242
) {
228-
let exchange_signer = &get_exchange_signer();
229243
let liquidity_pool_constructor_ref = &object::create_object_from_account(
230-
exchange_signer
244+
account_signer
231245
);
232246
let liquidity_pool_signer = &object::generate_signer(
233247
liquidity_pool_constructor_ref
234248
);
235-
let event_handle = object::new_event_handle<CreateLiquidtyPoolEvent>(
249+
let event_handle = object::new_event_handle<CreateLiquidityPoolEvent>(
236250
liquidity_pool_signer
237251
);
238252
239-
event::emit_event<CreateLiquidtyPoolEvent>(&mut event_handle, CreateLiquidtyPoolEvent {
240-
token_a: object::object_address(&token_a),
241-
token_b: object::object_address(&token_b),
253+
event::emit_event<CreateLiquidityPoolEvent>(&mut event_handle, CreateLiquidityPoolEvent {
254+
token_a: object::object_address(&metadata_token_a),
255+
token_b: object::object_address(&metadata_token_b),
242256
reserves_a,
243257
reserves_b,
244258
});
245259
246-
move_to(liquidity_pool_signer, LiquidityPool {
247-
token_a,
248-
token_b,
249-
reserves_a,
250-
reserves_b
251-
});
252-
253-
move_to(liquidity_pool_signer, LiquidityPoolEventStore {
254-
create_events: event_handle
260+
move_to(liquidity_pool_signer, LiquidityPoolResourceGroup {
261+
pool: LiquidityPool {
262+
metadata_token_a,
263+
metadata_token_b,
264+
reserves_a,
265+
reserves_b
266+
},
267+
event_store: LiquidityPoolEventStore {
268+
create_events: event_handle
269+
}
255270
});
256271
}
257272
}

0 commit comments

Comments
 (0)