Sui mainnet
Verified source
0xefbf…ee10
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10
The pipeline is behind the chain tip0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10
Everything already published is complete and correct; only newer blocks are missing. The chain summary reports this generation as behind the tip.
Verification
- Code hash
- 0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10
- Status
- full match
- Provider
- disassembly of package 0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10 as `sui replay` fetched it at the version that executed
- Compiler
- Language
- move-disassembly
- Bundle
- sha1:bac460e8ea94612a9ba842e825629e38e49fda6d
Sources
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/channel.mvb0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/channel_v2.mvb0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/feed.mvb0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/i16.mvb0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/i64.mvb0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/meta.mvb0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/pyth_lazer.mvb0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/state.mvb0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/update.mvb0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/update_v2.mvb
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/channel.mvb259 lines
1// Move bytecode v7
2module 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580.channel {
3use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::channel_v2;
4
5enum Channel has copy, drop {
6 RealTime { },
7 FixedRate50ms { },
8 FixedRate200ms { }
9}
10
11public new_real_time(): Channel {
12B0:
13 0: PackVariant(VariantHandleIndex(0))
14 1: Ret
15}
16
17public new_fixed_rate_50ms(): Channel {
18B0:
19 0: PackVariant(VariantHandleIndex(1))
20 1: Ret
21}
22
23public new_fixed_rate_200ms(): Channel {
24B0:
25 0: PackVariant(VariantHandleIndex(2))
26 1: Ret
27}
28
29public from_u8(Arg0: u8): Channel {
30L1: loc0: Channel
31L2: loc1: Channel
32B0:
33 0: CopyLoc[0](Arg0: u8)
34 1: LdU8(1)
35 2: Eq
36 3: BrFalse(7)
37B1:
38 4: Call new_real_time(): Channel
39 5: StLoc[2](loc1: Channel)
40 6: Branch(25)
41B2:
42 7: CopyLoc[0](Arg0: u8)
43 8: LdU8(2)
44 9: Eq
45 10: BrFalse(14)
46B3:
47 11: Call new_fixed_rate_50ms(): Channel
48 12: StLoc[1](loc0: Channel)
49 13: Branch(23)
50B4:
51 14: MoveLoc[0](Arg0: u8)
52 15: LdU8(3)
53 16: Eq
54 17: BrFalse(19)
55B5:
56 18: Branch(21)
57B6:
58 19: LdU64(13906834346142072833)
59 20: Abort
60B7:
61 21: Call new_fixed_rate_200ms(): Channel
62 22: StLoc[1](loc0: Channel)
63B8:
64 23: MoveLoc[1](loc0: Channel)
65 24: StLoc[2](loc1: Channel)
66B9:
67 25: MoveLoc[2](loc1: Channel)
68 26: Ret
69}
70
71public is_real_time(Arg0: &Channel): bool {
72L1: loc0: bool
73L2: loc1: &Channel
74B0:
75 0: MoveLoc[0](Arg0: &Channel)
76 1: StLoc[2](loc1: &Channel)
77 2: CopyLoc[2](loc1: &Channel)
78 3: VariantSwitch(VariantJumpTableIndex(0))
79B1:
80 4: MoveLoc[2](loc1: &Channel)
81 5: UnpackVariantImmRef(VariantHandleIndex(0))
82 6: LdTrue
83 7: StLoc[1](loc0: bool)
84 8: Branch(18)
85B2:
86 9: MoveLoc[2](loc1: &Channel)
87 10: Pop
88 11: LdFalse
89 12: StLoc[1](loc0: bool)
90 13: Branch(18)
91B3:
92 14: MoveLoc[2](loc1: &Channel)
93 15: Pop
94 16: LdFalse
95 17: StLoc[1](loc0: bool)
96B4:
97 18: MoveLoc[1](loc0: bool)
98 19: Ret
99Jump tables:
100[0]: variant_switch Channel {
101 Variant0 => jump 4
102 Variant1 => jump 9
103 Variant2 => jump 14
104 }
105}
106
107public is_fixed_rate_50ms(Arg0: &Channel): bool {
108L1: loc0: bool
109L2: loc1: &Channel
110B0:
111 0: MoveLoc[0](Arg0: &Channel)
112 1: StLoc[2](loc1: &Channel)
113 2: CopyLoc[2](loc1: &Channel)
114 3: VariantSwitch(VariantJumpTableIndex(0))
115B1:
116 4: MoveLoc[2](loc1: &Channel)
117 5: Pop
118 6: LdFalse
119 7: StLoc[1](loc0: bool)
120 8: Branch(18)
121B2:
122 9: MoveLoc[2](loc1: &Channel)
123 10: UnpackVariantImmRef(VariantHandleIndex(1))
124 11: LdTrue
125 12: StLoc[1](loc0: bool)
126 13: Branch(18)
127B3:
128 14: MoveLoc[2](loc1: &Channel)
129 15: Pop
130 16: LdFalse
131 17: StLoc[1](loc0: bool)
132B4:
133 18: MoveLoc[1](loc0: bool)
134 19: Ret
135Jump tables:
136[0]: variant_switch Channel {
137 Variant0 => jump 4
138 Variant1 => jump 9
139 Variant2 => jump 14
140 }
141}
142
143public is_fixed_rate_200ms(Arg0: &Channel): bool {
144L1: loc0: bool
145L2: loc1: &Channel
146B0:
147 0: MoveLoc[0](Arg0: &Channel)
148 1: StLoc[2](loc1: &Channel)
149 2: CopyLoc[2](loc1: &Channel)
150 3: VariantSwitch(VariantJumpTableIndex(0))
151B1:
152 4: MoveLoc[2](loc1: &Channel)
153 5: Pop
154 6: LdFalse
155 7: StLoc[1](loc0: bool)
156 8: Branch(18)
157B2:
158 9: MoveLoc[2](loc1: &Channel)
159 10: Pop
160 11: LdFalse
161 12: StLoc[1](loc0: bool)
162 13: Branch(18)
163B3:
164 14: MoveLoc[2](loc1: &Channel)
165 15: UnpackVariantImmRef(VariantHandleIndex(2))
166 16: LdTrue
167 17: StLoc[1](loc0: bool)
168B4:
169 18: MoveLoc[1](loc0: bool)
170 19: Ret
171Jump tables:
172[0]: variant_switch Channel {
173 Variant0 => jump 4
174 Variant1 => jump 9
175 Variant2 => jump 14
176 }
177}
178
179public get_update_interval_ms(Arg0: &Channel): u64 {
180L1: loc0: u64
181L2: loc1: &Channel
182B0:
183 0: MoveLoc[0](Arg0: &Channel)
184 1: StLoc[2](loc1: &Channel)
185 2: CopyLoc[2](loc1: &Channel)
186 3: VariantSwitch(VariantJumpTableIndex(0))
187B1:
188 4: MoveLoc[2](loc1: &Channel)
189 5: Pop
190 6: LdU64(0)
191 7: StLoc[1](loc0: u64)
192 8: Branch(18)
193B2:
194 9: MoveLoc[2](loc1: &Channel)
195 10: UnpackVariantImmRef(VariantHandleIndex(1))
196 11: LdU64(50)
197 12: StLoc[1](loc0: u64)
198 13: Branch(18)
199B3:
200 14: MoveLoc[2](loc1: &Channel)
201 15: UnpackVariantImmRef(VariantHandleIndex(2))
202 16: LdU64(200)
203 17: StLoc[1](loc0: u64)
204B4:
205 18: MoveLoc[1](loc0: u64)
206 19: Ret
207Jump tables:
208[0]: variant_switch Channel {
209 Variant0 => jump 4
210 Variant1 => jump 9
211 Variant2 => jump 14
212 }
213}
214
215public(friend) from_v2(Arg0: Channel): Channel {
216L1: loc0: Channel
217L2: loc1: Channel
218B0:
219 0: ImmBorrowLoc[0](Arg0: Channel)
220 1: Call channel_v2::is_real_time(&Channel): bool
221 2: BrFalse(6)
222B1:
223 3: PackVariant(VariantHandleIndex(0))
224 4: StLoc[2](loc1: Channel)
225 5: Branch(22)
226B2:
227 6: ImmBorrowLoc[0](Arg0: Channel)
228 7: Call channel_v2::is_fixed_rate_50ms(&Channel): bool
229 8: BrFalse(12)
230B3:
231 9: PackVariant(VariantHandleIndex(1))
232 10: StLoc[1](loc0: Channel)
233 11: Branch(20)
234B4:
235 12: ImmBorrowLoc[0](Arg0: Channel)
236 13: Call channel_v2::is_fixed_rate_200ms(&Channel): bool
237 14: BrFalse(16)
238B5:
239 15: Branch(18)
240B6:
241 16: LdU64(13906834543710568449)
242 17: Abort
243B7:
244 18: PackVariant(VariantHandleIndex(2))
245 19: StLoc[1](loc0: Channel)
246B8:
247 20: MoveLoc[1](loc0: Channel)
248 21: StLoc[2](loc1: Channel)
249B9:
250 22: MoveLoc[2](loc1: Channel)
251 23: Ret
252}
253
254Constants [
255 0 => vector<u8>: "EInvalidChannel" // interpreted as UTF8 string
256 1 => vector<u8>: "Invalid channel value" // interpreted as UTF8 string
257]
258}
259
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/channel_v2.mvb152 lines
1// Move bytecode v7
2module 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580.channel_v2 {
3
4struct Channel has copy, drop, store {
5 pos0: u8
6}
7
8public(friend) from_u8(Arg0: u8): Channel {
9L1: loc0: bool
10B0:
11 0: CopyLoc[0](Arg0: u8)
12 1: LdU8(1)
13 2: Ge
14 3: BrFalse(9)
15B1:
16 4: CopyLoc[0](Arg0: u8)
17 5: LdU8(4)
18 6: Le
19 7: StLoc[1](loc0: bool)
20 8: Branch(11)
21B2:
22 9: LdFalse
23 10: StLoc[1](loc0: bool)
24B3:
25 11: MoveLoc[1](loc0: bool)
26 12: BrFalse(14)
27B4:
28 13: Branch(16)
29B5:
30 14: LdU64(13906834217293053953)
31 15: Abort
32B6:
33 16: MoveLoc[0](Arg0: u8)
34 17: Pack[0](Channel)
35 18: Ret
36}
37
38public is_real_time(Arg0: &Channel): bool {
39B0:
40 0: MoveLoc[0](Arg0: &Channel)
41 1: ImmBorrowField[0](Channel.pos0: u8)
42 2: ReadRef
43 3: LdU8(1)
44 4: Eq
45 5: Ret
46}
47
48public is_fixed_rate_50ms(Arg0: &Channel): bool {
49B0:
50 0: MoveLoc[0](Arg0: &Channel)
51 1: ImmBorrowField[0](Channel.pos0: u8)
52 2: ReadRef
53 3: LdU8(2)
54 4: Eq
55 5: Ret
56}
57
58public is_fixed_rate_200ms(Arg0: &Channel): bool {
59B0:
60 0: MoveLoc[0](Arg0: &Channel)
61 1: ImmBorrowField[0](Channel.pos0: u8)
62 2: ReadRef
63 3: LdU8(3)
64 4: Eq
65 5: Ret
66}
67
68public is_fixed_rate_1000ms(Arg0: &Channel): bool {
69B0:
70 0: MoveLoc[0](Arg0: &Channel)
71 1: ImmBorrowField[0](Channel.pos0: u8)
72 2: ReadRef
73 3: LdU8(4)
74 4: Eq
75 5: Ret
76}
77
78public get_update_interval_ms(Arg0: &Channel): u64 {
79L1: loc0: u64
80L2: loc1: u64
81L3: loc2: u64
82B0:
83 0: CopyLoc[0](Arg0: &Channel)
84 1: ImmBorrowField[0](Channel.pos0: u8)
85 2: ReadRef
86 3: LdU8(1)
87 4: Eq
88 5: BrFalse(11)
89B1:
90 6: MoveLoc[0](Arg0: &Channel)
91 7: Pop
92 8: LdU64(0)
93 9: StLoc[3](loc2: u64)
94 10: Branch(48)
95B2:
96 11: CopyLoc[0](Arg0: &Channel)
97 12: ImmBorrowField[0](Channel.pos0: u8)
98 13: ReadRef
99 14: LdU8(2)
100 15: Eq
101 16: BrFalse(22)
102B3:
103 17: MoveLoc[0](Arg0: &Channel)
104 18: Pop
105 19: LdU64(50)
106 20: StLoc[2](loc1: u64)
107 21: Branch(46)
108B4:
109 22: CopyLoc[0](Arg0: &Channel)
110 23: ImmBorrowField[0](Channel.pos0: u8)
111 24: ReadRef
112 25: LdU8(3)
113 26: Eq
114 27: BrFalse(33)
115B5:
116 28: MoveLoc[0](Arg0: &Channel)
117 29: Pop
118 30: LdU64(200)
119 31: StLoc[1](loc0: u64)
120 32: Branch(44)
121B6:
122 33: MoveLoc[0](Arg0: &Channel)
123 34: ImmBorrowField[0](Channel.pos0: u8)
124 35: ReadRef
125 36: LdU8(4)
126 37: Eq
127 38: BrFalse(40)
128B7:
129 39: Branch(42)
130B8:
131 40: LdU64(13906834328962203649)
132 41: Abort
133B9:
134 42: LdU64(1000)
135 43: StLoc[1](loc0: u64)
136B10:
137 44: MoveLoc[1](loc0: u64)
138 45: StLoc[2](loc1: u64)
139B11:
140 46: MoveLoc[2](loc1: u64)
141 47: StLoc[3](loc2: u64)
142B12:
143 48: MoveLoc[3](loc2: u64)
144 49: Ret
145}
146
147Constants [
148 0 => vector<u8>: "EChannelOutOfRange" // interpreted as UTF8 string
149 1 => vector<u8>: "Channel value out of range" // interpreted as UTF8 string
150]
151}
152
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/feed.mvb664 lines
1// Move bytecode v7
2module 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580.feed {
3use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::i16;
4use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::i64;
5use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::market_session;
6use 0000000000000000000000000000000000000000000000000000000000000001::option;
7use 0000000000000000000000000000000000000000000000000000000000000002::bcs;
8
9struct Feed has copy, drop {
10 feed_id: u32,
11 price: Option<Option<I64>>,
12 best_bid_price: Option<Option<I64>>,
13 best_ask_price: Option<Option<I64>>,
14 publisher_count: Option<u16>,
15 exponent: Option<I16>,
16 confidence: Option<Option<I64>>,
17 funding_rate: Option<Option<I64>>,
18 funding_timestamp: Option<Option<u64>>,
19 funding_rate_interval: Option<Option<u64>>,
20 market_session: Option<MarketSession>,
21 ema_price: Option<Option<I64>>,
22 ema_confidence: Option<Option<u64>>,
23 feed_update_timestamp: Option<Option<u64>>
24}
25
26public(friend) new(Arg0: u32, Arg1: Option<Option<I64>>, Arg2: Option<Option<I64>>, Arg3: Option<Option<I64>>, Arg4: Option<u16>, Arg5: Option<I16>, Arg6: Option<Option<I64>>, Arg7: Option<Option<I64>>, Arg8: Option<Option<u64>>, Arg9: Option<Option<u64>>, Arg10: Option<MarketSession>, Arg11: Option<Option<I64>>, Arg12: Option<Option<u64>>, Arg13: Option<Option<u64>>): Feed {
27B0:
28 0: MoveLoc[0](Arg0: u32)
29 1: MoveLoc[1](Arg1: Option<Option<I64>>)
30 2: MoveLoc[2](Arg2: Option<Option<I64>>)
31 3: MoveLoc[3](Arg3: Option<Option<I64>>)
32 4: MoveLoc[4](Arg4: Option<u16>)
33 5: MoveLoc[5](Arg5: Option<I16>)
34 6: MoveLoc[6](Arg6: Option<Option<I64>>)
35 7: MoveLoc[7](Arg7: Option<Option<I64>>)
36 8: MoveLoc[8](Arg8: Option<Option<u64>>)
37 9: MoveLoc[9](Arg9: Option<Option<u64>>)
38 10: MoveLoc[10](Arg10: Option<MarketSession>)
39 11: MoveLoc[11](Arg11: Option<Option<I64>>)
40 12: MoveLoc[12](Arg12: Option<Option<u64>>)
41 13: MoveLoc[13](Arg13: Option<Option<u64>>)
42 14: Pack[0](Feed)
43 15: Ret
44}
45
46public feed_id(Arg0: &Feed): u32 {
47B0:
48 0: MoveLoc[0](Arg0: &Feed)
49 1: ImmBorrowField[0](Feed.feed_id: u32)
50 2: ReadRef
51 3: Ret
52}
53
54public price(Arg0: &Feed): Option<Option<I64>> {
55B0:
56 0: MoveLoc[0](Arg0: &Feed)
57 1: ImmBorrowField[1](Feed.price: Option<Option<I64>>)
58 2: ReadRef
59 3: Ret
60}
61
62public best_bid_price(Arg0: &Feed): Option<Option<I64>> {
63B0:
64 0: MoveLoc[0](Arg0: &Feed)
65 1: ImmBorrowField[2](Feed.best_bid_price: Option<Option<I64>>)
66 2: ReadRef
67 3: Ret
68}
69
70public best_ask_price(Arg0: &Feed): Option<Option<I64>> {
71B0:
72 0: MoveLoc[0](Arg0: &Feed)
73 1: ImmBorrowField[3](Feed.best_ask_price: Option<Option<I64>>)
74 2: ReadRef
75 3: Ret
76}
77
78public publisher_count(Arg0: &Feed): Option<u16> {
79B0:
80 0: MoveLoc[0](Arg0: &Feed)
81 1: ImmBorrowField[4](Feed.publisher_count: Option<u16>)
82 2: ReadRef
83 3: Ret
84}
85
86public exponent(Arg0: &Feed): Option<I16> {
87B0:
88 0: MoveLoc[0](Arg0: &Feed)
89 1: ImmBorrowField[5](Feed.exponent: Option<I16>)
90 2: ReadRef
91 3: Ret
92}
93
94public confidence(Arg0: &Feed): Option<Option<I64>> {
95B0:
96 0: MoveLoc[0](Arg0: &Feed)
97 1: ImmBorrowField[6](Feed.confidence: Option<Option<I64>>)
98 2: ReadRef
99 3: Ret
100}
101
102public funding_rate(Arg0: &Feed): Option<Option<I64>> {
103B0:
104 0: MoveLoc[0](Arg0: &Feed)
105 1: ImmBorrowField[7](Feed.funding_rate: Option<Option<I64>>)
106 2: ReadRef
107 3: Ret
108}
109
110public funding_timestamp(Arg0: &Feed): Option<Option<u64>> {
111B0:
112 0: MoveLoc[0](Arg0: &Feed)
113 1: ImmBorrowField[8](Feed.funding_timestamp: Option<Option<u64>>)
114 2: ReadRef
115 3: Ret
116}
117
118public funding_rate_interval(Arg0: &Feed): Option<Option<u64>> {
119B0:
120 0: MoveLoc[0](Arg0: &Feed)
121 1: ImmBorrowField[9](Feed.funding_rate_interval: Option<Option<u64>>)
122 2: ReadRef
123 3: Ret
124}
125
126public market_session(Arg0: &Feed): Option<MarketSession> {
127B0:
128 0: MoveLoc[0](Arg0: &Feed)
129 1: ImmBorrowField[10](Feed.market_session: Option<MarketSession>)
130 2: ReadRef
131 3: Ret
132}
133
134public ema_price(Arg0: &Feed): Option<Option<I64>> {
135B0:
136 0: MoveLoc[0](Arg0: &Feed)
137 1: ImmBorrowField[11](Feed.ema_price: Option<Option<I64>>)
138 2: ReadRef
139 3: Ret
140}
141
142public ema_confidence(Arg0: &Feed): Option<Option<u64>> {
143B0:
144 0: MoveLoc[0](Arg0: &Feed)
145 1: ImmBorrowField[12](Feed.ema_confidence: Option<Option<u64>>)
146 2: ReadRef
147 3: Ret
148}
149
150public feed_update_timestamp(Arg0: &Feed): Option<Option<u64>> {
151B0:
152 0: MoveLoc[0](Arg0: &Feed)
153 1: ImmBorrowField[13](Feed.feed_update_timestamp: Option<Option<u64>>)
154 2: ReadRef
155 3: Ret
156}
157
158public(friend) set_feed_id(Arg0: &mut Feed, Arg1: u32) {
159B0:
160 0: MoveLoc[1](Arg1: u32)
161 1: MoveLoc[0](Arg0: &mut Feed)
162 2: MutBorrowField[0](Feed.feed_id: u32)
163 3: WriteRef
164 4: Ret
165}
166
167public(friend) set_price(Arg0: &mut Feed, Arg1: Option<Option<I64>>) {
168B0:
169 0: MoveLoc[1](Arg1: Option<Option<I64>>)
170 1: MoveLoc[0](Arg0: &mut Feed)
171 2: MutBorrowField[1](Feed.price: Option<Option<I64>>)
172 3: WriteRef
173 4: Ret
174}
175
176public(friend) set_best_bid_price(Arg0: &mut Feed, Arg1: Option<Option<I64>>) {
177B0:
178 0: MoveLoc[1](Arg1: Option<Option<I64>>)
179 1: MoveLoc[0](Arg0: &mut Feed)
180 2: MutBorrowField[2](Feed.best_bid_price: Option<Option<I64>>)
181 3: WriteRef
182 4: Ret
183}
184
185public(friend) set_best_ask_price(Arg0: &mut Feed, Arg1: Option<Option<I64>>) {
186B0:
187 0: MoveLoc[1](Arg1: Option<Option<I64>>)
188 1: MoveLoc[0](Arg0: &mut Feed)
189 2: MutBorrowField[3](Feed.best_ask_price: Option<Option<I64>>)
190 3: WriteRef
191 4: Ret
192}
193
194public(friend) set_publisher_count(Arg0: &mut Feed, Arg1: Option<u16>) {
195B0:
196 0: MoveLoc[1](Arg1: Option<u16>)
197 1: MoveLoc[0](Arg0: &mut Feed)
198 2: MutBorrowField[4](Feed.publisher_count: Option<u16>)
199 3: WriteRef
200 4: Ret
201}
202
203public(friend) set_exponent(Arg0: &mut Feed, Arg1: Option<I16>) {
204B0:
205 0: MoveLoc[1](Arg1: Option<I16>)
206 1: MoveLoc[0](Arg0: &mut Feed)
207 2: MutBorrowField[5](Feed.exponent: Option<I16>)
208 3: WriteRef
209 4: Ret
210}
211
212public(friend) set_confidence(Arg0: &mut Feed, Arg1: Option<Option<I64>>) {
213B0:
214 0: MoveLoc[1](Arg1: Option<Option<I64>>)
215 1: MoveLoc[0](Arg0: &mut Feed)
216 2: MutBorrowField[6](Feed.confidence: Option<Option<I64>>)
217 3: WriteRef
218 4: Ret
219}
220
221public(friend) set_funding_rate(Arg0: &mut Feed, Arg1: Option<Option<I64>>) {
222B0:
223 0: MoveLoc[1](Arg1: Option<Option<I64>>)
224 1: MoveLoc[0](Arg0: &mut Feed)
225 2: MutBorrowField[7](Feed.funding_rate: Option<Option<I64>>)
226 3: WriteRef
227 4: Ret
228}
229
230public(friend) set_funding_timestamp(Arg0: &mut Feed, Arg1: Option<Option<u64>>) {
231B0:
232 0: MoveLoc[1](Arg1: Option<Option<u64>>)
233 1: MoveLoc[0](Arg0: &mut Feed)
234 2: MutBorrowField[8](Feed.funding_timestamp: Option<Option<u64>>)
235 3: WriteRef
236 4: Ret
237}
238
239public(friend) set_funding_rate_interval(Arg0: &mut Feed, Arg1: Option<Option<u64>>) {
240B0:
241 0: MoveLoc[1](Arg1: Option<Option<u64>>)
242 1: MoveLoc[0](Arg0: &mut Feed)
243 2: MutBorrowField[9](Feed.funding_rate_interval: Option<Option<u64>>)
244 3: WriteRef
245 4: Ret
246}
247
248public(friend) set_market_session(Arg0: &mut Feed, Arg1: Option<MarketSession>) {
249B0:
250 0: MoveLoc[1](Arg1: Option<MarketSession>)
251 1: MoveLoc[0](Arg0: &mut Feed)
252 2: MutBorrowField[10](Feed.market_session: Option<MarketSession>)
253 3: WriteRef
254 4: Ret
255}
256
257public(friend) set_ema_price(Arg0: &mut Feed, Arg1: Option<Option<I64>>) {
258B0:
259 0: MoveLoc[1](Arg1: Option<Option<I64>>)
260 1: MoveLoc[0](Arg0: &mut Feed)
261 2: MutBorrowField[11](Feed.ema_price: Option<Option<I64>>)
262 3: WriteRef
263 4: Ret
264}
265
266public(friend) set_ema_confidence(Arg0: &mut Feed, Arg1: Option<Option<u64>>) {
267B0:
268 0: MoveLoc[1](Arg1: Option<Option<u64>>)
269 1: MoveLoc[0](Arg0: &mut Feed)
270 2: MutBorrowField[12](Feed.ema_confidence: Option<Option<u64>>)
271 3: WriteRef
272 4: Ret
273}
274
275public(friend) set_feed_update_timestamp(Arg0: &mut Feed, Arg1: Option<Option<u64>>) {
276B0:
277 0: MoveLoc[1](Arg1: Option<Option<u64>>)
278 1: MoveLoc[0](Arg0: &mut Feed)
279 2: MutBorrowField[13](Feed.feed_update_timestamp: Option<Option<u64>>)
280 3: WriteRef
281 4: Ret
282}
283
284public(friend) parse_from_cursor(Arg0: &mut BCS): Feed {
285L1: loc0: u64
286L2: loc1: u64
287L3: loc2: u64
288L4: loc3: u64
289L5: loc4: u64
290L6: loc5: u16
291L7: loc6: Feed
292L8: loc7: u64
293L9: loc8: u64
294L10: loc9: u64
295L11: loc10: u64
296L12: loc11: u16
297L13: loc12: u64
298L14: loc13: u8
299L15: loc14: u8
300L16: loc15: u8
301L17: loc16: u16
302B0:
303 0: CopyLoc[0](Arg0: &mut BCS)
304 1: Call bcs::peel_u32(&mut BCS): u32
305 2: Call option::none<Option<I64>>(): Option<Option<I64>>
306 3: Call option::none<Option<I64>>(): Option<Option<I64>>
307 4: Call option::none<Option<I64>>(): Option<Option<I64>>
308 5: Call option::none<u16>(): Option<u16>
309 6: Call option::none<I16>(): Option<I16>
310 7: Call option::none<Option<I64>>(): Option<Option<I64>>
311 8: Call option::none<Option<I64>>(): Option<Option<I64>>
312 9: Call option::none<Option<u64>>(): Option<Option<u64>>
313 10: Call option::none<Option<u64>>(): Option<Option<u64>>
314 11: Call option::none<MarketSession>(): Option<MarketSession>
315 12: Call option::none<Option<I64>>(): Option<Option<I64>>
316 13: Call option::none<Option<u64>>(): Option<Option<u64>>
317 14: Call option::none<Option<u64>>(): Option<Option<u64>>
318 15: Call new(u32, Option<Option<I64>>, Option<Option<I64>>, Option<Option<I64>>, Option<u16>, Option<I16>, Option<Option<I64>>, Option<Option<I64>>, Option<Option<u64>>, Option<Option<u64>>, Option<MarketSession>, Option<Option<I64>>, Option<Option<u64>>, Option<Option<u64>>): Feed
319 16: StLoc[7](loc6: Feed)
320 17: CopyLoc[0](Arg0: &mut BCS)
321 18: Call bcs::peel_u8(&mut BCS): u8
322 19: StLoc[14](loc13: u8)
323 20: LdU8(0)
324 21: StLoc[15](loc14: u8)
325B1:
326 22: CopyLoc[15](loc14: u8)
327 23: CopyLoc[14](loc13: u8)
328 24: Lt
329 25: BrFalse(299)
330B2:
331 26: Branch(27)
332B3:
333 27: CopyLoc[0](Arg0: &mut BCS)
334 28: Call bcs::peel_u8(&mut BCS): u8
335 29: StLoc[16](loc15: u8)
336 30: CopyLoc[16](loc15: u8)
337 31: LdU8(0)
338 32: Eq
339 33: BrFalse(53)
340B4:
341 34: CopyLoc[0](Arg0: &mut BCS)
342 35: Call bcs::peel_u64(&mut BCS): u64
343 36: StLoc[13](loc12: u64)
344 37: CopyLoc[13](loc12: u64)
345 38: LdU64(0)
346 39: Neq
347 40: BrFalse(48)
348B5:
349 41: MutBorrowLoc[7](loc6: Feed)
350 42: MoveLoc[13](loc12: u64)
351 43: Call i64::from_u64(u64): I64
352 44: Call option::some<I64>(I64): Option<I64>
353 45: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
354 46: Call set_price(&mut Feed, Option<Option<I64>>)
355 47: Branch(294)
356B6:
357 48: MutBorrowLoc[7](loc6: Feed)
358 49: Call option::none<I64>(): Option<I64>
359 50: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
360 51: Call set_price(&mut Feed, Option<Option<I64>>)
361 52: Branch(294)
362B7:
363 53: CopyLoc[16](loc15: u8)
364 54: LdU8(1)
365 55: Eq
366 56: BrFalse(76)
367B8:
368 57: CopyLoc[0](Arg0: &mut BCS)
369 58: Call bcs::peel_u64(&mut BCS): u64
370 59: StLoc[2](loc1: u64)
371 60: CopyLoc[2](loc1: u64)
372 61: LdU64(0)
373 62: Neq
374 63: BrFalse(71)
375B9:
376 64: MutBorrowLoc[7](loc6: Feed)
377 65: MoveLoc[2](loc1: u64)
378 66: Call i64::from_u64(u64): I64
379 67: Call option::some<I64>(I64): Option<I64>
380 68: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
381 69: Call set_best_bid_price(&mut Feed, Option<Option<I64>>)
382 70: Branch(294)
383B10:
384 71: MutBorrowLoc[7](loc6: Feed)
385 72: Call option::none<I64>(): Option<I64>
386 73: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
387 74: Call set_best_bid_price(&mut Feed, Option<Option<I64>>)
388 75: Branch(294)
389B11:
390 76: CopyLoc[16](loc15: u8)
391 77: LdU8(2)
392 78: Eq
393 79: BrFalse(99)
394B12:
395 80: CopyLoc[0](Arg0: &mut BCS)
396 81: Call bcs::peel_u64(&mut BCS): u64
397 82: StLoc[1](loc0: u64)
398 83: CopyLoc[1](loc0: u64)
399 84: LdU64(0)
400 85: Neq
401 86: BrFalse(94)
402B13:
403 87: MutBorrowLoc[7](loc6: Feed)
404 88: MoveLoc[1](loc0: u64)
405 89: Call i64::from_u64(u64): I64
406 90: Call option::some<I64>(I64): Option<I64>
407 91: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
408 92: Call set_best_ask_price(&mut Feed, Option<Option<I64>>)
409 93: Branch(294)
410B14:
411 94: MutBorrowLoc[7](loc6: Feed)
412 95: Call option::none<I64>(): Option<I64>
413 96: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
414 97: Call set_best_ask_price(&mut Feed, Option<Option<I64>>)
415 98: Branch(294)
416B15:
417 99: CopyLoc[16](loc15: u8)
418 100: LdU8(3)
419 101: Eq
420 102: BrFalse(111)
421B16:
422 103: CopyLoc[0](Arg0: &mut BCS)
423 104: Call bcs::peel_u16(&mut BCS): u16
424 105: StLoc[17](loc16: u16)
425 106: MutBorrowLoc[7](loc6: Feed)
426 107: MoveLoc[17](loc16: u16)
427 108: Call option::some<u16>(u16): Option<u16>
428 109: Call set_publisher_count(&mut Feed, Option<u16>)
429 110: Branch(294)
430B17:
431 111: CopyLoc[16](loc15: u8)
432 112: LdU8(4)
433 113: Eq
434 114: BrFalse(124)
435B18:
436 115: CopyLoc[0](Arg0: &mut BCS)
437 116: Call bcs::peel_u16(&mut BCS): u16
438 117: StLoc[6](loc5: u16)
439 118: MutBorrowLoc[7](loc6: Feed)
440 119: MoveLoc[6](loc5: u16)
441 120: Call i16::from_u16(u16): I16
442 121: Call option::some<I16>(I16): Option<I16>
443 122: Call set_exponent(&mut Feed, Option<I16>)
444 123: Branch(294)
445B19:
446 124: CopyLoc[16](loc15: u8)
447 125: LdU8(5)
448 126: Eq
449 127: BrFalse(147)
450B20:
451 128: CopyLoc[0](Arg0: &mut BCS)
452 129: Call bcs::peel_u64(&mut BCS): u64
453 130: StLoc[3](loc2: u64)
454 131: CopyLoc[3](loc2: u64)
455 132: LdU64(0)
456 133: Neq
457 134: BrFalse(142)
458B21:
459 135: MutBorrowLoc[7](loc6: Feed)
460 136: MoveLoc[3](loc2: u64)
461 137: Call i64::from_u64(u64): I64
462 138: Call option::some<I64>(I64): Option<I64>
463 139: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
464 140: Call set_confidence(&mut Feed, Option<Option<I64>>)
465 141: Branch(294)
466B22:
467 142: MutBorrowLoc[7](loc6: Feed)
468 143: Call option::none<I64>(): Option<I64>
469 144: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
470 145: Call set_confidence(&mut Feed, Option<Option<I64>>)
471 146: Branch(294)
472B23:
473 147: CopyLoc[16](loc15: u8)
474 148: LdU8(6)
475 149: Eq
476 150: BrFalse(169)
477B24:
478 151: CopyLoc[0](Arg0: &mut BCS)
479 152: Call bcs::peel_bool(&mut BCS): bool
480 153: BrFalse(164)
481B25:
482 154: CopyLoc[0](Arg0: &mut BCS)
483 155: Call bcs::peel_u64(&mut BCS): u64
484 156: StLoc[9](loc8: u64)
485 157: MutBorrowLoc[7](loc6: Feed)
486 158: MoveLoc[9](loc8: u64)
487 159: Call i64::from_u64(u64): I64
488 160: Call option::some<I64>(I64): Option<I64>
489 161: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
490 162: Call set_funding_rate(&mut Feed, Option<Option<I64>>)
491 163: Branch(294)
492B26:
493 164: MutBorrowLoc[7](loc6: Feed)
494 165: Call option::none<I64>(): Option<I64>
495 166: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
496 167: Call set_funding_rate(&mut Feed, Option<Option<I64>>)
497 168: Branch(294)
498B27:
499 169: CopyLoc[16](loc15: u8)
500 170: LdU8(7)
501 171: Eq
502 172: BrFalse(190)
503B28:
504 173: CopyLoc[0](Arg0: &mut BCS)
505 174: Call bcs::peel_bool(&mut BCS): bool
506 175: BrFalse(185)
507B29:
508 176: CopyLoc[0](Arg0: &mut BCS)
509 177: Call bcs::peel_u64(&mut BCS): u64
510 178: StLoc[11](loc10: u64)
511 179: MutBorrowLoc[7](loc6: Feed)
512 180: MoveLoc[11](loc10: u64)
513 181: Call option::some<u64>(u64): Option<u64>
514 182: Call option::some<Option<u64>>(Option<u64>): Option<Option<u64>>
515 183: Call set_funding_timestamp(&mut Feed, Option<Option<u64>>)
516 184: Branch(294)
517B30:
518 185: MutBorrowLoc[7](loc6: Feed)
519 186: Call option::none<u64>(): Option<u64>
520 187: Call option::some<Option<u64>>(Option<u64>): Option<Option<u64>>
521 188: Call set_funding_timestamp(&mut Feed, Option<Option<u64>>)
522 189: Branch(294)
523B31:
524 190: CopyLoc[16](loc15: u8)
525 191: LdU8(8)
526 192: Eq
527 193: BrFalse(211)
528B32:
529 194: CopyLoc[0](Arg0: &mut BCS)
530 195: Call bcs::peel_bool(&mut BCS): bool
531 196: BrFalse(206)
532B33:
533 197: CopyLoc[0](Arg0: &mut BCS)
534 198: Call bcs::peel_u64(&mut BCS): u64
535 199: StLoc[10](loc9: u64)
536 200: MutBorrowLoc[7](loc6: Feed)
537 201: MoveLoc[10](loc9: u64)
538 202: Call option::some<u64>(u64): Option<u64>
539 203: Call option::some<Option<u64>>(Option<u64>): Option<Option<u64>>
540 204: Call set_funding_rate_interval(&mut Feed, Option<Option<u64>>)
541 205: Branch(294)
542B34:
543 206: MutBorrowLoc[7](loc6: Feed)
544 207: Call option::none<u64>(): Option<u64>
545 208: Call option::some<Option<u64>>(Option<u64>): Option<Option<u64>>
546 209: Call set_funding_rate_interval(&mut Feed, Option<Option<u64>>)
547 210: Branch(294)
548B35:
549 211: CopyLoc[16](loc15: u8)
550 212: LdU8(9)
551 213: Eq
552 214: BrFalse(224)
553B36:
554 215: CopyLoc[0](Arg0: &mut BCS)
555 216: Call bcs::peel_u16(&mut BCS): u16
556 217: StLoc[12](loc11: u16)
557 218: MutBorrowLoc[7](loc6: Feed)
558 219: MoveLoc[12](loc11: u16)
559 220: Call market_session::from_u16(u16): MarketSession
560 221: Call option::some<MarketSession>(MarketSession): Option<MarketSession>
561 222: Call set_market_session(&mut Feed, Option<MarketSession>)
562 223: Branch(294)
563B37:
564 224: CopyLoc[16](loc15: u8)
565 225: LdU8(10)
566 226: Eq
567 227: BrFalse(247)
568B38:
569 228: CopyLoc[0](Arg0: &mut BCS)
570 229: Call bcs::peel_u64(&mut BCS): u64
571 230: StLoc[5](loc4: u64)
572 231: CopyLoc[5](loc4: u64)
573 232: LdU64(0)
574 233: Neq
575 234: BrFalse(242)
576B39:
577 235: MutBorrowLoc[7](loc6: Feed)
578 236: MoveLoc[5](loc4: u64)
579 237: Call i64::from_u64(u64): I64
580 238: Call option::some<I64>(I64): Option<I64>
581 239: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
582 240: Call set_ema_price(&mut Feed, Option<Option<I64>>)
583 241: Branch(294)
584B40:
585 242: MutBorrowLoc[7](loc6: Feed)
586 243: Call option::none<I64>(): Option<I64>
587 244: Call option::some<Option<I64>>(Option<I64>): Option<Option<I64>>
588 245: Call set_ema_price(&mut Feed, Option<Option<I64>>)
589 246: Branch(294)
590B41:
591 247: CopyLoc[16](loc15: u8)
592 248: LdU8(11)
593 249: Eq
594 250: BrFalse(269)
595B42:
596 251: CopyLoc[0](Arg0: &mut BCS)
597 252: Call bcs::peel_u64(&mut BCS): u64
598 253: StLoc[4](loc3: u64)
599 254: CopyLoc[4](loc3: u64)
600 255: LdU64(0)
601 256: Neq
602 257: BrFalse(264)
603B43:
604 258: MutBorrowLoc[7](loc6: Feed)
605 259: MoveLoc[4](loc3: u64)
606 260: Call option::some<u64>(u64): Option<u64>
607 261: Call option::some<Option<u64>>(Option<u64>): Option<Option<u64>>
608 262: Call set_ema_confidence(&mut Feed, Option<Option<u64>>)
609 263: Branch(294)
610B44:
611 264: MutBorrowLoc[7](loc6: Feed)
612 265: Call option::none<u64>(): Option<u64>
613 266: Call option::some<Option<u64>>(Option<u64>): Option<Option<u64>>
614 267: Call set_ema_confidence(&mut Feed, Option<Option<u64>>)
615 268: Branch(294)
616B45:
617 269: MoveLoc[16](loc15: u8)
618 270: LdU8(12)
619 271: Eq
620 272: BrFalse(290)
621B46:
622 273: CopyLoc[0](Arg0: &mut BCS)
623 274: Call bcs::peel_bool(&mut BCS): bool
624 275: BrFalse(285)
625B47:
626 276: CopyLoc[0](Arg0: &mut BCS)
627 277: Call bcs::peel_u64(&mut BCS): u64
628 278: StLoc[8](loc7: u64)
629 279: MutBorrowLoc[7](loc6: Feed)
630 280: MoveLoc[8](loc7: u64)
631 281: Call option::some<u64>(u64): Option<u64>
632 282: Call option::some<Option<u64>>(Option<u64>): Option<Option<u64>>
633 283: Call set_feed_update_timestamp(&mut Feed, Option<Option<u64>>)
634 284: Branch(294)
635B48:
636 285: MutBorrowLoc[7](loc6: Feed)
637 286: Call option::none<u64>(): Option<u64>
638 287: Call option::some<Option<u64>>(Option<u64>): Option<Option<u64>>
639 288: Call set_feed_update_timestamp(&mut Feed, Option<Option<u64>>)
640 289: Branch(294)
641B49:
642 290: MoveLoc[0](Arg0: &mut BCS)
643 291: Pop
644 292: LdU64(13906835716236640257)
645 293: Abort
646B50:
647 294: MoveLoc[15](loc14: u8)
648 295: LdU8(1)
649 296: Add
650 297: StLoc[15](loc14: u8)
651 298: Branch(22)
652B51:
653 299: MoveLoc[0](Arg0: &mut BCS)
654 300: Pop
655 301: MoveLoc[7](loc6: Feed)
656 302: Ret
657}
658
659Constants [
660 0 => vector<u8>: "EInvalidProperty" // interpreted as UTF8 string
661 1 => vector<u8>: "Invalid property ID" // interpreted as UTF8 string
662]
663}
664
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/i16.mvb138 lines
1// Move bytecode v7
2module 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580.i16 {
3
4struct I16 has copy, drop, store {
5 negative: bool,
6 magnitude: u16
7}
8
9public new(Arg0: u16, Arg1: bool): I16 {
10L2: loc0: u16
11L3: loc1: u16
12B0:
13 0: LdConst[0](u16: 32767)
14 1: StLoc[3](loc1: u16)
15 2: CopyLoc[1](Arg1: bool)
16 3: BrFalse(6)
17B1:
18 4: LdConst[1](u16: 32768)
19 5: StLoc[3](loc1: u16)
20B2:
21 6: CopyLoc[0](Arg0: u16)
22 7: MoveLoc[3](loc1: u16)
23 8: Le
24 9: BrFalse(11)
25B3:
26 10: Branch(13)
27B4:
28 11: LdU64(13906834303192530947)
29 12: Abort
30B5:
31 13: CopyLoc[0](Arg0: u16)
32 14: LdU16(0)
33 15: Eq
34 16: BrFalse(19)
35B6:
36 17: LdFalse
37 18: StLoc[1](Arg1: bool)
38B7:
39 19: MoveLoc[0](Arg0: u16)
40 20: StLoc[2](loc0: u16)
41 21: MoveLoc[1](Arg1: bool)
42 22: MoveLoc[2](loc0: u16)
43 23: Pack[0](I16)
44 24: Ret
45}
46
47public get_is_negative(Arg0: &I16): bool {
48B0:
49 0: MoveLoc[0](Arg0: &I16)
50 1: ImmBorrowField[0](I16.negative: bool)
51 2: ReadRef
52 3: Ret
53}
54
55public get_magnitude_if_positive(Arg0: &I16): u16 {
56B0:
57 0: CopyLoc[0](Arg0: &I16)
58 1: ImmBorrowField[0](I16.negative: bool)
59 2: ReadRef
60 3: Not
61 4: BrFalse(6)
62B1:
63 5: Branch(10)
64B2:
65 6: MoveLoc[0](Arg0: &I16)
66 7: Pop
67 8: LdU64(13906834384797040645)
68 9: Abort
69B3:
70 10: MoveLoc[0](Arg0: &I16)
71 11: ImmBorrowField[1](I16.magnitude: u16)
72 12: ReadRef
73 13: Ret
74}
75
76public get_magnitude_if_negative(Arg0: &I16): u16 {
77B0:
78 0: CopyLoc[0](Arg0: &I16)
79 1: ImmBorrowField[0](I16.negative: bool)
80 2: ReadRef
81 3: BrFalse(5)
82B1:
83 4: Branch(9)
84B2:
85 5: MoveLoc[0](Arg0: &I16)
86 6: Pop
87 7: LdU64(13906834406272008199)
88 8: Abort
89B3:
90 9: MoveLoc[0](Arg0: &I16)
91 10: ImmBorrowField[1](I16.magnitude: u16)
92 11: ReadRef
93 12: Ret
94}
95
96public from_u16(Arg0: u16): I16 {
97L1: loc0: u16
98L2: loc1: bool
99B0:
100 0: CopyLoc[0](Arg0: u16)
101 1: LdU8(15)
102 2: Shr
103 3: LdU16(1)
104 4: Eq
105 5: StLoc[2](loc1: bool)
106 6: CopyLoc[2](loc1: bool)
107 7: Not
108 8: BrFalse(12)
109B1:
110 9: MoveLoc[0](Arg0: u16)
111 10: StLoc[1](loc0: u16)
112 11: Branch(18)
113B2:
114 12: MoveLoc[0](Arg0: u16)
115 13: LdU16(65535)
116 14: Xor
117 15: LdU16(1)
118 16: Add
119 17: StLoc[1](loc0: u16)
120B3:
121 18: MoveLoc[1](loc0: u16)
122 19: MoveLoc[2](loc1: bool)
123 20: Call new(u16, bool): I16
124 21: Ret
125}
126
127Constants [
128 0 => u16: 32767
129 1 => u16: 32768
130 2 => vector<u8>: "EMagnitudeTooLarge" // interpreted as UTF8 string
131 3 => vector<u8>: "Supplied magnitude too large" // interpreted as UTF8 string
132 4 => vector<u8>: "ENegativeValue" // interpreted as UTF8 string
133 5 => vector<u8>: "Supplied I16 is negative" // interpreted as UTF8 string
134 6 => vector<u8>: "EPositiveValue" // interpreted as UTF8 string
135 7 => vector<u8>: "Supplied I16 is positive" // interpreted as UTF8 string
136]
137}
138
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/i64.mvb138 lines
1// Move bytecode v7
2module 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580.i64 {
3
4struct I64 has copy, drop, store {
5 negative: bool,
6 magnitude: u64
7}
8
9public new(Arg0: u64, Arg1: bool): I64 {
10L2: loc0: u64
11L3: loc1: u64
12B0:
13 0: LdConst[0](u64: 9223..)
14 1: StLoc[3](loc1: u64)
15 2: CopyLoc[1](Arg1: bool)
16 3: BrFalse(6)
17B1:
18 4: LdConst[1](u64: 9223..)
19 5: StLoc[3](loc1: u64)
20B2:
21 6: CopyLoc[0](Arg0: u64)
22 7: MoveLoc[3](loc1: u64)
23 8: Le
24 9: BrFalse(11)
25B3:
26 10: Branch(13)
27B4:
28 11: LdU64(13906834303192530947)
29 12: Abort
30B5:
31 13: CopyLoc[0](Arg0: u64)
32 14: LdU64(0)
33 15: Eq
34 16: BrFalse(19)
35B6:
36 17: LdFalse
37 18: StLoc[1](Arg1: bool)
38B7:
39 19: MoveLoc[0](Arg0: u64)
40 20: StLoc[2](loc0: u64)
41 21: MoveLoc[1](Arg1: bool)
42 22: MoveLoc[2](loc0: u64)
43 23: Pack[0](I64)
44 24: Ret
45}
46
47public get_is_negative(Arg0: &I64): bool {
48B0:
49 0: MoveLoc[0](Arg0: &I64)
50 1: ImmBorrowField[0](I64.negative: bool)
51 2: ReadRef
52 3: Ret
53}
54
55public get_magnitude_if_positive(Arg0: &I64): u64 {
56B0:
57 0: CopyLoc[0](Arg0: &I64)
58 1: ImmBorrowField[0](I64.negative: bool)
59 2: ReadRef
60 3: Not
61 4: BrFalse(6)
62B1:
63 5: Branch(10)
64B2:
65 6: MoveLoc[0](Arg0: &I64)
66 7: Pop
67 8: LdU64(13906834389092007941)
68 9: Abort
69B3:
70 10: MoveLoc[0](Arg0: &I64)
71 11: ImmBorrowField[1](I64.magnitude: u64)
72 12: ReadRef
73 13: Ret
74}
75
76public get_magnitude_if_negative(Arg0: &I64): u64 {
77B0:
78 0: CopyLoc[0](Arg0: &I64)
79 1: ImmBorrowField[0](I64.negative: bool)
80 2: ReadRef
81 3: BrFalse(5)
82B1:
83 4: Branch(9)
84B2:
85 5: MoveLoc[0](Arg0: &I64)
86 6: Pop
87 7: LdU64(13906834410566975495)
88 8: Abort
89B3:
90 9: MoveLoc[0](Arg0: &I64)
91 10: ImmBorrowField[1](I64.magnitude: u64)
92 11: ReadRef
93 12: Ret
94}
95
96public from_u64(Arg0: u64): I64 {
97L1: loc0: u64
98L2: loc1: bool
99B0:
100 0: CopyLoc[0](Arg0: u64)
101 1: LdU8(63)
102 2: Shr
103 3: LdU64(1)
104 4: Eq
105 5: StLoc[2](loc1: bool)
106 6: CopyLoc[2](loc1: bool)
107 7: Not
108 8: BrFalse(12)
109B1:
110 9: MoveLoc[0](Arg0: u64)
111 10: StLoc[1](loc0: u64)
112 11: Branch(18)
113B2:
114 12: MoveLoc[0](Arg0: u64)
115 13: LdU64(18446744073709551615)
116 14: Xor
117 15: LdU64(1)
118 16: Add
119 17: StLoc[1](loc0: u64)
120B3:
121 18: MoveLoc[1](loc0: u64)
122 19: MoveLoc[2](loc1: bool)
123 20: Call new(u64, bool): I64
124 21: Ret
125}
126
127Constants [
128 0 => u64: 9223372036854775807
129 1 => u64: 9223372036854775808
130 2 => vector<u8>: "EMagnitudeTooLarge" // interpreted as UTF8 string
131 3 => vector<u8>: "Supplied magnitude too large" // interpreted as UTF8 string
132 4 => vector<u8>: "ENegativeValue" // interpreted as UTF8 string
133 5 => vector<u8>: "Supplied I64 is negative" // interpreted as UTF8 string
134 6 => vector<u8>: "EPositiveValue" // interpreted as UTF8 string
135 7 => vector<u8>: "Supplied I64 is positive" // interpreted as UTF8 string
136]
137}
138
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/meta.mvb17 lines
1// Move bytecode v7
2module 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580.meta {
3
4public(friend) version(): u64 {
5B0:
6 0: LdU64(2)
7 1: Ret
8}
9
10public(friend) receiver_chain_id(): u16 {
11B0:
12 0: LdU16(21)
13 1: Ret
14}
15
16}
17
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/pyth_lazer.mvb239 lines
1// Move bytecode v7
2module 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580.pyth_lazer {
3use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::state;
4use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::update;
5use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::update_v2;
6use 0000000000000000000000000000000000000000000000000000000000000001::option;
7use 0000000000000000000000000000000000000000000000000000000000000002::bcs;
8use 0000000000000000000000000000000000000000000000000000000000000002::clock;
9use 0000000000000000000000000000000000000000000000000000000000000002::ecdsa_k1;
10
11public(friend) verify_le_ecdsa_message(Arg0: &State, Arg1: &Clock, Arg2: &vector<u8>, Arg3: &vector<u8>) {
12L4: loc0: u64
13L5: loc1: Option<u64>
14L6: loc2: CurrentCap
15L7: loc3: u64
16L8: loc4: u64
17L9: loc5: u64
18L10: loc6: u64
19L11: loc7: Option<u64>
20L12: loc8: vector<u8>
21L13: loc9: u64
22L14: loc10: &vector<TrustedSignerInfo>
23L15: loc11: &vector<TrustedSignerInfo>
24B0:
25 0: CopyLoc[0](Arg0: &State)
26 1: Call state::current_cap(&State): CurrentCap
27 2: StLoc[6](loc2: CurrentCap)
28 3: MoveLoc[2](Arg2: &vector<u8>)
29 4: MoveLoc[3](Arg3: &vector<u8>)
30 5: LdU8(0)
31 6: Call ecdsa_k1::secp256k1_ecrecover(&vector<u8>, &vector<u8>, u8): vector<u8>
32 7: StLoc[12](loc8: vector<u8>)
33 8: MoveLoc[0](Arg0: &State)
34 9: ImmBorrowLoc[6](loc2: CurrentCap)
35 10: Call state::trusted_signers(&State, &CurrentCap): &vector<TrustedSignerInfo>
36 11: StLoc[14](loc10: &vector<TrustedSignerInfo>)
37 12: CopyLoc[14](loc10: &vector<TrustedSignerInfo>)
38 13: StLoc[15](loc11: &vector<TrustedSignerInfo>)
39 14: CopyLoc[15](loc11: &vector<TrustedSignerInfo>)
40 15: VecLen(12)
41 16: StLoc[4](loc0: u64)
42 17: LdU64(0)
43 18: StLoc[8](loc4: u64)
44 19: MoveLoc[4](loc0: u64)
45 20: StLoc[13](loc9: u64)
46B1:
47 21: CopyLoc[8](loc4: u64)
48 22: CopyLoc[13](loc9: u64)
49 23: Lt
50 24: BrFalse(45)
51B2:
52 25: CopyLoc[8](loc4: u64)
53 26: StLoc[9](loc5: u64)
54 27: CopyLoc[15](loc11: &vector<TrustedSignerInfo>)
55 28: CopyLoc[9](loc5: u64)
56 29: VecImmBorrow(12)
57 30: Call state::public_key(&TrustedSignerInfo): &vector<u8>
58 31: ImmBorrowLoc[12](loc8: vector<u8>)
59 32: Eq
60 33: BrFalse(40)
61B3:
62 34: MoveLoc[15](loc11: &vector<TrustedSignerInfo>)
63 35: Pop
64 36: MoveLoc[9](loc5: u64)
65 37: Call option::some<u64>(u64): Option<u64>
66 38: StLoc[5](loc1: Option<u64>)
67 39: Branch(49)
68B4:
69 40: MoveLoc[8](loc4: u64)
70 41: LdU64(1)
71 42: Add
72 43: StLoc[8](loc4: u64)
73 44: Branch(21)
74B5:
75 45: MoveLoc[15](loc11: &vector<TrustedSignerInfo>)
76 46: Pop
77 47: Call option::none<u64>(): Option<u64>
78 48: StLoc[5](loc1: Option<u64>)
79B6:
80 49: MoveLoc[5](loc1: Option<u64>)
81 50: StLoc[11](loc7: Option<u64>)
82 51: ImmBorrowLoc[11](loc7: Option<u64>)
83 52: Call option::is_some<u64>(&Option<u64>): bool
84 53: BrFalse(55)
85B7:
86 54: Branch(61)
87B8:
88 55: MoveLoc[14](loc10: &vector<TrustedSignerInfo>)
89 56: Pop
90 57: MoveLoc[1](Arg1: &Clock)
91 58: Pop
92 59: LdU64(13906834432041615364)
93 60: Abort
94B9:
95 61: MutBorrowLoc[11](loc7: Option<u64>)
96 62: Call option::extract<u64>(&mut Option<u64>): u64
97 63: StLoc[10](loc6: u64)
98 64: MoveLoc[14](loc10: &vector<TrustedSignerInfo>)
99 65: MoveLoc[10](loc6: u64)
100 66: VecImmBorrow(12)
101 67: Call state::expires_at_ms(&TrustedSignerInfo): u64
102 68: StLoc[7](loc3: u64)
103 69: MoveLoc[1](Arg1: &Clock)
104 70: Call clock::timestamp_ms(&Clock): u64
105 71: MoveLoc[7](loc3: u64)
106 72: Lt
107 73: BrFalse(75)
108B10:
109 74: Branch(77)
110B11:
111 75: LdU64(13906834444926648326)
112 76: Abort
113B12:
114 77: Ret
115}
116
117public parse_and_verify_le_ecdsa_update(Arg0: &State, Arg1: &Clock, Arg2: vector<u8>): Update {
118B0:
119 0: MoveLoc[0](Arg0: &State)
120 1: MoveLoc[1](Arg1: &Clock)
121 2: MoveLoc[2](Arg2: vector<u8>)
122 3: Call parse_and_verify_le_ecdsa_update_v2(&State, &Clock, vector<u8>): Update
123 4: Call update::from_v2(Update): Update
124 5: Ret
125}
126
127public parse_and_verify_le_ecdsa_update_v2(Arg0: &State, Arg1: &Clock, Arg2: vector<u8>): Update {
128L3: loc0: BCS
129L4: loc1: vector<u8>
130L5: loc2: BCS
131L6: loc3: u16
132L7: loc4: u32
133L8: loc5: vector<u8>
134B0:
135 0: MoveLoc[2](Arg2: vector<u8>)
136 1: Call bcs::new(vector<u8>): BCS
137 2: StLoc[3](loc0: BCS)
138 3: MutBorrowLoc[3](loc0: BCS)
139 4: Call bcs::peel_u32(&mut BCS): u32
140 5: LdConst[1](u32: 1296..)
141 6: Eq
142 7: BrFalse(9)
143B1:
144 8: Branch(15)
145B2:
146 9: MoveLoc[0](Arg0: &State)
147 10: Pop
148 11: MoveLoc[1](Arg1: &Clock)
149 12: Pop
150 13: LdU64(13906834569480830984)
151 14: Abort
152B3:
153 15: VecPack(26, 0)
154 16: StLoc[8](loc5: vector<u8>)
155 17: LdU32(0)
156 18: StLoc[7](loc4: u32)
157B4:
158 19: CopyLoc[7](loc4: u32)
159 20: LdConst[0](u32: 65)
160 21: Lt
161 22: BrFalse(32)
162B5:
163 23: MutBorrowLoc[8](loc5: vector<u8>)
164 24: MutBorrowLoc[3](loc0: BCS)
165 25: Call bcs::peel_u8(&mut BCS): u8
166 26: VecPushBack(26)
167 27: MoveLoc[7](loc4: u32)
168 28: LdU32(1)
169 29: Add
170 30: StLoc[7](loc4: u32)
171 31: Branch(19)
172B6:
173 32: MutBorrowLoc[3](loc0: BCS)
174 33: Call bcs::peel_u16(&mut BCS): u16
175 34: StLoc[6](loc3: u16)
176 35: MoveLoc[3](loc0: BCS)
177 36: Call bcs::into_remainder_bytes(BCS): vector<u8>
178 37: StLoc[4](loc1: vector<u8>)
179 38: MoveLoc[6](loc3: u16)
180 39: CastU64
181 40: ImmBorrowLoc[4](loc1: vector<u8>)
182 41: VecLen(26)
183 42: Eq
184 43: BrFalse(45)
185B7:
186 44: Branch(51)
187B8:
188 45: MoveLoc[0](Arg0: &State)
189 46: Pop
190 47: MoveLoc[1](Arg1: &Clock)
191 48: Pop
192 49: LdU64(13906834633905602572)
193 50: Abort
194B9:
195 51: CopyLoc[4](loc1: vector<u8>)
196 52: Call bcs::new(vector<u8>): BCS
197 53: StLoc[5](loc2: BCS)
198 54: MutBorrowLoc[5](loc2: BCS)
199 55: Call bcs::peel_u32(&mut BCS): u32
200 56: LdConst[2](u32: 2479..)
201 57: Eq
202 58: BrFalse(60)
203B10:
204 59: Branch(66)
205B11:
206 60: MoveLoc[0](Arg0: &State)
207 61: Pop
208 62: MoveLoc[1](Arg1: &Clock)
209 63: Pop
210 64: LdU64(13906834655380307978)
211 65: Abort
212B12:
213 66: MoveLoc[0](Arg0: &State)
214 67: MoveLoc[1](Arg1: &Clock)
215 68: ImmBorrowLoc[8](loc5: vector<u8>)
216 69: ImmBorrowLoc[4](loc1: vector<u8>)
217 70: Call verify_le_ecdsa_message(&State, &Clock, &vector<u8>, &vector<u8>)
218 71: MoveLoc[5](loc2: BCS)
219 72: Call update_v2::parse_from_cursor(BCS): Update
220 73: Ret
221}
222
223Constants [
224 0 => u32: 65
225 1 => u32: 1296547300
226 2 => u32: 2479346549
227 3 => vector<u8>: "ESignerNotTrusted" // interpreted as UTF8 string
228 4 => vector<u8>: "Recovered public key is not in the trusted signers list" // interpreted as UTF8 string
229 5 => vector<u8>: "ESignerExpired" // interpreted as UTF8 string
230 6 => vector<u8>: "Signer's certificate has expired" // interpreted as UTF8 string
231 7 => vector<u8>: "EInvalidUpdateMagic" // interpreted as UTF8 string
232 8 => vector<u8>: "Invalid magic number in update" // interpreted as UTF8 string
233 9 => vector<u8>: "EInvalidPayloadMagic" // interpreted as UTF8 string
234 10 => vector<u8>: "Invalid magic number in payload" // interpreted as UTF8 string
235 11 => vector<u8>: "EInvalidPayloadLength" // interpreted as UTF8 string
236 12 => vector<u8>: "Payload length doesn't match data" // interpreted as UTF8 string
237]
238}
239
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/state.mvb301 lines
1// Move bytecode v7
2module 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580.state {
3use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::governance;
4use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::meta;
5use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::parser;
6use 0000000000000000000000000000000000000000000000000000000000000001::option;
7use 0000000000000000000000000000000000000000000000000000000000000001::type_name;
8use 0000000000000000000000000000000000000000000000000000000000000001::vector;
9use 0000000000000000000000000000000000000000000000000000000000000002::object;
10use 0000000000000000000000000000000000000000000000000000000000000002::package;
11use 0000000000000000000000000000000000000000000000000000000000000002::transfer;
12use 0000000000000000000000000000000000000000000000000000000000000002::tx_context;
13use 5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a::vaa;
14
15struct State has key {
16 id: UID,
17 trusted_signers: vector<TrustedSignerInfo>,
18 upgrade_cap: UpgradeCap,
19 governance: Governance
20}
21
22struct CurrentCap has drop {
23 dummy_field: bool
24}
25
26struct TrustedSignerInfo has copy, drop, store {
27 public_key: vector<u8>,
28 expires_at: u64
29}
30
31public(friend) secp256k1_compressed_pubkey_len(): u64 {
32B0:
33 0: LdU64(33)
34 1: Ret
35}
36
37public(friend) share(Arg0: UpgradeCap, Arg1: Governance, Arg2: &mut TxContext) {
38L3: loc0: ID
39B0:
40 0: ImmBorrowLoc[0](Arg0: UpgradeCap)
41 1: Call package::upgrade_package(&UpgradeCap): ID
42 2: StLoc[3](loc0: ID)
43 3: ImmBorrowLoc[3](loc0: ID)
44 4: Call object::id_to_address(&ID): address
45 5: Call type_name::original_id<State>(): address
46 6: Eq
47 7: BrFalse(9)
48B1:
49 8: Branch(13)
50B2:
51 9: MoveLoc[2](Arg2: &mut TxContext)
52 10: Pop
53 11: LdU64(13906834419156910087)
54 12: Abort
55B3:
56 13: Call meta::version(): u64
57 14: ImmBorrowLoc[0](Arg0: UpgradeCap)
58 15: Call package::version(&UpgradeCap): u64
59 16: Eq
60 17: BrFalse(19)
61B4:
62 18: Branch(23)
63B5:
64 19: MoveLoc[2](Arg2: &mut TxContext)
65 20: Pop
66 21: LdU64(13906834427746713605)
67 22: Abort
68B6:
69 23: MoveLoc[2](Arg2: &mut TxContext)
70 24: Call object::new(&mut TxContext): UID
71 25: VecPack(22, 0)
72 26: MoveLoc[0](Arg0: UpgradeCap)
73 27: MoveLoc[1](Arg1: Governance)
74 28: Pack[0](State)
75 29: Call transfer::share_object<State>(State)
76 30: Ret
77}
78
79public(friend) unwrap_ptgm(Arg0: &mut State, Arg1: &CurrentCap, Arg2: VAA): GovernanceHeader * Parser {
80L3: loc0: Parser
81B0:
82 0: MoveLoc[0](Arg0: &mut State)
83 1: MutBorrowField[0](State.governance: Governance)
84 2: MoveLoc[2](Arg2: VAA)
85 3: Call governance::process_incoming(&mut Governance, VAA): vector<u8>
86 4: Call parser::new(vector<u8>): Parser
87 5: StLoc[3](loc0: Parser)
88 6: MutBorrowLoc[3](loc0: Parser)
89 7: Call governance::parse_header(&mut Parser): GovernanceHeader
90 8: MoveLoc[3](loc0: Parser)
91 9: Ret
92}
93
94public(friend) authorize_upgrade(Arg0: &mut State, Arg1: &CurrentCap, Arg2: vector<u8>): UpgradeTicket {
95L3: loc0: u8
96B0:
97 0: CopyLoc[0](Arg0: &mut State)
98 1: ImmBorrowField[1](State.upgrade_cap: UpgradeCap)
99 2: Call package::upgrade_policy(&UpgradeCap): u8
100 3: StLoc[3](loc0: u8)
101 4: MoveLoc[0](Arg0: &mut State)
102 5: MutBorrowField[1](State.upgrade_cap: UpgradeCap)
103 6: MoveLoc[3](loc0: u8)
104 7: MoveLoc[2](Arg2: vector<u8>)
105 8: Call package::authorize_upgrade(&mut UpgradeCap, u8, vector<u8>): UpgradeTicket
106 9: Ret
107}
108
109public(friend) commit_upgrade(Arg0: &mut State, Arg1: &CurrentCap, Arg2: UpgradeReceipt) {
110B0:
111 0: MoveLoc[0](Arg0: &mut State)
112 1: MutBorrowField[1](State.upgrade_cap: UpgradeCap)
113 2: MoveLoc[2](Arg2: UpgradeReceipt)
114 3: Call package::commit_upgrade(&mut UpgradeCap, UpgradeReceipt)
115 4: Ret
116}
117
118public(friend) trusted_signers(Arg0: &State, Arg1: &CurrentCap): &vector<TrustedSignerInfo> {
119B0:
120 0: MoveLoc[0](Arg0: &State)
121 1: ImmBorrowField[2](State.trusted_signers: vector<TrustedSignerInfo>)
122 2: Ret
123}
124
125public(friend) update_trusted_signer(Arg0: &mut State, Arg1: &CurrentCap, Arg2: vector<u8>, Arg3: u64) {
126L4: loc0: u64
127L5: loc1: Option<u64>
128L6: loc2: u64
129L7: loc3: u64
130L8: loc4: u64
131L9: loc5: u64
132L10: loc6: &mut TrustedSignerInfo
133L11: loc7: Option<u64>
134L12: loc8: u64
135L13: loc9: &vector<TrustedSignerInfo>
136B0:
137 0: ImmBorrowLoc[2](Arg2: vector<u8>)
138 1: VecLen(29)
139 2: Call secp256k1_compressed_pubkey_len(): u64
140 3: Eq
141 4: BrFalse(6)
142B1:
143 5: Branch(10)
144B2:
145 6: MoveLoc[0](Arg0: &mut State)
146 7: Pop
147 8: LdU64(13906834672559587329)
148 9: Abort
149B3:
150 10: CopyLoc[0](Arg0: &mut State)
151 11: ImmBorrowField[2](State.trusted_signers: vector<TrustedSignerInfo>)
152 12: StLoc[13](loc9: &vector<TrustedSignerInfo>)
153 13: CopyLoc[13](loc9: &vector<TrustedSignerInfo>)
154 14: VecLen(22)
155 15: StLoc[4](loc0: u64)
156 16: LdU64(0)
157 17: StLoc[6](loc2: u64)
158 18: MoveLoc[4](loc0: u64)
159 19: StLoc[12](loc8: u64)
160B4:
161 20: CopyLoc[6](loc2: u64)
162 21: CopyLoc[12](loc8: u64)
163 22: Lt
164 23: BrFalse(44)
165B5:
166 24: CopyLoc[6](loc2: u64)
167 25: StLoc[7](loc3: u64)
168 26: CopyLoc[13](loc9: &vector<TrustedSignerInfo>)
169 27: CopyLoc[7](loc3: u64)
170 28: VecImmBorrow(22)
171 29: Call public_key(&TrustedSignerInfo): &vector<u8>
172 30: ImmBorrowLoc[2](Arg2: vector<u8>)
173 31: Eq
174 32: BrFalse(39)
175B6:
176 33: MoveLoc[13](loc9: &vector<TrustedSignerInfo>)
177 34: Pop
178 35: MoveLoc[7](loc3: u64)
179 36: Call option::some<u64>(u64): Option<u64>
180 37: StLoc[5](loc1: Option<u64>)
181 38: Branch(48)
182B7:
183 39: MoveLoc[6](loc2: u64)
184 40: LdU64(1)
185 41: Add
186 42: StLoc[6](loc2: u64)
187 43: Branch(20)
188B8:
189 44: MoveLoc[13](loc9: &vector<TrustedSignerInfo>)
190 45: Pop
191 46: Call option::none<u64>(): Option<u64>
192 47: StLoc[5](loc1: Option<u64>)
193B9:
194 48: MoveLoc[5](loc1: Option<u64>)
195 49: StLoc[11](loc7: Option<u64>)
196 50: CopyLoc[3](Arg3: u64)
197 51: LdU64(0)
198 52: Eq
199 53: BrFalse(73)
200B10:
201 54: ImmBorrowLoc[11](loc7: Option<u64>)
202 55: Call option::is_some<u64>(&Option<u64>): bool
203 56: BrFalse(58)
204B11:
205 57: Branch(64)
206B12:
207 58: MoveLoc[0](Arg0: &mut State)
208 59: Pop
209 60: MoveLoc[11](loc7: Option<u64>)
210 61: Call option::destroy_none<u64>(Option<u64>)
211 62: LdU64(13906834732689260547)
212 63: Abort
213B13:
214 64: MutBorrowLoc[11](loc7: Option<u64>)
215 65: Call option::extract<u64>(&mut Option<u64>): u64
216 66: StLoc[8](loc4: u64)
217 67: MoveLoc[0](Arg0: &mut State)
218 68: MutBorrowField[2](State.trusted_signers: vector<TrustedSignerInfo>)
219 69: MoveLoc[8](loc4: u64)
220 70: Call vector::swap_remove<TrustedSignerInfo>(&mut vector<TrustedSignerInfo>, u64): TrustedSignerInfo
221 71: Pop
222 72: Ret
223B14:
224 73: ImmBorrowLoc[11](loc7: Option<u64>)
225 74: Call option::is_some<u64>(&Option<u64>): bool
226 75: BrFalse(89)
227B15:
228 76: MutBorrowLoc[11](loc7: Option<u64>)
229 77: Call option::extract<u64>(&mut Option<u64>): u64
230 78: StLoc[9](loc5: u64)
231 79: MoveLoc[0](Arg0: &mut State)
232 80: MutBorrowField[2](State.trusted_signers: vector<TrustedSignerInfo>)
233 81: MoveLoc[9](loc5: u64)
234 82: VecMutBorrow(22)
235 83: StLoc[10](loc6: &mut TrustedSignerInfo)
236 84: MoveLoc[3](Arg3: u64)
237 85: MoveLoc[10](loc6: &mut TrustedSignerInfo)
238 86: MutBorrowField[3](TrustedSignerInfo.expires_at: u64)
239 87: WriteRef
240 88: Branch(97)
241B16:
242 89: MoveLoc[11](loc7: Option<u64>)
243 90: Call option::destroy_none<u64>(Option<u64>)
244 91: MoveLoc[0](Arg0: &mut State)
245 92: MutBorrowField[2](State.trusted_signers: vector<TrustedSignerInfo>)
246 93: MoveLoc[2](Arg2: vector<u8>)
247 94: MoveLoc[3](Arg3: u64)
248 95: Pack[2](TrustedSignerInfo)
249 96: VecPushBack(22)
250B17:
251 97: Ret
252}
253
254public(friend) current_cap(Arg0: &State): CurrentCap {
255B0:
256 0: Call meta::version(): u64
257 1: MoveLoc[0](Arg0: &State)
258 2: ImmBorrowField[1](State.upgrade_cap: UpgradeCap)
259 3: Call package::version(&UpgradeCap): u64
260 4: Eq
261 5: BrFalse(7)
262B1:
263 6: Branch(9)
264B2:
265 7: LdU64(13906834827178672133)
266 8: Abort
267B3:
268 9: LdFalse
269 10: Pack[1](CurrentCap)
270 11: Ret
271}
272
273public(friend) public_key(Arg0: &TrustedSignerInfo): &vector<u8> {
274B0:
275 0: MoveLoc[0](Arg0: &TrustedSignerInfo)
276 1: ImmBorrowField[4](TrustedSignerInfo.public_key: vector<u8>)
277 2: Ret
278}
279
280public(friend) expires_at_ms(Arg0: &TrustedSignerInfo): u64 {
281B0:
282 0: MoveLoc[0](Arg0: &TrustedSignerInfo)
283 1: ImmBorrowField[3](TrustedSignerInfo.expires_at: u64)
284 2: ReadRef
285 3: LdU64(1000)
286 4: Mul
287 5: Ret
288}
289
290Constants [
291 0 => vector<u8>: "EInvalidPubkeyLen" // interpreted as UTF8 string
292 1 => vector<u8>: "Invalid public key length, must be 33" // interpreted as UTF8 string
293 2 => vector<u8>: "ERemovedSignerNotFound" // interpreted as UTF8 string
294 3 => vector<u8>: "Could not remove non-existent trusted signer" // interpreted as UTF8 string
295 4 => vector<u8>: "EDifferentVersion" // interpreted as UTF8 string
296 5 => vector<u8>: "State can only be used with the current package version" // interpreted as UTF8 string
297 6 => vector<u8>: "EDifferentUpgradeCap" // interpreted as UTF8 string
298 7 => vector<u8>: "Supplied UpgradeCap belongs to a different package" // interpreted as UTF8 string
299]
300}
301
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/update.mvb59 lines
1// Move bytecode v7
2module 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580.update {
3use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::channel;
4use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::channel_v2;
5use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::feed;
6use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::update_v2;
7
8struct Update has copy, drop {
9 timestamp: u64,
10 channel: Channel,
11 feeds: vector<Feed>
12}
13
14public timestamp(Arg0: &Update): u64 {
15B0:
16 0: MoveLoc[0](Arg0: &Update)
17 1: ImmBorrowField[0](Update.timestamp: u64)
18 2: ReadRef
19 3: Ret
20}
21
22public channel(Arg0: &Update): Channel {
23B0:
24 0: MoveLoc[0](Arg0: &Update)
25 1: ImmBorrowField[1](Update.channel: Channel)
26 2: ReadRef
27 3: Ret
28}
29
30public feeds(Arg0: &Update): vector<Feed> {
31B0:
32 0: MoveLoc[0](Arg0: &Update)
33 1: ImmBorrowField[2](Update.feeds: vector<Feed>)
34 2: ReadRef
35 3: Ret
36}
37
38public feeds_ref(Arg0: &Update): &vector<Feed> {
39B0:
40 0: MoveLoc[0](Arg0: &Update)
41 1: ImmBorrowField[2](Update.feeds: vector<Feed>)
42 2: Ret
43}
44
45public(friend) from_v2(Arg0: Update): Update {
46B0:
47 0: ImmBorrowLoc[0](Arg0: Update)
48 1: Call update_v2::timestamp(&Update): u64
49 2: ImmBorrowLoc[0](Arg0: Update)
50 3: Call update_v2::channel(&Update): Channel
51 4: Call channel::from_v2(Channel): Channel
52 5: ImmBorrowLoc[0](Arg0: Update)
53 6: Call update_v2::feeds(&Update): vector<Feed>
54 7: Pack[0](Update)
55 8: Ret
56}
57
58}
59
0xefbfd064480777699fd9c557a5804d72ace7bc82661fdc8d1f1a44ea6d92ee10/bytecode/update_v2.mvb122 lines
1// Move bytecode v7
2module 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580.update_v2 {
3use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::channel_v2;
4use 7b502c8a7bcb3915892347f11086745570e759fe9708d03c03accf4c90bbf580::feed;
5use 0000000000000000000000000000000000000000000000000000000000000002::bcs;
6
7struct Update has copy, drop {
8 timestamp: u64,
9 channel: Channel,
10 feeds: vector<Feed>
11}
12
13public(friend) new(Arg0: u64, Arg1: Channel, Arg2: vector<Feed>): Update {
14B0:
15 0: MoveLoc[0](Arg0: u64)
16 1: MoveLoc[1](Arg1: Channel)
17 2: MoveLoc[2](Arg2: vector<Feed>)
18 3: Pack[0](Update)
19 4: Ret
20}
21
22public timestamp(Arg0: &Update): u64 {
23B0:
24 0: MoveLoc[0](Arg0: &Update)
25 1: ImmBorrowField[0](Update.timestamp: u64)
26 2: ReadRef
27 3: Ret
28}
29
30public channel(Arg0: &Update): Channel {
31B0:
32 0: MoveLoc[0](Arg0: &Update)
33 1: ImmBorrowField[1](Update.channel: Channel)
34 2: ReadRef
35 3: Ret
36}
37
38public feeds(Arg0: &Update): vector<Feed> {
39B0:
40 0: MoveLoc[0](Arg0: &Update)
41 1: ImmBorrowField[2](Update.feeds: vector<Feed>)
42 2: ReadRef
43 3: Ret
44}
45
46public feeds_ref(Arg0: &Update): &vector<Feed> {
47B0:
48 0: MoveLoc[0](Arg0: &Update)
49 1: ImmBorrowField[2](Update.feeds: vector<Feed>)
50 2: Ret
51}
52
53public(friend) parse_from_cursor(Arg0: BCS): Update {
54L1: loc0: Channel
55L2: loc1: Feed
56L3: loc2: u8
57L4: loc3: u8
58L5: loc4: vector<Feed>
59L6: loc5: vector<u8>
60L7: loc6: u64
61B0:
62 0: MutBorrowLoc[0](Arg0: BCS)
63 1: Call bcs::peel_u64(&mut BCS): u64
64 2: StLoc[7](loc6: u64)
65 3: MutBorrowLoc[0](Arg0: BCS)
66 4: Call bcs::peel_u8(&mut BCS): u8
67 5: Call channel_v2::from_u8(u8): Channel
68 6: StLoc[1](loc0: Channel)
69 7: MutBorrowLoc[0](Arg0: BCS)
70 8: Call bcs::peel_u8(&mut BCS): u8
71 9: StLoc[3](loc2: u8)
72 10: VecPack(12, 0)
73 11: StLoc[5](loc4: vector<Feed>)
74 12: LdU8(0)
75 13: StLoc[4](loc3: u8)
76B1:
77 14: CopyLoc[4](loc3: u8)
78 15: CopyLoc[3](loc2: u8)
79 16: Lt
80 17: BrFalse(30)
81B2:
82 18: Branch(19)
83B3:
84 19: MutBorrowLoc[0](Arg0: BCS)
85 20: Call feed::parse_from_cursor(&mut BCS): Feed
86 21: StLoc[2](loc1: Feed)
87 22: MutBorrowLoc[5](loc4: vector<Feed>)
88 23: MoveLoc[2](loc1: Feed)
89 24: VecPushBack(12)
90 25: MoveLoc[4](loc3: u8)
91 26: LdU8(1)
92 27: Add
93 28: StLoc[4](loc3: u8)
94 29: Branch(14)
95B4:
96 30: MoveLoc[0](Arg0: BCS)
97 31: Call bcs::into_remainder_bytes(BCS): vector<u8>
98 32: StLoc[6](loc5: vector<u8>)
99 33: ImmBorrowLoc[6](loc5: vector<u8>)
100 34: VecLen(11)
101 35: LdU64(0)
102 36: Eq
103 37: BrFalse(39)
104B5:
105 38: Branch(41)
106B6:
107 39: LdU64(13906834427746451457)
108 40: Abort
109B7:
110 41: MoveLoc[7](loc6: u64)
111 42: MoveLoc[1](loc0: Channel)
112 43: MoveLoc[5](loc4: vector<Feed>)
113 44: Pack[0](Update)
114 45: Ret
115}
116
117Constants [
118 0 => vector<u8>: "ETrailingPayloadData" // interpreted as UTF8 string
119 1 => vector<u8>: "Trailing Update payload data" // interpreted as UTF8 string
120]
121}
122
This is a circuit, not a contract. It declares no ABI and no storage layout, so there is no interface list and no slot mapping to show. The source above is the whole of what it publishes.
Deployments
This code is deployed at one address. Any other address running the same bytecode would appear here too, already verified.