Skip to content

Commit 67bab41

Browse files
welannronny-mysten
andauthored
[Examples] Rewrite the examples code using the syntax in move2024 to improve readability (MystenLabs#21653)
## Description When I was reading the example code, I noticed that the code was written in different styles. If necessary, I could rewrite them all using updated syntax to improve readability. ## Test plan Passed local testing without modifying any functionality. --------- Co-authored-by: ronny-mysten <[email protected]>
1 parent 7a1cb5a commit 67bab41

File tree

6 files changed

+192
-192
lines changed

6 files changed

+192
-192
lines changed

examples/move/basics/sources/counter.move

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ module basics::counter {
2626
public fun create(ctx: &mut TxContext) {
2727
transfer::share_object(Counter {
2828
id: object::new(ctx),
29-
owner: tx_context::sender(ctx),
29+
owner: ctx.sender(),
3030
value: 0,
3131
})
3232
}

examples/move/color_object/sources/example.move

Lines changed: 49 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -56,28 +56,28 @@ fun test_create() {
5656

5757
// Create a ColorObject and transfer it to its owner.
5858
{
59-
ts::next_tx(&mut ts, alice);
60-
let color = new(255, 0, 255, ts::ctx(&mut ts));
59+
ts.next_tx(alice);
60+
let color = new(255, 0, 255, ts.ctx());
6161
transfer::public_transfer(color, alice);
6262
};
6363

6464
// Check that @not_owner does not own the just-created ColorObject.
6565
{
66-
ts::next_tx(&mut ts, bob);
67-
assert!(!ts::has_most_recent_for_sender<ColorObject>(&ts), 0);
66+
ts.next_tx(bob);
67+
assert!(!ts.has_most_recent_for_sender<ColorObject>(), 0);
6868
};
6969

7070
// Check that owner indeed owns the just-created ColorObject.
7171
// Also checks the value fields of the object.
7272
{
73-
ts::next_tx(&mut ts, alice);
74-
let object: ColorObject = ts::take_from_sender(&ts);
75-
let (red, green, blue) = get_color(&object);
73+
ts.next_tx(alice);
74+
let object: ColorObject = ts.take_from_sender();
75+
let (red, green, blue) = object.get_color();
7676
assert!(red == 255 && green == 0 && blue == 255, 0);
77-
ts::return_to_sender(&ts, object);
77+
ts.return_to_sender(object)
7878
};
7979

80-
ts::end(ts);
80+
ts.end();
8181
}
8282

8383
// === Tests covered in Chapter 2 ===
@@ -89,45 +89,41 @@ fun test_copy_into() {
8989

9090
// Create two ColorObjects owned by `owner`, and obtain their IDs.
9191
let (id1, id2) = {
92-
ts::next_tx(&mut ts, owner);
93-
let ctx = ts::ctx(&mut ts);
92+
ts.next_tx(owner);
93+
let ctx = ts.ctx();
9494

9595
let c = new(255, 255, 255, ctx);
9696
transfer::public_transfer(c, owner);
97-
let id1 = object::id_from_address(
98-
tx_context::last_created_object_id(ctx),
99-
);
97+
let id1 = object::id_from_address(ctx.last_created_object_id());
10098

10199
let c = new(0, 0, 0, ctx);
102100
transfer::public_transfer(c, owner);
103-
let id2 = object::id_from_address(
104-
tx_context::last_created_object_id(ctx),
105-
);
101+
let id2 = object::id_from_address(ctx.last_created_object_id());
106102

107103
(id1, id2)
108104
};
109105

110106
{
111-
ts::next_tx(&mut ts, owner);
112-
let mut obj1: ColorObject = ts::take_from_sender_by_id(&ts, id1);
113-
let obj2: ColorObject = ts::take_from_sender_by_id(&ts, id2);
114-
let (red, green, blue) = get_color(&obj1);
107+
ts.next_tx(owner);
108+
let mut obj1: ColorObject = ts.take_from_sender_by_id(id1);
109+
let obj2: ColorObject = ts.take_from_sender_by_id(id2);
110+
let (red, green, blue) = obj1.get_color();
115111
assert!(red == 255 && green == 255 && blue == 255, 0);
116112

117-
copy_into(&obj2, &mut obj1);
118-
ts::return_to_sender(&ts, obj1);
119-
ts::return_to_sender(&ts, obj2);
113+
obj2.copy_into(&mut obj1);
114+
ts.return_to_sender(obj1);
115+
ts.return_to_sender(obj2);
120116
};
121117

122118
{
123-
ts::next_tx(&mut ts, owner);
124-
let obj1: ColorObject = ts::take_from_sender_by_id(&ts, id1);
125-
let (red, green, blue) = get_color(&obj1);
119+
ts.next_tx(owner);
120+
let obj1: ColorObject = ts.take_from_sender_by_id(id1);
121+
let (red, green, blue) = obj1.get_color();
126122
assert!(red == 0 && green == 0 && blue == 0, 0);
127-
ts::return_to_sender(&ts, obj1);
123+
ts.return_to_sender(obj1);
128124
};
129125

130-
ts::end(ts);
126+
ts.end();
131127
}
132128

133129
#[test]
@@ -137,25 +133,25 @@ fun test_delete() {
137133

138134
// Create a ColorObject and transfer it to owner.
139135
{
140-
ts::next_tx(&mut ts, owner);
141-
let c = new(255, 0, 255, ts::ctx(&mut ts));
136+
ts.next_tx(owner);
137+
let c = new(255, 0, 255, ts.ctx());
142138
transfer::public_transfer(c, owner);
143139
};
144140

145141
// Delete the ColorObject we just created.
146142
{
147-
ts::next_tx(&mut ts, owner);
148-
let object: ColorObject = ts::take_from_sender(&ts);
143+
ts.next_tx(owner);
144+
let object: ColorObject = ts.take_from_sender();
149145
delete(object);
150146
};
151147

152148
// Verify that the object was indeed deleted.
153149
{
154-
ts::next_tx(&mut ts, owner);
155-
assert!(!ts::has_most_recent_for_sender<ColorObject>(&ts), 0);
150+
ts.next_tx(owner);
151+
assert!(!ts.has_most_recent_for_sender<ColorObject>(), 0);
156152
};
157153

158-
ts::end(ts);
154+
ts.end();
159155
}
160156

161157
#[test]
@@ -166,31 +162,31 @@ fun test_transfer() {
166162

167163
// Create a ColorObject and transfer it to sender.
168164
{
169-
ts::next_tx(&mut ts, sender);
170-
let c = new(255, 0, 255, ts::ctx(&mut ts));
165+
ts.next_tx(sender);
166+
let c = new(255, 0, 255, ts.ctx());
171167
transfer::public_transfer(c, @0xA);
172168
};
173169

174170
// Transfer the object to recipient.
175171
{
176-
ts::next_tx(&mut ts, sender);
177-
let object: ColorObject = ts::take_from_sender(&ts);
172+
ts.next_tx(sender);
173+
let object: ColorObject = ts.take_from_sender();
178174
transfer::public_transfer(object, recipient);
179175
};
180176

181177
// Check that sender no longer owns the object.
182178
{
183-
ts::next_tx(&mut ts, sender);
184-
assert!(!ts::has_most_recent_for_sender<ColorObject>(&ts), 0);
179+
ts.next_tx(sender);
180+
assert!(!ts.has_most_recent_for_sender<ColorObject>(), 0);
185181
};
186182

187183
// Check that recipient now owns the object.
188184
{
189-
ts::next_tx(&mut ts, recipient);
190-
assert!(ts::has_most_recent_for_sender<ColorObject>(&ts), 0);
185+
ts.next_tx(recipient);
186+
assert!(ts.has_most_recent_for_sender<ColorObject>(), 0);
191187
};
192188

193-
ts::end(ts);
189+
ts.end();
194190
}
195191

196192
// === Tests covered in Chapter 3 ===
@@ -202,25 +198,25 @@ fun test_immutable() {
202198
let bob = @0xB;
203199

204200
{
205-
ts::next_tx(&mut ts, alice);
206-
let c = new(255, 0, 255, ts::ctx(&mut ts));
201+
ts.next_tx(alice);
202+
let c = new(255, 0, 255, ts.ctx());
207203
transfer::public_freeze_object(c);
208204
};
209205

210206
// take_owned does not work for immutable objects.
211207
{
212-
ts::next_tx(&mut ts, alice);
213-
assert!(!ts::has_most_recent_for_sender<ColorObject>(&ts), 0);
208+
ts.next_tx(alice);
209+
assert!(!ts.has_most_recent_for_sender<ColorObject>(), 0);
214210
};
215211

216212
// Any sender can work.
217213
{
218-
ts::next_tx(&mut ts, bob);
219-
let object: ColorObject = ts::take_immutable(&ts);
220-
let (red, green, blue) = get_color(&object);
214+
ts.next_tx(bob);
215+
let object: ColorObject = ts.take_immutable();
216+
let (red, green, blue) = object.get_color();
221217
assert!(red == 255 && green == 0 && blue == 255, 0);
222218
ts::return_immutable(object);
223219
};
224220

225-
ts::end(ts);
221+
ts.end();
226222
}

examples/move/dynamic_fields/sources/example.move

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -53,43 +53,43 @@ use sui::test_scenario;
5353
#[test]
5454
fun test_add_delete() {
5555
let mut ts = test_scenario::begin(@0xA);
56-
let ctx = test_scenario::ctx(&mut ts);
56+
let ctx = ts.ctx();
5757

5858
let mut p = Parent { id: object::new(ctx) };
59-
add_child(&mut p, Child { id: object::new(ctx), count: 0 });
59+
p.add_child(Child { id: object::new(ctx), count: 0 });
6060

61-
mutate_child_via_parent(&mut p);
62-
delete_child(&mut p);
61+
p.mutate_child_via_parent();
62+
p.delete_child();
6363

6464
let Parent { id } = p;
65-
object::delete(id);
65+
id.delete();
6666

67-
test_scenario::end(ts);
67+
ts.end();
6868
}
6969

7070
#[test]
7171
fun test_add_reclaim() {
7272
let mut ts = test_scenario::begin(@0xA);
73-
let ctx = test_scenario::ctx(&mut ts);
73+
let ctx = ts.ctx();
7474

7575
let mut p = Parent { id: object::new(ctx) };
76-
add_child(&mut p, Child { id: object::new(ctx), count: 0 });
76+
p.add_child(Child { id: object::new(ctx), count: 0 });
7777

78-
mutate_child_via_parent(&mut p);
78+
p.mutate_child_via_parent();
7979

80-
let mut c = reclaim_child(&mut p);
80+
let mut c = p.reclaim_child();
8181
assert!(c.count == 1, 0);
8282

83-
mutate_child(&mut c);
83+
c.mutate_child();
8484
assert!(c.count == 2, 1);
8585

8686
let Child { id, count: _ } = c;
87-
object::delete(id);
87+
id.delete();
8888

8989
let Parent { id } = p;
90-
object::delete(id);
90+
id.delete();
9191

92-
test_scenario::end(ts);
92+
ts.end();
9393
}
9494

9595
#[test]
@@ -98,13 +98,13 @@ fun test_add_reclaim() {
9898
/// inaccessible.
9999
fun test_delete_with_child_attached() {
100100
let mut ts = test_scenario::begin(@0xA);
101-
let ctx = test_scenario::ctx(&mut ts);
101+
let ctx = ts.ctx();
102102

103103
let mut p = Parent { id: object::new(ctx) };
104-
add_child(&mut p, Child { id: object::new(ctx), count: 0 });
104+
p.add_child(Child { id: object::new(ctx), count: 0 });
105105

106106
let Parent { id } = p;
107-
object::delete(id);
107+
id.delete();
108108

109-
test_scenario::end(ts);
109+
ts.end();
110110
}

examples/move/entry_functions/sources/example.move

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ entry fun share(bar: u64, ctx: &mut TxContext) {
2121
/// transaction block (like `foo`, below) must be inputs to the
2222
/// transaction block, and not results of previous transactions.
2323
entry fun update(foo: &mut Foo, ctx: &TxContext) {
24-
foo.bar = tx_context::epoch(ctx);
24+
foo.bar = ctx.epoch();
2525
}
2626

2727
/// Entry functions can return types that have `drop`.

0 commit comments

Comments
 (0)