GMJDM2KTUACQRY7RQYC25U4UCVD6JEIU3A45GPOCK2QTJS56WQ3AC HBGI4YTMWN2OO5DF5363WFSEZMKVZW7RDSVHO5OQWOZ7AQHKXWZQC 2R3WFEOT3WWS6NFBBABSVRUNUPTXHFFMGPZZQOCPLTD2WB3U55HQC 755UGKECZ3PFYEA2TFFOUZTF27CRQTBZWO7UYFU6WQDJMZDBVPRAC ULS4X3VORQZFBSNPXN76UFH2PWS2MVBA64CJQS3IR4YUHIKEF6GQC OJ6KWAG7XUCYNQ6T3FRJK2QOP7DBO26PZEWDVH3Q2MJKIBMNWRPQC JVURIEXR72OUGZ2EHP5HB6OMXUNPHMAV66YUUP2444TPOG5XGASQC R4JDMB7LL3FLA4NJEAV2DQEXII5XS5KIMG3H4YS5P6W7ZZUE7FIQC RUYSGXKQE4F7GWQ6OFI6DABOHVCNOGCYFTUQPK3XTPZ2UPGD4Y2QC YWCRGWVDIMCPXBQFM23MKCYZCXJJSD733NJEPB6WUU4G4BSREILAC JMYRP5MUPSBHABHBPIO45F6RC7QSQSNO2EJDUDUIQXX3MEEFDOAQC 55WLMLEEVBRSTAFRZ5RGF7TOGUF5OPVCPA2TMHAQK45OUO7PA3YQC IHBNW3GI2XB6KAWUYRLL6KDOBUNUOU3N7RRLS6BFNW6SE7ZDHLWQC M4TNRFRPHEH6T673JAMJ3CHABASCWMAJVU57HH2XEMDJCB3QPT5QC CBHKQGLDCAH2E4ZNACITBSMADOKPERFCWQPUGMH7UN5TLJXLYI4QC DZZ4B3UGIYTN3OHAKS2HNCLK7KM2ZSHPZ4JC6YVQL6I2H4KCD5PAC {description = "Repro flake";inputs.flake-utils.url = "github:numtide/flake-utils";outputs = {self,nixpkgs,flake-utils,}:flake-utils.lib.eachDefaultSystem(system: letpkgs = nixpkgs.legacyPackages.${system};in {devShells.default = import ./shell.nix {inherit pkgs;};});}
{"nodes": {"flake-utils": {"inputs": {"systems": "systems"},"locked": {"lastModified": 1701680307,"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=","owner": "numtide","repo": "flake-utils","rev": "4022d587cbbfd70fe950c1e2083a02621806a725","type": "github"},"original": {"owner": "numtide","repo": "flake-utils","type": "github"}},"nixpkgs": {"locked": {"lastModified": 1703499205,"narHash": "sha256-lF9rK5mSUfIZJgZxC3ge40tp1gmyyOXZ+lRY3P8bfbg=","owner": "NixOS","repo": "nixpkgs","rev": "e1fa12d4f6c6fe19ccb59cac54b5b3f25e160870","type": "github"},"original": {"id": "nixpkgs","type": "indirect"}},"root": {"inputs": {"flake-utils": "flake-utils","nixpkgs": "nixpkgs"}},"systems": {"locked": {"lastModified": 1681028828,"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=","owner": "nix-systems","repo": "default","rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e","type": "github"},"original": {"owner": "nix-systems","repo": "default","type": "github"}}},"root": "root","version": 7}
decode_post_header(Data) -><< PubKey:32/binary, Signature:64/binary, SignedData/binary>> = Data,true = enacl:sign_verify_detached(Signature, SignedData, PubKey),{NumLinks, Rest} = wire:decode_varint(SignedData),<<LinkData:(32*NumLinks)/binary, Rest2/binary>> = Rest,Links = [Link || <<Link:32/binary>> <= LinkData],case length(Links) =:= NumLinks offalse ->ErrMsg = io_lib:format("invalid num_links - expected ~p but got ~p", [NumLinks, length(Links)]),erlang:error(lists:flatten(ErrMsg));true ->[PostType, Timestamp, PostBody] = wire:decode_varints(Rest2, 2),PostHash = enacl:generichash(32, Data),[[ {public_key, PubKey}, {links, Links}, {type, PostType}, {timestamp, Timestamp}, {hash, PostHash}], PostBody]end.
decode_post_header(Data) -><< PubKey:32/binary, Signature:64/binary, SignedData/binary>> = Data,true = enacl:sign_verify_detached(Signature, SignedData, PubKey),{NumLinks, Rest} = wire:decode_varint(SignedData),<<LinkData:(32*NumLinks)/binary, Rest2/binary>> = Rest,Links = [Link || <<Link:32/binary>> <= LinkData],case length(Links) =:= NumLinks offalse ->ErrMsg = io_lib:format("invalid num_links - expected ~p but got ~p", [NumLinks, length(Links)]),erlang:error(lists:flatten(ErrMsg));true ->[PostType, Timestamp, PostBody] = wire:decode_varints(Rest2, 2),PostHash = enacl:generichash(32, Data),[[ {public_key, PubKey}, {links, Links}, {type, PostType}, {timestamp, Timestamp}, {hash, PostHash}], PostBody]end.