@@ -23,14 +23,14 @@ const ssz = @import("../../ssz/ssz.zig");
2323/// current_version=current_version,
2424/// genesis_validators_root=genesis_validators_root,
2525/// ))
26- pub fn computeForkDataRoot (current_version : primitives.Version , genesis_validators_root : primitives.Root , allocator : std.mem.Allocator ) ! primitives.Root {
26+ pub fn computeForkDataRoot (current_version : primitives.Version , genesis_validators_root : * const primitives.Root , allocator : std.mem.Allocator ) ! primitives.Root {
2727 const fork_data = consensus.ForkData {
2828 .current_version = current_version ,
29- .genesis_validators_root = genesis_validators_root ,
29+ .genesis_validators_root = genesis_validators_root .* ,
3030 };
3131
3232 var out : primitives.Root = undefined ;
33- try ssz .hashTreeRoot (fork_data , & out , allocator );
33+ try ssz .hashTreeRoot (& fork_data , & out , allocator );
3434 return out ;
3535}
3636
@@ -49,7 +49,7 @@ pub fn computeForkDataRoot(current_version: primitives.Version, genesis_validato
4949/// 4-bytes suffices for practical separation of forks/chains.
5050/// """
5151/// return ForkDigest(compute_fork_data_root(current_version, genesis_validators_root)[:4])
52- pub fn computeForkDigest (currentVersion : primitives.Version , genesisValidatorsRoot : primitives.Root , allocator : std.mem.Allocator ) ! primitives.ForkDigest {
52+ pub fn computeForkDigest (currentVersion : primitives.Version , genesisValidatorsRoot : * const primitives.Root , allocator : std.mem.Allocator ) ! primitives.ForkDigest {
5353 const forkDataRoot = try computeForkDataRoot (currentVersion , genesisValidatorsRoot , allocator );
5454 return forkDataRoot [0.. 4].* ;
5555}
@@ -71,12 +71,12 @@ pub fn computeForkDigest(currentVersion: primitives.Version, genesisValidatorsRo
7171/// genesis_validators_root = Root() # all bytes zero by default
7272/// fork_data_root = compute_fork_data_root(fork_version, genesis_validators_root)
7373/// return Domain(domain_type + fork_data_root[:28])
74- pub fn computeDomain (domain_type : primitives.DomainType , fork_version : ? primitives.Version , genesis_validators_root : ? primitives.Root , allocator : std.mem.Allocator ) ! primitives.Domain {
74+ pub fn computeDomain (domain_type : primitives.DomainType , fork_version : ? primitives.Version , genesis_validators_root : ? * const primitives.Root , allocator : std.mem.Allocator ) ! primitives.Domain {
7575 const DOMAIN_TYPE_LENGTH : usize = 4 ;
7676 const FORK_DATA_ROOT_LENGTH : usize = 28 ;
7777
7878 const effective_fork_version = fork_version orelse configs .ActiveConfig .get ().GENESIS_FORK_VERSION ;
79- const effective_genesis_validators_root = genesis_validators_root orelse @as (primitives .Root , .{0 } ** 32 );
79+ const effective_genesis_validators_root = genesis_validators_root orelse & @as (primitives .Root , .{0 } ** 32 );
8080
8181 const fork_data_root = try computeForkDataRoot (effective_fork_version , effective_genesis_validators_root , allocator );
8282
@@ -106,21 +106,21 @@ pub fn computeDomain(domain_type: primitives.DomainType, fork_version: ?primitiv
106106pub fn getDomain (state : * const consensus.BeaconState , domainType : primitives.DomainType , epoch : ? primitives.Epoch , allocator : std.mem.Allocator ) ! primitives.Domain {
107107 const current_epoch = epoch orelse epoch_helper .getCurrentEpoch (state );
108108 const fork_version = if (current_epoch < state .fork ().epoch ) state .fork ().previous_version else state .fork ().current_version ;
109- return try computeDomain (domainType , fork_version , state .genesisValidatorsRoot (), allocator );
109+ return try computeDomain (domainType , fork_version , & state .genesisValidatorsRoot (), allocator );
110110}
111111
112112test "test computeForkDigest" {
113113 const currentVersion = .{3 } ** 4 ;
114114 const genesisValidatorsRoot = .{2 } ** 32 ;
115- const forkDigest = try computeForkDigest (currentVersion , genesisValidatorsRoot , std .testing .allocator );
115+ const forkDigest = try computeForkDigest (currentVersion , & genesisValidatorsRoot , std .testing .allocator );
116116 try std .testing .expectEqual (4 , forkDigest .len );
117117 try std .testing .expectEqual ([4 ]u8 { 164 , 100 , 54 , 186 }, forkDigest );
118118}
119119
120120test "test computeForkDataRoot" {
121121 const currentVersion = .{0 } ** 4 ;
122122 const genesisValidatorsRoot = .{0 } ** 32 ;
123- const forkDataRoot = try computeForkDataRoot (currentVersion , genesisValidatorsRoot , std .testing .allocator );
123+ const forkDataRoot = try computeForkDataRoot (currentVersion , & genesisValidatorsRoot , std .testing .allocator );
124124 try std .testing .expectEqual (32 , forkDataRoot .len );
125125 try std .testing .expectEqual ([32 ]u8 { 245 , 165 , 253 , 66 , 209 , 106 , 32 , 48 , 39 , 152 , 239 , 110 , 211 , 9 , 151 , 155 , 67 , 0 , 61 , 35 , 32 , 217 , 240 , 232 , 234 , 152 , 49 , 169 , 39 , 89 , 251 , 75 }, forkDataRoot );
126126}
@@ -129,7 +129,7 @@ test "test computeDomain" {
129129 const domainType = .{2 } ** 4 ;
130130 const forkVersion = .{4 } ** 4 ;
131131 const genesisValidatorsRoot = .{5 } ** 32 ;
132- const domain = try computeDomain (domainType , forkVersion , genesisValidatorsRoot , std .testing .allocator );
132+ const domain = try computeDomain (domainType , forkVersion , & genesisValidatorsRoot , std .testing .allocator );
133133 try std .testing .expectEqual (32 , domain .len );
134134 try std .testing .expectEqual ([32 ]u8 { 2 , 2 , 2 , 2 , 32 , 125 , 236 , 13 , 25 , 22 , 206 , 134 , 1 , 218 , 218 , 156 , 241 , 61 , 204 , 254 , 64 , 74 , 66 , 44 , 6 , 212 , 31 , 140 , 234 , 29 , 169 , 68 }, domain );
135135}
0 commit comments