rangeproofs
Module0x0000…0002
- Move path
- 0x0000…0002::rangeproofs
- Functions
- 32 public, 0 entry
- Structs
- 0
- Friend modules
- None
rangeproofs
- accumulator18
- accumulator_metadata2
- accumulator_settlement8
- address10
- address_alias5
- allowance40
- authenticator_state13
- bag10
- balance18
- bcs30
- bls1238143
- borrow4
- clock3
- coin54
- coin_registry43
- config11
- deny_list21
- derived_object3
- display14
- display_registry18
- dynamic_field19
- dynamic_object_field15
- ecdsa_k13
- ecdsa_r12
- ecvrf1
- ed255191
- event3
- forwarding_address1
- funds_accumulator12
- groth1610
- group_ops23
- hash2
- hex3
- hmac1
- kiosk41
- kiosk_extension14
- linked_table19
- math7
- nitro_attestation11
- object32
- object_bag11
- object_table10
- package26
- party5
- pay8
- poseidon2
- priority_queue8
- protocol_config1
- prover0
- random20
- rangeproofs3
- ristretto25518
- scratch18
- sui2
- table10
- table_vec12
- token45
- transfer16
- transfer_policy18
- tx_context19
- types1
- url4
- vdf4
- vec_map20
- vec_set11
- versioned7
- zklogin_verified_id9
- zklogin_verified_issuer6
Bytecode131 lines
The on-chain disassembly. Offsets are bytecode positions within each function.
// Move bytecode v7
module 2.rangeproofs {
use 0000000000000000000000000000000000000000000000000000000000000002::group_ops;
use 0000000000000000000000000000000000000000000000000000000000000002::ristretto255;
public verify_bulletproofs_with_dst_ristretto255(Arg0: &vector<u8>, Arg1: u8, Arg2: &vector<Element<G>>, Arg3: &vector<u8>, Arg4: u8): bool {
L5: loc0: u64
L6: loc1: vector<u8>
L7: loc2: &mut vector<vector<u8>>
L8: loc3: vector<vector<u8>>
L9: loc4: u8
L10: loc5: &vector<u8>
L11: loc6: u8
L12: loc7: &Element<G>
L13: loc8: u64
L14: loc9: u64
L15: loc10: vector<vector<u8>>
L16: loc11: u64
L17: loc12: &vector<Element<G>>
L18: loc13: &vector<Element<G>>
B0:
0CopyLoc[3](Arg3: &vector<u8>)
1VecLen(5)
2LdConst[6](u64: 64)
3Le
4BrFalse(6)
B1:
5Branch(14)
B2:
6MoveLoc[0](Arg0: &vector<u8>)
7Pop
8MoveLoc[3](Arg3: &vector<u8>)
9Pop
10MoveLoc[2](Arg2: &vector<Element<G>>)
11Pop
12LdConst[5](u64: 5)
13Abort
B3:
14MoveLoc[4](Arg4: u8)
15StLoc[11](loc6: u8)
16ImmBorrowLoc[11](loc6: u8)
17ReadRef
18LdU8(0)
19Eq
20BrFalse(62)
B4:
21MoveLoc[0](Arg0: &vector<u8>)
22StLoc[10](loc5: &vector<u8>)
23MoveLoc[1](Arg1: u8)
24StLoc[9](loc4: u8)
25MoveLoc[2](Arg2: &vector<Element<G>>)
26StLoc[17](loc12: &vector<Element<G>>)
27LdConst[7](vector<vector<u8>>: 00)
28StLoc[15](loc10: vector<vector<u8>>)
29MoveLoc[17](loc12: &vector<Element<G>>)
30StLoc[18](loc13: &vector<Element<G>>)
31CopyLoc[18](loc13: &vector<Element<G>>)
32VecLen(6)
33StLoc[5](loc0: u64)
34LdU64(0)
35StLoc[14](loc9: u64)
36MoveLoc[5](loc0: u64)
37StLoc[16](loc11: u64)
B5:
38CopyLoc[14](loc9: u64)
39CopyLoc[16](loc11: u64)
40Lt
41BrFalse(70)
B6:
42CopyLoc[14](loc9: u64)
43StLoc[13](loc8: u64)
44CopyLoc[18](loc13: &vector<Element<G>>)
45MoveLoc[13](loc8: u64)
46VecImmBorrow(6)
47StLoc[12](loc7: &Element<G>)
48MutBorrowLoc[15](loc10: vector<vector<u8>>)
49StLoc[7](loc2: &mut vector<vector<u8>>)
50MoveLoc[12](loc7: &Element<G>)
51Call group_ops::bytes<G>(&Element<G>): &vector<u8>
52ReadRef
53StLoc[6](loc1: vector<u8>)
54MoveLoc[7](loc2: &mut vector<vector<u8>>)
55MoveLoc[6](loc1: vector<u8>)
56VecPushBack(10)
57MoveLoc[14](loc9: u64)
58LdU64(1)
59Add
60StLoc[14](loc9: u64)
61Branch(38)
B7:
62MoveLoc[0](Arg0: &vector<u8>)
63Pop
64MoveLoc[3](Arg3: &vector<u8>)
65Pop
66MoveLoc[2](Arg2: &vector<Element<G>>)
67Pop
68LdConst[4](u64: 4)
69Abort
B8:
70MoveLoc[18](loc13: &vector<Element<G>>)
71Pop
72MoveLoc[15](loc10: vector<vector<u8>>)
73StLoc[8](loc3: vector<vector<u8>>)
74MoveLoc[10](loc5: &vector<u8>)
75MoveLoc[9](loc4: u8)
76ImmBorrowLoc[8](loc3: vector<vector<u8>>)
77MoveLoc[3](Arg3: &vector<u8>)
78Call verify_bulletproofs_with_dst_ristretto255_internal(&vector<u8>, u8, &vector<vector<u8>>, &vector<u8>): bool
79Ret
}
public verify_bulletproofs_ristretto255(Arg0: &vector<u8>, Arg1: u8, Arg2: &vector<Element<G>>, Arg3: u8): bool {
B0:
0LdConst[0](u64: 0)
1Abort
}
native verify_bulletproofs_with_dst_ristretto255_internal(Arg0: &vector<u8>, Arg1: u8, Arg2: &vector<vector<u8>>, Arg3: &vector<u8>): bool;
Constants [
0 => u64: 0
1 => u64: 1
2 => u64: 2
3 => u64: 3
4 => u64: 4
5 => u64: 5
6 => u64: 64
7 => vector<vector<u8>>: 00
]
}