From 394ace31d25a9266864d720a3e542793fb3dcc0c Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Wed, 6 Sep 2023 15:34:21 +0200 Subject: [PATCH 1/4] proof: add magic bytes prefix to proofs and files --- proof/file.go | 25 +- proof/proof.go | 67 ++++ proof/proof_test.go | 32 +- proof/testdata/ownership-proof.hex | 2 +- proof/testdata/proof-file.hex | 2 +- proof/testdata/proof.hex | 2 +- .../proof_tlv_encoding_generated.json | 16 +- .../testdata/proof_tlv_encoding_regtest.json | 306 +++++++++--------- 8 files changed, 284 insertions(+), 168 deletions(-) diff --git a/proof/file.go b/proof/file.go index 75f567a56..cfc6a7d69 100644 --- a/proof/file.go +++ b/proof/file.go @@ -97,7 +97,15 @@ func NewFile(v Version, proofs ...Proof) (*File, error) { // Encode encodes the proof file into `w` including its checksum. func (f *File) Encode(w io.Writer) error { - err := binary.Write(w, binary.BigEndian, uint32(f.Version)) + num, err := w.Write(FilePrefixMagicBytes[:]) + if err != nil { + return err + } + if num != PrefixMagicBytesLength { + return errors.New("failed to write prefix magic bytes") + } + + err = binary.Write(w, binary.BigEndian, uint32(f.Version)) if err != nil { return err } @@ -137,6 +145,21 @@ func (f *File) Encode(w io.Writer) error { // Decode decodes a proof file from `r`. func (f *File) Decode(r io.Reader) error { + var prefixMagicBytes [PrefixMagicBytesLength]byte + num, err := r.Read(prefixMagicBytes[:]) + if err != nil { + return err + } + if num != PrefixMagicBytesLength { + return errors.New("failed to read prefix magic bytes") + } + + if prefixMagicBytes != FilePrefixMagicBytes { + return fmt.Errorf("invalid prefix magic bytes, expected %s, "+ + "got %s", string(FilePrefixMagicBytes[:]), + string(prefixMagicBytes[:])) + } + var version uint32 if err := binary.Read(r, binary.BigEndian, &version); err != nil { return err diff --git a/proof/proof.go b/proof/proof.go index 7074eeeff..4dd9af215 100644 --- a/proof/proof.go +++ b/proof/proof.go @@ -1,7 +1,9 @@ package proof import ( + "bytes" "errors" + "fmt" "io" "github.com/btcsuite/btcd/wire" @@ -58,6 +60,48 @@ var ( RegtestOwnershipProofName = "ownership-proof.hex" ) +const ( + // PrefixMagicBytesLength is the length of the magic bytes that are + // prefixed to individual proofs or proof files. + PrefixMagicBytesLength = 4 +) + +var ( + // PrefixMagicBytes are the magic bytes that are prefixed to an + // individual transition or mint proof when encoding it. This is the + // ASCII encoding of the string "TAPP" (Taproot Assets Protocol Proof) + // in hex. + PrefixMagicBytes = [PrefixMagicBytesLength]byte{0x54, 0x41, 0x50, 0x50} + + // FilePrefixMagicBytes are the magic bytes that are prefixed to a proof + // file when encoding it. This is the ASCII encoding of the string + // "TAPF" (Taproot Assets Protocol File) in hex. + FilePrefixMagicBytes = [PrefixMagicBytesLength]byte{ + 0x54, 0x41, 0x50, 0x46, + } +) + +// IsSingleProof returns true if the given blob is an encoded individual +// mint/transition proof. +func IsSingleProof(blob Blob) bool { + if len(blob) < PrefixMagicBytesLength { + return false + } + + return bytes.Equal(blob[:PrefixMagicBytesLength], PrefixMagicBytes[:]) +} + +// IsProofFile returns true if the given blob is an encoded proof file. +func IsProofFile(blob Blob) bool { + if len(blob) < PrefixMagicBytesLength { + return false + } + + return bytes.Equal( + blob[:PrefixMagicBytesLength], FilePrefixMagicBytes[:], + ) +} + // UpdateCallback is a callback that is called when proofs are updated because // of a re-org. type UpdateCallback func([]*Proof) error @@ -212,6 +256,14 @@ func (p *Proof) DecodeRecords() []tlv.Record { // Encode encodes a Proof into `w`. func (p *Proof) Encode(w io.Writer) error { + num, err := w.Write(PrefixMagicBytes[:]) + if err != nil { + return err + } + if num != PrefixMagicBytesLength { + return errors.New("failed to write prefix magic bytes") + } + stream, err := tlv.NewStream(p.EncodeRecords()...) if err != nil { return err @@ -221,6 +273,21 @@ func (p *Proof) Encode(w io.Writer) error { // Decode decodes a Proof from `r`. func (p *Proof) Decode(r io.Reader) error { + var prefixMagicBytes [PrefixMagicBytesLength]byte + num, err := r.Read(prefixMagicBytes[:]) + if err != nil { + return err + } + if num != PrefixMagicBytesLength { + return errors.New("failed to read prefix magic bytes") + } + + if prefixMagicBytes != PrefixMagicBytes { + return fmt.Errorf("invalid prefix magic bytes, expected %s, "+ + "got %s", string(PrefixMagicBytes[:]), + string(prefixMagicBytes[:])) + } + stream, err := tlv.NewStream(p.DecodeRecords()...) if err != nil { return err diff --git a/proof/proof_test.go b/proof/proof_test.go index 9336b64c9..651dbdc37 100644 --- a/proof/proof_test.go +++ b/proof/proof_test.go @@ -246,12 +246,38 @@ func TestProofEncoding(t *testing.T) { require.NoError(t, err) proof.AdditionalInputs = []File{*file, *file} - var buf bytes.Buffer - require.NoError(t, proof.Encode(&buf)) + var proofBuf bytes.Buffer + require.NoError(t, proof.Encode(&proofBuf)) + proofBytes := proofBuf.Bytes() + var decodedProof Proof - require.NoError(t, decodedProof.Decode(&buf)) + require.NoError(t, decodedProof.Decode(bytes.NewReader(proofBytes))) assertEqualProof(t, &proof, &decodedProof) + + // Make sure the proof and proof file prefixes are checked correctly. + var fileBuf bytes.Buffer + require.NoError(t, file.Encode(&fileBuf)) + fileBytes := fileBuf.Bytes() + + p := &Proof{} + err = p.Decode(bytes.NewReader(fileBytes)) + require.ErrorContains( + t, err, "invalid prefix magic bytes, expected TAPP", + ) + + f := &File{} + err = f.Decode(bytes.NewReader(proofBytes)) + require.ErrorContains( + t, err, "invalid prefix magic bytes, expected TAPF", + ) + + require.True(t, IsSingleProof(proofBytes)) + require.True(t, IsProofFile(fileBytes)) + require.False(t, IsProofFile(proofBytes)) + require.False(t, IsSingleProof(fileBytes)) + require.False(t, IsProofFile(nil)) + require.False(t, IsSingleProof(nil)) } func genRandomGenesisWithProof(t testing.TB, assetType asset.Type, diff --git a/proof/testdata/ownership-proof.hex b/proof/testdata/ownership-proof.hex index f2a870e0e..c9e2ff28c 100644 --- a/proof/testdata/ownership-proof.hex +++ b/proof/testdata/ownership-proof.hex @@ -1 +1 @@ -00240eebbbf4b53b1759d7cac14c6414b85815bf4df5f91f9ab7db3af230d787c1e000000001015000004020881098b292c1342c3880f14b416a641c21c2f312ce0127bb121f27d5a15496433da16a1b841ed6743acdae8eab606ab9a0820aecb5e57da538573d1e879f4178577cf064ffff7f200200000002fd018c0200000000010200f7627d2a9f7186d9e3e18009a81dc39d7d5c527b4ecb4049d02f3d4d07e5940000000000ffffffff0eebbbf4b53b1759d7cac14c6414b85815bf4df5f91f9ab7db3af230d787c1e001000000000000000003e8030000000000002251201ddfbf3832ad0061453e6533e2b98bb6b344ef9addb3222cb56a9f37fadee2bbe8030000000000002251205a7c661fd2b45837e8b1096cac64dff973b8afa3deb3c269c95af12a5ee348884aa9f505000000002251200c011e5c0cf6fe653634b835845f835b95a07818336e45d0fa51bf8eacba085f0247304402206a96d02679d947906572e8083569aa2c2ce4a582f4c0f75aa9c313bee9daf7d8022052af856a8f8b8e69d689ac3c9b3ef348ea38728942750b913771abfe3f08e07c01210246e7a2190cfa4cfd80ef894cc0e3752e682a8cb334710c01fc11f5ead08a910c0140ec31f6ed956aee5b5bf5d6a0040c5c0de9727537db72e6bf8b5a37a531225ccf63591131043b1c4e6cc9d58238df2c402fa404118d52f65123d103916c1970300000000003220163b1e755ba02747c67db8fe1fa693dcf9e66f9333f58bffb4f06ce8501c207fb0004fd02b400010001590075dc43685274cde4fe26577ae1bc945cedd6d2421ea22bde862ea9d5c7278c000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a000151a8d993f84dbcbd37fa9e637701df24adcd8ecb9f3673d52c4e2ee2ead56e5c0000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffd016600010001590075dc43685274cde4fe26577ae1bc945cedd6d2421ea22bde862ea9d5c7278c000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806ad01ab00650eebbbf4b53b1759d7cac14c6414b85815bf4df5f91f9ab7db3af230d787c1e000000001af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd402c3239dc920d64be74c8ed1dfccaa26550e5c8cee2d6d12881ab0d3183c60d6ad01420140afa7bdc77debb61cbf36aa9cb601534d52aa49a1079cf64a1d44586e651bfa0fa02deea716e6e4f8fe8eae052b5950a54b1fc0b2eaf522c0b467a86b4de2546f07281b4bd820fed5f617faf7f481a8d076dd8be8e7fe5ca5e3163282c9105818d54900000000000004b0080200000921026fbf5bf92953f9bcf93603befd44dc83fcfd813a5a4adb40be42427378e8b5b508020000092102777d47bfc5e62bdd5199995fb6c485069239b92b083d9d6723917b75176d70ac059f000400000001012102bb464af24d0d8a24611c821e08f3fd57054ccac7b5875905bc6e045060f79503027400490001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd402220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06f802c700040000000001210315e5b3b06d61b3ad951f51d1daf4a3b8ec224224ea4025e72dda731d590497c9029c00710001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd4024a0001c4207b6354ab04e407d260e4e01f8a0626639071b556a0961da00fbfe7c7964f0000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e000400000002012102c7df030275b2ea0de67f7158d8cc1bd28fe98881d1fdac0db674ad62d04b02ce0303020101079f00040000000001210315e5b3b06d61b3ad951f51d1daf4a3b8ec224224ea4025e72dda731d590497c9027400490001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd402220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a420140f840a182fba1a6eae0c1bcd7d9e4bc257c711480e2d7f93dd421134f23c63ebccf327a6930ce0bcbd17bd388659db0d59e272d9877fcc1fef68e9a901bf9efa10b04000001bc \ No newline at end of file +5441505000248f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff190000000101500000402017b41c426f6e0ea2318a0272c0e5166355a97e0b45e014ae265b055cf15e4a09cac22e8351343ddf97acbf38f547709654cc4cdb49bdfb77c3b195e44e1345cd697ef864ffff7f200000000002fd018c02000000000102000b9c5425fd4186521743f78203b73a0cc85fffeeb48026f11bb6eed16a1f290000000000ffffffff8f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff1901000000000000000003e8030000000000002251206be9cc2c4d68ec4e9827bff12067bca0770a92fd10e346c9587eb674e534b2d4e8030000000000002251209556a078749c7a768ccbb97124296639ffa4785b59c82c4c135121e0217a96a44aa9f50500000000225120a152904d7685c3e24c348784140064f68ea252af71560c9c400574e696f375f502473044022069b2a86cf0a1e9f3f23bd38cab06c99a3ed326b4a2bdf932c744e8a662fe9cf302206911494f403f7e0aff12d53a3ec8dff3b8792bbcb6769499ae84e0423e39486c012102e641075343b4dae91de76437617f51a4c251395600c763595a8128f296dcb02901404986e85a6e29e02504b22b313bff0de240164a5b2d1309d2ffe1b841742c72042c40b70609c0206a6660d97dd812911eb054f2548d847989937b7e06459753460000000003220162a6107a3639a2d6d21ea74f905bbdd2cd760247197c19250125cce69ad617150004fd02b400010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a0001cac8adc6fbff43b96418da0830e41cc24e687198fae443bbe64d13df6630dc830000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffd016600010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806ad01ab00658f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff19000000010fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b960232cad83de89c46e89e5522cf298fa8082ff0724bc4b9d9f8f577984e21ebb2bb014201408d602ec4a118925c23597faa896bccb675025b95f6827e29d6aa4a109eeea5ff64abdef145caa91bcba5f89d5dc79186620b1ce71db2780417fc1cefe584d7d607287a1d9a8372ee98c20893e1ab4d8028f1d3661c5fee83dbcfc528bfa738e5b07100000000000004b008020000092102efd8980ab3cacc9183c45bbbdded673416dba20a21486343d2dbbc5c37a0659b080200000921021cd140129b6140352dbf4469c8f2fbe4b3567479925f0619f59e8dfad0e0ea02059f000400000001012103a5d14787afdd48b27852302d8e6044adc80b2b09a84e405bd15df0a58372cb090274004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06f802c7000400000000012103a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb029c007100010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96024a000113e93b60b459b01018e7d1c419a0c085dc2a8022272f096228640e957005277a0000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e000400000002012102fe7cd697bcc60a44dfd209ed970e6cd14d6094506a47a2a6a5b0cfa6f63dd0d60303020101079f000400000000012103a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb0274004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a420140e960b17b2a7553e40958ee541c99c31b1143fb6ff70c363d04a761111ec634e4526d969945031d185f32df5f20bc2a2e6b4617e58db851fe559bf91f8e9ea4b70b04000001bc \ No newline at end of file diff --git a/proof/testdata/proof-file.hex b/proof/testdata/proof-file.hex index 55b4782f0..03bf8eaa5 100644 --- a/proof/testdata/proof-file.hex +++ b/proof/testdata/proof-file.hex @@ -1 +1 @@ -0000000003fd03a500240075dc43685274cde4fe26577ae1bc945cedd6d2421ea22bde862ea9d5c7278c00000000015000004020f3b1f5678be552bed7e5c7934c5c4410c4a5cb38e4fcb79762a167e841bbf140ce2701ce9a58242674b0675332033a75cc826e11a1a149291dccacd5dba088f4577cf064ffff7f200000000002f7020000000001010075dc43685274cde4fe26577ae1bc945cedd6d2421ea22bde862ea9d5c7278c0000000000ffffffff02e8030000000000002251203f14f9879caf5980cf06ee528618bb569d08e7af82e5aeef732bd6669e69fb36debcf50500000000225120c7be5a35a6b042f01ee2cd52387b0ff714baf9f5f03abd169450ef9b1d7707f1024830450221008585233aae8776c412539ca1675e7026942e7141a32fd760869c5ea12a463a25022014b202def049366aa2c52f9ec4e7ee8acd797891d499476fb305a1ab6c14ddfb01210313e499ecccb83ce7e787d23dc5d8673f82211f2e338dd0202442d55e6a9802ce000000000322012a414b75ee924477df5387157ba581e33e3486ac335c54017af1cb9846666ac10004f800010001590075dc43685274cde4fe26577ae1bc945cedd6d2421ea22bde862ea9d5c7278c000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd05dc0669016700650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080200000921028f2ec254f3d2a77f33b59052259c362df9522c7381cb5eae806926b9befa61e405c70004000000000121036632517780526511df3bc30f459fbcb37edc39df32dd5426a477392a7894bf87029c00490001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd402220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a000142957dcc822646ead1dba532e3aa83019974b8e3cb1d256d5584156761c2574600000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf0630012e000400000001012102df7cb70270644e0562159c2fca31ab51021d74fa14f9301f6425880a45bae5ac03030201010813000100010e69746573742d6d657461646174610b04000001b964b113349610a213aac1ee618a16c265b9ec6bcb95b326d97bbc9f29e52322d6fd077800245b2cfe0f518d8e50fdffb4cfc1cda1451c950876091d641a3517363682f574fd000000000150000040208c3ed8c123e79458e55b9306094fdb5a1d9d5d3f479104bee3de92fd1413a402fd879d7b91935640e95d94a5885b82088868a9cc6dea96ff0c2afd0a9a534773577cf064ffff7f200000000002fd018c020000000001020768ce2e16c6da1464f7596af706c48de630a854baf609afd7940ecbf7685e970000000000ffffffff5b2cfe0f518d8e50fdffb4cfc1cda1451c950876091d641a3517363682f574fd00000000000000000003e803000000000000225120fcc231cc52f526e5454a5014b0e450dbb3848170836c4b74525add097f9e37f9e8030000000000002251201748ef3f09dc3f3e100747596139ffec785c1c396ac67b12f03f7136d9bc5f7e4aa9f5050000000022512029556baa7abff746084579d01aefeaf8786f9fe0d1a5ddd955324b92ec6180d002473044022009a66c236af4539d5278bf6260b2b116f6e111991c230332cc95138fdcef11eb022078d76e3497458fbc086d98ff7168fe0c8ab5d4eaa58b8517195426375e0519d2012102094f8cad73eb656ebdddad2be1b9c14e58a75d53001f68017328fb39a1ccd9ca0140a48b6793ec2cd686a66a2d760f7b82de3d5d949a0817a2789afc5fc5deca3bb2832aeeee856427cf8d0c78b1aa6643dcfc28bad0b5a799c8ffcada93c089587e00000000032201d29836bb1095c029527f70245233f0c1d0d9cd9067ce5c3133cfb42a07a454910004fd02b400010001590075dc43685274cde4fe26577ae1bc945cedd6d2421ea22bde862ea9d5c7278c000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd04b006fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a000118e7b3d708936f10b096587151ad6163d572d0d234477f7e4acf94efacaddc0f000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffd016600010001590075dc43685274cde4fe26577ae1bc945cedd6d2421ea22bde862ea9d5c7278c000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd012c06ad01ab00655b2cfe0f518d8e50fdffb4cfc1cda1451c950876091d641a3517363682f574fd00000000af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd4028f2ec254f3d2a77f33b59052259c362df9522c7381cb5eae806926b9befa61e401420140f6a932f53c49092a0ec35df39ba3b512e32dfd1b919160fcfc107d412e90cc57b0893dcbe4237210d14cfb9d5e128f484d7ca082829147cd51bf0169e1ac014b0728188aa5c2fa99715dc5f969a8d95bad562becb9f245c423d231cbfec54210fca900000000000005dc0802000009210299229b94ecbef22274c9dcfeac912b6d5c6b1d8d8607138f4d9b3db2c15561c908020000092102c3239dc920d64be74c8ed1dfccaa26550e5c8cee2d6d12881ab0d3183c60d6ad059f000400000001012102f886d90340f51bb8c0d06b0e1517f37e84b70db33a467697fc9ea7c5826b6f2c027400490001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd402220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06fd012002ef0004000000000121022fcbda16068d0ebacf3210d80eec739d6a1cbacbd749eb3ca2f41885e44252b702c400710001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd4024a0001d7c3844b94b6546c07cb65b83f4e8a273ee66a8491d19eb1fd6ee0c492e9597b000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f014f000100014a0001bdeb56811472d04c1acd1968e2cdad6760dd1b74c20d02cd99636a87b5f4070b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf2e000400000002012102d65ac47945ef941b4861066ae277899cbbdc47ba7f29a4d26e2462aad6e8be15030302010107c70004000000000121022fcbda16068d0ebacf3210d80eec739d6a1cbacbd749eb3ca2f41885e44252b7029c00490001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd402220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001bdeb56811472d04c1acd1968e2cdad6760dd1b74c20d02cd99636a87b5f4070b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf0b04000001baa3d4d1d434ec2d30869a2daf04b7ef7efbd947f717359df1ff910a8e20ba2d75fd072600240eebbbf4b53b1759d7cac14c6414b85815bf4df5f91f9ab7db3af230d787c1e000000001015000004020881098b292c1342c3880f14b416a641c21c2f312ce0127bb121f27d5a15496433da16a1b841ed6743acdae8eab606ab9a0820aecb5e57da538573d1e879f4178577cf064ffff7f200200000002fd018c0200000000010200f7627d2a9f7186d9e3e18009a81dc39d7d5c527b4ecb4049d02f3d4d07e5940000000000ffffffff0eebbbf4b53b1759d7cac14c6414b85815bf4df5f91f9ab7db3af230d787c1e001000000000000000003e8030000000000002251201ddfbf3832ad0061453e6533e2b98bb6b344ef9addb3222cb56a9f37fadee2bbe8030000000000002251205a7c661fd2b45837e8b1096cac64dff973b8afa3deb3c269c95af12a5ee348884aa9f505000000002251200c011e5c0cf6fe653634b835845f835b95a07818336e45d0fa51bf8eacba085f0247304402206a96d02679d947906572e8083569aa2c2ce4a582f4c0f75aa9c313bee9daf7d8022052af856a8f8b8e69d689ac3c9b3ef348ea38728942750b913771abfe3f08e07c01210246e7a2190cfa4cfd80ef894cc0e3752e682a8cb334710c01fc11f5ead08a910c0140ec31f6ed956aee5b5bf5d6a0040c5c0de9727537db72e6bf8b5a37a531225ccf63591131043b1c4e6cc9d58238df2c402fa404118d52f65123d103916c1970300000000003220163b1e755ba02747c67db8fe1fa693dcf9e66f9333f58bffb4f06ce8501c207fb0004fd02b400010001590075dc43685274cde4fe26577ae1bc945cedd6d2421ea22bde862ea9d5c7278c000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a000151a8d993f84dbcbd37fa9e637701df24adcd8ecb9f3673d52c4e2ee2ead56e5c0000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffd016600010001590075dc43685274cde4fe26577ae1bc945cedd6d2421ea22bde862ea9d5c7278c000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806ad01ab00650eebbbf4b53b1759d7cac14c6414b85815bf4df5f91f9ab7db3af230d787c1e000000001af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd402c3239dc920d64be74c8ed1dfccaa26550e5c8cee2d6d12881ab0d3183c60d6ad01420140afa7bdc77debb61cbf36aa9cb601534d52aa49a1079cf64a1d44586e651bfa0fa02deea716e6e4f8fe8eae052b5950a54b1fc0b2eaf522c0b467a86b4de2546f07281b4bd820fed5f617faf7f481a8d076dd8be8e7fe5ca5e3163282c9105818d54900000000000004b0080200000921026fbf5bf92953f9bcf93603befd44dc83fcfd813a5a4adb40be42427378e8b5b508020000092102777d47bfc5e62bdd5199995fb6c485069239b92b083d9d6723917b75176d70ac059f000400000001012102bb464af24d0d8a24611c821e08f3fd57054ccac7b5875905bc6e045060f79503027400490001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd402220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06f802c700040000000001210315e5b3b06d61b3ad951f51d1daf4a3b8ec224224ea4025e72dda731d590497c9029c00710001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd4024a0001c4207b6354ab04e407d260e4e01f8a0626639071b556a0961da00fbfe7c7964f0000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e000400000002012102c7df030275b2ea0de67f7158d8cc1bd28fe98881d1fdac0db674ad62d04b02ce0303020101079f00040000000001210315e5b3b06d61b3ad951f51d1daf4a3b8ec224224ea4025e72dda731d590497c9027400490001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd402220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0b04000001bc99fa3ea68942c4f5a8e5ddeab1169fe649b43689c9aa4017ee14c35b261f6a99 \ No newline at end of file +544150460000000003fd03a95441505000240476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc0000000001500000402039d51da197ee1fcc3b836723e87da547f4508431d43a50539311dbec9c856d31e4aa4c4a2232a78b76deb19b575e3be1a5c24fda20e5357ed47c5ce3e5de9d15697ef864ffff7f200300000002f7020000000001010476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc0000000000ffffffff02e803000000000000225120dc439da4518e4b3fb945857267a1bdba6208b3f9094982015a4367077c286be5debcf50500000000225120d4ab96a2349339a12eb69fc7038dbf214cec167b016d2b06e5245fa661f24458024830450221009e75dc9077b09e07e75f07cd789e9f524183efd922a180da7e8b37767c9ae0cf022007107b5feec37567c43ff0e4a7b15c326947997ed1eb90a2767a7a05fca6edcf012102962a490f66573b285023d6e92a8e08662ae321da5785adc16afa6131651be66100000000032201322436f406320041928213045d2b81d4986b3e3df24784366cdebcccdb50fb9c0004f800010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd05dc066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f014205c70004000000000121029fbcdc8f499236f70975dad9ede723f1572fa1c57cedc7dd17bbb848202c5764029c004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001d8857e524f830ba8a658c394af269eaa6863f982354151dcd1183f5eb308a8aa00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef0630012e000400000001012102c0712538d157a3c3fe4aa1c167966e9277175515f23a30de9f3793de1b6ddc1103030201010813000100010e69746573742d6d657461646174610b04000001b9209f97f1092fb0f65cf2701d3fe05308cded0948be4246b8128e063fb8ba8c4ffd077d5441505000242a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a5460000000001500000402086e0b178c3c4505a177baf621fc5888c59001aeafc3a25091677ef70ea6f6f3a2ea4da4c0e5b5f884ff312e112ea595362973de5e33a410601a79ea651e60fec697ef864ffff7f200200000002fd018d020000000001020d6f775e8ac66f2c9020693553a2d6b688574a556508eace9c8797594b28620a0000000000ffffffff2a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a54600000000000000000003e803000000000000225120446a01650b0955e0290b35c0e91e24aff1f697c3c3fbaad0f142bcdd60415812e803000000000000225120eb050052af43a5229616c3d8a3ca28229e5f1eda81a1b82a87697eec202a62ef4aa9f505000000002251201e5092ea727e04ab93f2b4b02276c285a4ceb7d0682a34317ef86cf6756c963c02483045022100d8428af03b2cbb75099600939b05a09e6a720df664b23d105aeb4ee5651a9021022026818d82b7a00fe0690dca97aec10faf58883e443e8aff6385c51401107d337b0121028fac5cb01fa52f478457ae88a5271c1aa3c08a971e7eb3ed69c46f0c9d2ee4ba014031fb0bacc3a8a68ca95ee27df9ea9f06616af70dabf43220b449b1b1ad6a9d6f2fc5090cb5dbf1cb9ebce1fd24c5625ac8b43f948853bd40095ba2891d3dd2fd00000000032201e6e6f9ee9839f529f3e06ee7556c76f6893b31a9c48eb87593f7f37d54d5f63e0004fd02b400010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd04b006fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a000108d741e2e7c0b67fee518c42307b5e4e479b23ef4e9e2f6aa9afd93b5a24a492000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffd016600010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd012c06ad01ab00652a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a546000000000fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f014201420140de887d54c1520a1a41bf75d262f40ec67892d044842746e121dc341bea68327feb29f565a127dc8b57c89ea15cc6a2dcf0d4285a2a5baf5c03ee33b78fea4cef07282f1650559ff4824ef60ab19625dcfaf2a39317747235601ce996cf07adc6406500000000000005dc0802000009210223dda3dc9b3eaff676f82792ebdbe4915a44d68ea8be8b3e9cbe69073c91fd6e0802000009210232cad83de89c46e89e5522cf298fa8082ff0724bc4b9d9f8f577984e21ebb2bb059f0004000000010121021a2e7099a583fd65415a03fbde2c8ed7ea9aba2a512c75eb487713f5d334ed7a0274004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06fd012002ef0004000000000121030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f02c4007100010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96024a00012079beb0615360b9564e0e279100aa33e264ad34853bd3136d5c95c41f51047d000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf014f000100014a0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef2e00040000000201210245f6604c5b5db3a59b0d7ea988c369c17a0298f10bd33cfa54d74e9f54f901e4030302010107c70004000000000121030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f029c004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef0b04000001baa1145a297822f9c55660f47ee155753238638418732474217923d7db50561f59fd072a5441505000248f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff190000000101500000402017b41c426f6e0ea2318a0272c0e5166355a97e0b45e014ae265b055cf15e4a09cac22e8351343ddf97acbf38f547709654cc4cdb49bdfb77c3b195e44e1345cd697ef864ffff7f200000000002fd018c02000000000102000b9c5425fd4186521743f78203b73a0cc85fffeeb48026f11bb6eed16a1f290000000000ffffffff8f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff1901000000000000000003e8030000000000002251206be9cc2c4d68ec4e9827bff12067bca0770a92fd10e346c9587eb674e534b2d4e8030000000000002251209556a078749c7a768ccbb97124296639ffa4785b59c82c4c135121e0217a96a44aa9f50500000000225120a152904d7685c3e24c348784140064f68ea252af71560c9c400574e696f375f502473044022069b2a86cf0a1e9f3f23bd38cab06c99a3ed326b4a2bdf932c744e8a662fe9cf302206911494f403f7e0aff12d53a3ec8dff3b8792bbcb6769499ae84e0423e39486c012102e641075343b4dae91de76437617f51a4c251395600c763595a8128f296dcb02901404986e85a6e29e02504b22b313bff0de240164a5b2d1309d2ffe1b841742c72042c40b70609c0206a6660d97dd812911eb054f2548d847989937b7e06459753460000000003220162a6107a3639a2d6d21ea74f905bbdd2cd760247197c19250125cce69ad617150004fd02b400010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a0001cac8adc6fbff43b96418da0830e41cc24e687198fae443bbe64d13df6630dc830000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffd016600010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806ad01ab00658f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff19000000010fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b960232cad83de89c46e89e5522cf298fa8082ff0724bc4b9d9f8f577984e21ebb2bb014201408d602ec4a118925c23597faa896bccb675025b95f6827e29d6aa4a109eeea5ff64abdef145caa91bcba5f89d5dc79186620b1ce71db2780417fc1cefe584d7d607287a1d9a8372ee98c20893e1ab4d8028f1d3661c5fee83dbcfc528bfa738e5b07100000000000004b008020000092102efd8980ab3cacc9183c45bbbdded673416dba20a21486343d2dbbc5c37a0659b080200000921021cd140129b6140352dbf4469c8f2fbe4b3567479925f0619f59e8dfad0e0ea02059f000400000001012103a5d14787afdd48b27852302d8e6044adc80b2b09a84e405bd15df0a58372cb090274004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06f802c7000400000000012103a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb029c007100010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96024a000113e93b60b459b01018e7d1c419a0c085dc2a8022272f096228640e957005277a0000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e000400000002012102fe7cd697bcc60a44dfd209ed970e6cd14d6094506a47a2a6a5b0cfa6f63dd0d60303020101079f000400000000012103a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb0274004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0b04000001bc0d389f0366cd8466adc528de2902c58df1f8edf32514fd78bfde55c73ea53477 \ No newline at end of file diff --git a/proof/testdata/proof.hex b/proof/testdata/proof.hex index 4222ef75f..e93f60d3b 100644 --- a/proof/testdata/proof.hex +++ b/proof/testdata/proof.hex @@ -1 +1 @@ -00245b2cfe0f518d8e50fdffb4cfc1cda1451c950876091d641a3517363682f574fd000000000150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096e88000000000000000002fd018c020000000001020768ce2e16c6da1464f7596af706c48de630a854baf609afd7940ecbf7685e970000000000ffffffff5b2cfe0f518d8e50fdffb4cfc1cda1451c950876091d641a3517363682f574fd00000000000000000003e803000000000000225120fcc231cc52f526e5454a5014b0e450dbb3848170836c4b74525add097f9e37f9e8030000000000002251201748ef3f09dc3f3e100747596139ffec785c1c396ac67b12f03f7136d9bc5f7e4aa9f5050000000022512029556baa7abff746084579d01aefeaf8786f9fe0d1a5ddd955324b92ec6180d002473044022009a66c236af4539d5278bf6260b2b116f6e111991c230332cc95138fdcef11eb022078d76e3497458fbc086d98ff7168fe0c8ab5d4eaa58b8517195426375e0519d2012102094f8cad73eb656ebdddad2be1b9c14e58a75d53001f68017328fb39a1ccd9ca0140a48b6793ec2cd686a66a2d760f7b82de3d5d949a0817a2789afc5fc5deca3bb2832aeeee856427cf8d0c78b1aa6643dcfc28bad0b5a799c8ffcada93c089587e0000000003010004fd016600010001590075dc43685274cde4fe26577ae1bc945cedd6d2421ea22bde862ea9d5c7278c000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd012c06ad01ab00655b2cfe0f518d8e50fdffb4cfc1cda1451c950876091d641a3517363682f574fd00000000af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd4028f2ec254f3d2a77f33b59052259c362df9522c7381cb5eae806926b9befa61e401420140f6a932f53c49092a0ec35df39ba3b512e32dfd1b919160fcfc107d412e90cc57b0893dcbe4237210d14cfb9d5e128f484d7ca082829147cd51bf0169e1ac014b0728188aa5c2fa99715dc5f969a8d95bad562becb9f245c423d231cbfec54210fca900000000000005dc0802000009210299229b94ecbef22274c9dcfeac912b6d5c6b1d8d8607138f4d9b3db2c15561c905c70004000000000121022fcbda16068d0ebacf3210d80eec739d6a1cbacbd749eb3ca2f41885e44252b7029c00490001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd402220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001bdeb56811472d04c1acd1968e2cdad6760dd1b74c20d02cd99636a87b5f4070b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf06f802c7000400000001012102f886d90340f51bb8c0d06b0e1517f37e84b70db33a467697fc9ea7c5826b6f2c029c00710001000120af46688108d6b3a8a7133502b742290df126c9f0649e26754225ea45935fdfd4024a00016359a6254126f468823b4ed2db40613ccee0bacd525f0dafd2165f034d5df39900000000000004b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e000400000002012102d65ac47945ef941b4861066ae277899cbbdc47ba7f29a4d26e2462aad6e8be1503030201010b0400000000 \ No newline at end of file +5441505000242a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a546000000000150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096e88000000000000000002fd018d020000000001020d6f775e8ac66f2c9020693553a2d6b688574a556508eace9c8797594b28620a0000000000ffffffff2a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a54600000000000000000003e803000000000000225120446a01650b0955e0290b35c0e91e24aff1f697c3c3fbaad0f142bcdd60415812e803000000000000225120eb050052af43a5229616c3d8a3ca28229e5f1eda81a1b82a87697eec202a62ef4aa9f505000000002251201e5092ea727e04ab93f2b4b02276c285a4ceb7d0682a34317ef86cf6756c963c02483045022100d8428af03b2cbb75099600939b05a09e6a720df664b23d105aeb4ee5651a9021022026818d82b7a00fe0690dca97aec10faf58883e443e8aff6385c51401107d337b0121028fac5cb01fa52f478457ae88a5271c1aa3c08a971e7eb3ed69c46f0c9d2ee4ba014031fb0bacc3a8a68ca95ee27df9ea9f06616af70dabf43220b449b1b1ad6a9d6f2fc5090cb5dbf1cb9ebce1fd24c5625ac8b43f948853bd40095ba2891d3dd2fd0000000003010004fd016600010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd012c06ad01ab00652a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a546000000000fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f014201420140de887d54c1520a1a41bf75d262f40ec67892d044842746e121dc341bea68327feb29f565a127dc8b57c89ea15cc6a2dcf0d4285a2a5baf5c03ee33b78fea4cef07282f1650559ff4824ef60ab19625dcfaf2a39317747235601ce996cf07adc6406500000000000005dc0802000009210223dda3dc9b3eaff676f82792ebdbe4915a44d68ea8be8b3e9cbe69073c91fd6e05c70004000000000121030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f029c004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef06f802c70004000000010121021a2e7099a583fd65415a03fbde2c8ed7ea9aba2a512c75eb487713f5d334ed7a029c007100010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96024a00017fd91e34b82635d884b3c71b0a175ba880ccd3ab0d2bbc3b20d1534640550c4800000000000004b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e00040000000201210245f6604c5b5db3a59b0d7ea988c369c17a0298f10bd33cfa54d74e9f54f901e403030201010b0400000000 \ No newline at end of file diff --git a/proof/testdata/proof_tlv_encoding_generated.json b/proof/testdata/proof_tlv_encoding_generated.json index 2a65db7fb..2f1f3126e 100644 --- a/proof/testdata/proof_tlv_encoding_generated.json +++ b/proof/testdata/proof_tlv_encoding_generated.json @@ -71,7 +71,7 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "00240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d61900000000002263173418b53524df8f7cdcc701431245af691515f1d8045859229054ed73f54592d2570000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a01000000000000225120e8bee22dd320d51864e8499a73d374739a0fce94b3eb10c5624ba2159a1c4cdb0000000003010004fd018a000100018a5fb9d95526a41a9504680b4e7c8b763a1b1d49d4955c8486216325253fec738d7cb3ad0b40656239643138613434373834303435643837663363363763663232373436653939356166356132353336373935316261613266663663643437316334383366310000000000000000000000000000000000000000000000000000000000000000169c11210102010103010106690167006500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000802000009210250fb435f8fc76fc75736ac89956406e882a468e929da69ca596a716ebcfa85160a6102f51bdc1380b8021dca065edf24ee521a4d6d5ceba51abb7877df544e93acc319e19478adf14eba5767df3badbd3c6cfa8593a561acd626cb12cae73f8aad4a0b0d1af7a56ac3085991fb5a1b41d699f0fd63a2bea5bfdcef378e5f37c0e0cb0d059f0004000000000121024a821d5ec008712983929de448b8afb6c24e5a1b97367b9a65b6220d7f083fe3027400490001000120af542dec7585eaac495164faeb9c68ebc8b4d8e571a553d6732006063466b65d02220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0b0400000001", + "expected": "5441505000240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d61900000000002263173418b53524df8f7cdcc701431245af691515f1d8045859229054ed73f54592d2570000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a01000000000000225120e8bee22dd320d51864e8499a73d374739a0fce94b3eb10c5624ba2159a1c4cdb0000000003010004fd018a000100018a5fb9d95526a41a9504680b4e7c8b763a1b1d49d4955c8486216325253fec738d7cb3ad0b40656239643138613434373834303435643837663363363763663232373436653939356166356132353336373935316261613266663663643437316334383366310000000000000000000000000000000000000000000000000000000000000000169c11210102010103010106690167006500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000802000009210250fb435f8fc76fc75736ac89956406e882a468e929da69ca596a716ebcfa85160a6102f51bdc1380b8021dca065edf24ee521a4d6d5ceba51abb7877df544e93acc319e19478adf14eba5767df3badbd3c6cfa8593a561acd626cb12cae73f8aad4a0b0d1af7a56ac3085991fb5a1b41d699f0fd63a2bea5bfdcef378e5f37c0e0cb0d059f0004000000000121024a821d5ec008712983929de448b8afb6c24e5a1b97367b9a65b6220d7f083fe3027400490001000120af542dec7585eaac495164faeb9c68ebc8b4d8e571a553d6732006063466b65d02220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0b0400000001", "comment": "collectible genesis" }, { @@ -145,7 +145,7 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "00240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d61900000000009303297073b56f354237dce010dd5b2ee637f6e78b711a00e4bdf0a5c2e1456a366c47190000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a01000000000000225120f6299f81fa3ed727d60250c19885a9e03576c506dd58d4c0f55764670beea6890000000003010004fd018a000100018a9bffd43629b0223beea5f4f74391f445d15afd4294040374f6924b98cbf8713ff840ec4b4062623335386230633362353235646131373836663966666630393432373964623139343465626437613139643066376262616362653032353561613562376434000000000000000000000000000000000000000000000000000000000000000091018d7c01020101030101066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102661e637f64d8d63f45a25890073502387b18f3f8aa7fd7704348f35ced5423fa0a6102475ad4761032ee378dff99a4bf0d1f63636d5f0e4df935ba0f117af249628e8ccd4f5a65a7900c1096f9c994be4ea60eedc281cfd0d00e9260f2fcf9e5dfbd210c0cec330a3d0bd7ed33cee289eb7513ad53c065ab78ee15cca60388c164e21505bc000400000000012102af086d6428c5621941450bbefec061b5056d8706d659f9eebd7043400a4c0f93029100490001000120af9b4888e4061d2fc1980cc7e3eac3f144dd99602b76a159605147a3180a039302220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021b00c01876a914f6c97547d73156abb300ae059905c4acaadd09dd880b0400000001", + "expected": "5441505000240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d61900000000009303297073b56f354237dce010dd5b2ee637f6e78b711a00e4bdf0a5c2e1456a366c47190000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a01000000000000225120f6299f81fa3ed727d60250c19885a9e03576c506dd58d4c0f55764670beea6890000000003010004fd018a000100018a9bffd43629b0223beea5f4f74391f445d15afd4294040374f6924b98cbf8713ff840ec4b4062623335386230633362353235646131373836663966666630393432373964623139343465626437613139643066376262616362653032353561613562376434000000000000000000000000000000000000000000000000000000000000000091018d7c01020101030101066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102661e637f64d8d63f45a25890073502387b18f3f8aa7fd7704348f35ced5423fa0a6102475ad4761032ee378dff99a4bf0d1f63636d5f0e4df935ba0f117af249628e8ccd4f5a65a7900c1096f9c994be4ea60eedc281cfd0d00e9260f2fcf9e5dfbd210c0cec330a3d0bd7ed33cee289eb7513ad53c065ab78ee15cca60388c164e21505bc000400000000012102af086d6428c5621941450bbefec061b5056d8706d659f9eebd7043400a4c0f93029100490001000120af9b4888e4061d2fc1980cc7e3eac3f144dd99602b76a159605147a3180a039302220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021b00c01876a914f6c97547d73156abb300ae059905c4acaadd09dd880b0400000001", "comment": "collectible with leaf preimage" }, { @@ -219,7 +219,7 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "00240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000ed3ba9780a03acab271217658d3a95d4312e70f8d796ec089e4d3a6fd084c290bdd0eaa50000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a01000000000000225120c67a67da813c602d8824a449b2f404c0f35b255bc874852918a3fe072a16a0a30000000003010004fd018a000100018a4125c8fa73aae7786667f7e936cd4f24abf7df866baa56038367ad6145de1ee8ded7e411406336303737646262353732326635373137613238396132363666393736343739383139393865626561383963306234623337333937303131356538326564366600000000000000000000000000000000000000000000000000000000000000003e99b0a801020101030101066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102bc9c371fa4e83557a1844db0a9e636dea420ebc1620a9b6cd499557bb20f5b3e0a61032964eeba96725a8373fa55867fe0a6d01994d9c8822d8a76ac00181b65b1dd9a4d07c09a05b7de04956f4f175f3fa6b35249f15619b4a5b4d14b812b7dd1d5e6b0684779937a9762de3f7e30cc95ebdc044d930741dba74b31d3ddc64cef98b805e20004000000000121021af16655f63c4b9f95b5961ad1c97ef0e8fa7f9218801870e5b2252a6427db8d02b7004900010001209d6d650760287dd9a16d719df2303da025dfb675f02a3c5ea52566483164621402220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0241016c2e4bb01e316abaaee288d69c06cc608cedefd6e1a06813786c4ec51b6e1d3868ba2662554025b18af167c2ab17cd720b0c46ac7bd5750800b93c0b26a4af430b0400000001", + "expected": "5441505000240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000ed3ba9780a03acab271217658d3a95d4312e70f8d796ec089e4d3a6fd084c290bdd0eaa50000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a01000000000000225120c67a67da813c602d8824a449b2f404c0f35b255bc874852918a3fe072a16a0a30000000003010004fd018a000100018a4125c8fa73aae7786667f7e936cd4f24abf7df866baa56038367ad6145de1ee8ded7e411406336303737646262353732326635373137613238396132363666393736343739383139393865626561383963306234623337333937303131356538326564366600000000000000000000000000000000000000000000000000000000000000003e99b0a801020101030101066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102bc9c371fa4e83557a1844db0a9e636dea420ebc1620a9b6cd499557bb20f5b3e0a61032964eeba96725a8373fa55867fe0a6d01994d9c8822d8a76ac00181b65b1dd9a4d07c09a05b7de04956f4f175f3fa6b35249f15619b4a5b4d14b812b7dd1d5e6b0684779937a9762de3f7e30cc95ebdc044d930741dba74b31d3ddc64cef98b805e20004000000000121021af16655f63c4b9f95b5961ad1c97ef0e8fa7f9218801870e5b2252a6427db8d02b7004900010001209d6d650760287dd9a16d719df2303da025dfb675f02a3c5ea52566483164621402220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0241016c2e4bb01e316abaaee288d69c06cc608cedefd6e1a06813786c4ec51b6e1d3868ba2662554025b18af167c2ab17cd720b0c46ac7bd5750800b93c0b26a4af430b0400000001", "comment": "collectible with branch preimage" }, { @@ -293,7 +293,7 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "00240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000c075506a23eacc6226890f31ac11157ed6eeb6015fc1c3f5646ad7da3394b2b1a54c3dea0000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a01000000000000225120fa90a787c9b095646058b3b6c1bdc44753309c94ea8fe446fedca3cbe891e7880000000003010004fd018c000100018a07ee29ba64f84ab43ca0c6e6b91c1fd3be8990434179d3af4491a369012db92d2bf3394b40613636356636303666366136336237663364666432353637633138393739653464363066323636383664396266326662323663393031666633353463646531360000000000000000000000000000000000000000000000000000000000000000421657ff000201000303fd1388066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102610f4ad4f6fcb2f75b10b9674cfc140dd97921b53a2f5db4b7f807a5a87d21870a6102f2a1617673e0d62a2dfe09f6a7faa670f170256288cfabe4ff98dd993f988a5efa3c720b7dc7483f4a33023407490387f752b117f9d9fec5fdb76cfcadcc2ce5ce98d093b6d5e474835cd8191461ce7b6472c5a38ce6c041a6e8676b585894f5059f000400000000012102f7fd86c602d2ac12d72a7ee0422749b1bfe555c0ee8f24f5ea885a39e36f8cf9027400490001000120a0319d51ea16813396aed95d9a89abbd4478d3ce39b41ac0c1a086dfe89c5fef02220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0b0400000001", + "expected": "5441505000240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000c075506a23eacc6226890f31ac11157ed6eeb6015fc1c3f5646ad7da3394b2b1a54c3dea0000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a01000000000000225120fa90a787c9b095646058b3b6c1bdc44753309c94ea8fe446fedca3cbe891e7880000000003010004fd018c000100018a07ee29ba64f84ab43ca0c6e6b91c1fd3be8990434179d3af4491a369012db92d2bf3394b40613636356636303666366136336237663364666432353637633138393739653464363066323636383664396266326662323663393031666633353463646531360000000000000000000000000000000000000000000000000000000000000000421657ff000201000303fd1388066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102610f4ad4f6fcb2f75b10b9674cfc140dd97921b53a2f5db4b7f807a5a87d21870a6102f2a1617673e0d62a2dfe09f6a7faa670f170256288cfabe4ff98dd993f988a5efa3c720b7dc7483f4a33023407490387f752b117f9d9fec5fdb76cfcadcc2ce5ce98d093b6d5e474835cd8191461ce7b6472c5a38ce6c041a6e8676b585894f5059f000400000000012102f7fd86c602d2ac12d72a7ee0422749b1bfe555c0ee8f24f5ea885a39e36f8cf9027400490001000120a0319d51ea16813396aed95d9a89abbd4478d3ce39b41ac0c1a086dfe89c5fef02220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0b0400000001", "comment": "normal genesis" }, { @@ -367,7 +367,7 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "00240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000650f701a1cbe91842252d239068b63df102265f5a1e1a8ccdaf514ad7f48e3df9c9b14670000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a01000000000000225120bca2d7e7dd677df0ce9b9c1cea124c674ead284bf60dadd8ed967d47685d396e0000000003010004fd018c000100018a0279ea3dfe4136abf752b3b8271d03e944b3c9db366b75045f8efd69d22ae541a7ed5d97403137653932346165663738616531353163303037353539323538333662373037353838353635306333306563323961333730333933346266353061323864613100000000000000000000000000000000000000000000000000000000000000002694763d000201000303fd13880669016700650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080200000921029e47e906bfa2ee6cbba2c920b6f80d679928c40fe0c147d33c68cc5543f146370a61030785de067c85d0cd3d27a4fdebe7394c1d18520a4303a415d3ba00f9429b2ef34f70f482651e959550cc897a94dea65d7ffacfa6d0842fa4de9b5bf9b5fee60e0ac3cdc60a9a22627af9c3ee6d6397eaced206bf3f6473f623b6ea44bbc9620605bc000400000000012102f820ac404967c0e36fcd7a0d6d8e8a3150801f18947c2299a2e024bf8aa253410291004900010001207440c1f12cf25120108c1b827e62ccfcde709a664cb3fb8396ab70aa18546f8a02220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021b00c01876a914f6c97547d73156abb300ae059905c4acaadd09dd880b0400000001", + "expected": "5441505000240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000650f701a1cbe91842252d239068b63df102265f5a1e1a8ccdaf514ad7f48e3df9c9b14670000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a01000000000000225120bca2d7e7dd677df0ce9b9c1cea124c674ead284bf60dadd8ed967d47685d396e0000000003010004fd018c000100018a0279ea3dfe4136abf752b3b8271d03e944b3c9db366b75045f8efd69d22ae541a7ed5d97403137653932346165663738616531353163303037353539323538333662373037353838353635306333306563323961333730333933346266353061323864613100000000000000000000000000000000000000000000000000000000000000002694763d000201000303fd13880669016700650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080200000921029e47e906bfa2ee6cbba2c920b6f80d679928c40fe0c147d33c68cc5543f146370a61030785de067c85d0cd3d27a4fdebe7394c1d18520a4303a415d3ba00f9429b2ef34f70f482651e959550cc897a94dea65d7ffacfa6d0842fa4de9b5bf9b5fee60e0ac3cdc60a9a22627af9c3ee6d6397eaced206bf3f6473f623b6ea44bbc9620605bc000400000000012102f820ac404967c0e36fcd7a0d6d8e8a3150801f18947c2299a2e024bf8aa253410291004900010001207440c1f12cf25120108c1b827e62ccfcde709a664cb3fb8396ab70aa18546f8a02220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff021b00c01876a914f6c97547d73156abb300ae059905c4acaadd09dd880b0400000001", "comment": "normal with leaf preimage" }, { @@ -441,7 +441,7 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "00240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d619000000000016e6e96684af2be3f60542e99f52d7c391f6deb8cfe34c7862fbcfe731e2f9cf072fb63c0000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a010000000000002251208f18ebe5a34e6fd58693a21a3b7357b25f17f16ce85f1ce4ef48981bb4d73f9b0000000003010004fd018c000100018a56304a3e3eae901a52720da85ca1e4b38eaf3f44c6c6ef8362f2f54fc00e09d60c8dc21440303161323339633433363538353463336166376636623431643633316639326239613864313266343132353733323566666633333266373537366230363230350000000000000000000000000000000000000000000000000000000000000000c1540864000201000303fd1388066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102ca32de61e7923279664dc4d609b8e68cd88fcd096bcfc5fcbd9d5e20ed14f4550a6103f072d865cd42fbd6290c62c0a7067a403c9557fb998bd9736ceea5a774b974af1924b5e819e5e26eed905d14d39898aed2d9dcab3f91d80a94a272756164ae634177042d85c8a7593613771ce1d981a8d88af6b209c77daefb6e0fbac013737705e2000400000000012102210ce45fef3bc702f0878323249c0263e0288217f9374a3661ec361d5261474f02b700490001000120f15e3049ab9c051ddf9d5e5cba119339708418231d3ce06789174e4e3c68227102220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0241016c2e4bb01e316abaaee288d69c06cc608cedefd6e1a06813786c4ec51b6e1d3868ba2662554025b18af167c2ab17cd720b0c46ac7bd5750800b93c0b26a4af430b0400000001", + "expected": "5441505000240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d619000000000016e6e96684af2be3f60542e99f52d7c391f6deb8cfe34c7862fbcfe731e2f9cf072fb63c0000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a010000000000002251208f18ebe5a34e6fd58693a21a3b7357b25f17f16ce85f1ce4ef48981bb4d73f9b0000000003010004fd018c000100018a56304a3e3eae901a52720da85ca1e4b38eaf3f44c6c6ef8362f2f54fc00e09d60c8dc21440303161323339633433363538353463336166376636623431643633316639326239613864313266343132353733323566666633333266373537366230363230350000000000000000000000000000000000000000000000000000000000000000c1540864000201000303fd1388066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102ca32de61e7923279664dc4d609b8e68cd88fcd096bcfc5fcbd9d5e20ed14f4550a6103f072d865cd42fbd6290c62c0a7067a403c9557fb998bd9736ceea5a774b974af1924b5e819e5e26eed905d14d39898aed2d9dcab3f91d80a94a272756164ae634177042d85c8a7593613771ce1d981a8d88af6b209c77daefb6e0fbac013737705e2000400000000012102210ce45fef3bc702f0878323249c0263e0288217f9374a3661ec361d5261474f02b700490001000120f15e3049ab9c051ddf9d5e5cba119339708418231d3ce06789174e4e3c68227102220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0241016c2e4bb01e316abaaee288d69c06cc608cedefd6e1a06813786c4ec51b6e1d3868ba2662554025b18af167c2ab17cd720b0c46ac7bd5750800b93c0b26a4af430b0400000001", "comment": "normal with branch preimage" }, { @@ -518,7 +518,7 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "00240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000c31112ec19c669526fa1c3e3939a2f12c33c7d99f451e31af20c5f9ede7c405090b302dc0000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a010000000000002251200874649b4e0e0f15fd5e47d337a19eead0e4ad7fd2ec8a6bdbd5c20d6c6032960000000003010004fd018c000100018ae263e25cbb15d9afbcbf7f7da41ab0408e3969c2e2cdcf233438bf1774ace7703f1d74274036373130613739363037333263613532636635336333663532306338383962373962663530346366623537633736303132333264353839626163636561396436a34a4bd8a261e96320dcd1e43f134b84f3421a5433336724de1aa5d07cef6d131e094f9a000201000303fd13880669016700650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080200000921024236a05cff1fc479f8a2abc0fb95874b4e416bb9f4e617e85a8ea8b492189a560a6102b6f3ea9dbc2aec162b5c5461fde8e000e8ce33e75e71e9053edb4564dea457cdddb89159dd50a9ca6794aec56895a26e7b4b9c92e1d96158cc49de9d87051adc904de5b3ddbe9c2f5f959cf142b2b3c5ef92f73269a062de75b8d6bf0b4b7309059f000400000000012102a1581b958162db9a2ab8b13079694ab91ea08ba74e99635af948e7141dcdcdfe0274004900010001203e3ac273be361ad0f51e35fe02af232e01de9043d7d701594387c556877ac53702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff081f000100011a6d65616e7420696e2063726f6b696e67206e657665726d6f72650b0400000001", + "expected": "5441505000240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000c31112ec19c669526fa1c3e3939a2f12c33c7d99f451e31af20c5f9ede7c405090b302dc0000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a010000000000002251200874649b4e0e0f15fd5e47d337a19eead0e4ad7fd2ec8a6bdbd5c20d6c6032960000000003010004fd018c000100018ae263e25cbb15d9afbcbf7f7da41ab0408e3969c2e2cdcf233438bf1774ace7703f1d74274036373130613739363037333263613532636635336333663532306338383962373962663530346366623537633736303132333264353839626163636561396436a34a4bd8a261e96320dcd1e43f134b84f3421a5433336724de1aa5d07cef6d131e094f9a000201000303fd13880669016700650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080200000921024236a05cff1fc479f8a2abc0fb95874b4e416bb9f4e617e85a8ea8b492189a560a6102b6f3ea9dbc2aec162b5c5461fde8e000e8ce33e75e71e9053edb4564dea457cdddb89159dd50a9ca6794aec56895a26e7b4b9c92e1d96158cc49de9d87051adc904de5b3ddbe9c2f5f959cf142b2b3c5ef92f73269a062de75b8d6bf0b4b7309059f000400000000012102a1581b958162db9a2ab8b13079694ab91ea08ba74e99635af948e7141dcdcdfe0274004900010001203e3ac273be361ad0f51e35fe02af232e01de9043d7d701594387c556877ac53702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff081f000100011a6d65616e7420696e2063726f6b696e67206e657665726d6f72650b0400000001", "comment": "normal asset with a meta reveal" }, { @@ -595,7 +595,7 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "00240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d61900000000005ff40b68916afc03e3921a482b8711310b1a345b14693745d5b427c32f8d2d633b9ca7400000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a0100000000000022512094f2a868ad1f3bee9f11e8fa309fba5eb4f9ec4964c4eefa9325b18ca0a3c80d0000000003010004fd018a000100018ad7975125210f0ef1c314090f07c79a6f571c246f3e9ac0b7413ef110bd58b00c4efeeadd4038663839323161323636623131643066333334633632666535326261353361663139373739636232393438623635373066666130623737333936336331333061691a588e330c10a4ec7261f0b571486a8223f13fd7594e60eee6ce8013bf232ff4b6f47f010201010301010669016700650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080200000921020aca705bbfdaea0fdaa052837c3801953a2642ca7009a99fe2884cb616bce3a50a6102c59d39e7c47626d9b9153495b5ce750716818a19938d2730692ed8bbafce5f2152d12e017cd2430e08d272ec76baea5aaac6960c72f5487e683034dfae35ce0d4301c573e13e1fd0d700c3349dc0a93ffb0867be04f862a6dd7962e1eb567628059f00040000000001210265c2da862edf7e730c69c5f1677ce0104a81adda912cc97f54a7aeec9e1b094302740049000100012099539548cd53af1920671ef2c07d9078ad6ffd2646563197fecb125a687f954802220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff081e00010001197368616c6c206265206c6966746564206e657665726d6f72650b0400000001", + "expected": "5441505000240000000000000000000000000000000000000000000000000000000000000000000000000150000000006fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d61900000000005ff40b68916afc03e3921a482b8711310b1a345b14693745d5b427c32f8d2d633b9ca7400000000000000000025e02000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000014a0100000000000022512094f2a868ad1f3bee9f11e8fa309fba5eb4f9ec4964c4eefa9325b18ca0a3c80d0000000003010004fd018a000100018ad7975125210f0ef1c314090f07c79a6f571c246f3e9ac0b7413ef110bd58b00c4efeeadd4038663839323161323636623131643066333334633632666535326261353361663139373739636232393438623635373066666130623737333936336331333061691a588e330c10a4ec7261f0b571486a8223f13fd7594e60eee6ce8013bf232ff4b6f47f010201010301010669016700650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080200000921020aca705bbfdaea0fdaa052837c3801953a2642ca7009a99fe2884cb616bce3a50a6102c59d39e7c47626d9b9153495b5ce750716818a19938d2730692ed8bbafce5f2152d12e017cd2430e08d272ec76baea5aaac6960c72f5487e683034dfae35ce0d4301c573e13e1fd0d700c3349dc0a93ffb0867be04f862a6dd7962e1eb567628059f00040000000001210265c2da862edf7e730c69c5f1677ce0104a81adda912cc97f54a7aeec9e1b094302740049000100012099539548cd53af1920671ef2c07d9078ad6ffd2646563197fecb125a687f954802220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff081e00010001197368616c6c206265206c6966746564206e657665726d6f72650b0400000001", "comment": "collectible with a meta reveal" } ], diff --git a/proof/testdata/proof_tlv_encoding_regtest.json b/proof/testdata/proof_tlv_encoding_regtest.json index 85866d68a..c8f91dbf7 100644 --- a/proof/testdata/proof_tlv_encoding_regtest.json +++ b/proof/testdata/proof_tlv_encoding_regtest.json @@ -2,20 +2,20 @@ "valid_test_cases": [ { "proof": { - "prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "block_header": { "version": 541065216, - "prev_block": "44d3b42cf499c0e5c7ce75cb2b9d293b161361101620108c873d4e90772221e6", - "merkle_root": "e3a640f85a22dcf6082c8279aacae8bcbf58183b50e75efc05a844a88dbcff79", - "timestamp": 1693480105, + "prev_block": "316d859cecdb119353503ad4318450f447a57de82367833bcc1fee97a11dd539", + "merkle_root": "159ddee5e35c7cd47e35e520da4fc2a5e13b5e579bb1de768ba732224a4caae4", + "timestamp": 1694006889, "bits": 545259519, - "nonce": 0 + "nonce": 3 }, "block_height": 441, - "anchor_tx": "02000000000101005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a0000000000ffffffff02e803000000000000225120c5532da05265abb1b740828a423046bc2b38fab6f4deb8a13fc64f59be9fc001debcf50500000000225120b061c4c81aed3d158ad8abbeda73fa76389323e53461ae3727894e4ffe582c0e02483045022100a3c7343891257da013708411998c8f685dbe1e77c0a222bf11227d79a29a9a6002205f4330bc32e5f0f8836db23b21c8b640490153e1403bb1a80998960bfbec3a6101210381c26249078b3fb3ad2387ff1ce4d8153dddf7258bc5b58b409fcd16d3df9d5900000000", + "anchor_tx": "020000000001010476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc0000000000ffffffff02e803000000000000225120dc439da4518e4b3fb945857267a1bdba6208b3f9094982015a4367077c286be5debcf50500000000225120d4ab96a2349339a12eb69fc7038dbf214cec167b016d2b06e5245fa661f24458024830450221009e75dc9077b09e07e75f07cd789e9f524183efd922a180da7e8b37767c9ae0cf022007107b5feec37567c43ff0e4a7b15c326947997ed1eb90a2767a7a05fca6edcf012102962a490f66573b285023d6e92a8e08662ae321da5785adc16afa6131651be66100000000", "tx_merkle_proof": { "nodes": [ - "18791a381a48962338b8f5b0b882adee702b3b13c8a76127aaca77b169ac08dd" + "9cfb50dbccbcde6c368447f23d3e6b98d4812b5d0413829241003206f4362432" ], "bits": [ false @@ -23,7 +23,7 @@ }, "asset": { "version": 0, - "genesis_first_prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "genesis_first_prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "genesis_tag": "first-itestbuxx", "genesis_meta_hash": "dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d", "genesis_output_index": 0, @@ -44,21 +44,21 @@ ], "split_commitment_root": null, "script_version": 0, - "script_key": "02aeac4986e8c72460b6a751e413e4c7216df677d9d4bf4bae1c63c8c300853e93", + "script_key": "02f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f0142", "group_key": null }, "inclusion_proof": { "output_index": 0, - "internal_key": "02fa4d23d048dbc292f69a5ca081b9f0b3c5cb4886b7f1767428609e375479345d", + "internal_key": "029fbcdc8f499236f70975dad9ede723f1572fa1c57cedc7dd17bbb848202c5764", "commitment_proof": { "proof": { "asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { - "proof": "000129606637cd38716268bf1cca64ae036c73d5fa95e1258d56085128a30d2b087f00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf", + "proof": "0001d8857e524f830ba8a658c394af269eaa6863f982354151dcd1183f5eb308a8aa00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef", "version": 0 } }, @@ -69,7 +69,7 @@ "exclusion_proofs": [ { "output_index": 1, - "internal_key": "024201da6b9645e123229f440ff1007691251a3b8a5d85c8321e28d640d61163da", + "internal_key": "02c0712538d157a3c3fe4aa1c167966e9277175515f23a30de9f3793de1b6ddc11", "commitment_proof": null, "tapscript_proof": { "tap_preimage_1": "", @@ -86,12 +86,12 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "0024005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a00000000015000004020e6212277904e3d878c102016106113163b299d2bcb75cec7e5c099f42cb4d34479ffbc8da844a805fc5ee7503b1858bfbce8caaa79822c08f6dc225af840a6e3a974f064ffff7f200000000002f702000000000101005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a0000000000ffffffff02e803000000000000225120c5532da05265abb1b740828a423046bc2b38fab6f4deb8a13fc64f59be9fc001debcf50500000000225120b061c4c81aed3d158ad8abbeda73fa76389323e53461ae3727894e4ffe582c0e02483045022100a3c7343891257da013708411998c8f685dbe1e77c0a222bf11227d79a29a9a6002205f4330bc32e5f0f8836db23b21c8b640490153e1403bb1a80998960bfbec3a6101210381c26249078b3fb3ad2387ff1ce4d8153dddf7258bc5b58b409fcd16d3df9d5900000000032201dd08ac69b177caaa2761a7c8133b2b70eead82b8b0f5b8382396481a381a79180004f80001000159005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd05dc066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102aeac4986e8c72460b6a751e413e4c7216df677d9d4bf4bae1c63c8c300853e9305c7000400000000012102fa4d23d048dbc292f69a5ca081b9f0b3c5cb4886b7f1767428609e375479345d029c004900010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a000129606637cd38716268bf1cca64ae036c73d5fa95e1258d56085128a30d2b087f00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf0630012e0004000000010121024201da6b9645e123229f440ff1007691251a3b8a5d85c8321e28d640d61163da03030201010813000100010e69746573742d6d657461646174610b04000001b9", + "expected": "5441505000240476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc0000000001500000402039d51da197ee1fcc3b836723e87da547f4508431d43a50539311dbec9c856d31e4aa4c4a2232a78b76deb19b575e3be1a5c24fda20e5357ed47c5ce3e5de9d15697ef864ffff7f200300000002f7020000000001010476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc0000000000ffffffff02e803000000000000225120dc439da4518e4b3fb945857267a1bdba6208b3f9094982015a4367077c286be5debcf50500000000225120d4ab96a2349339a12eb69fc7038dbf214cec167b016d2b06e5245fa661f24458024830450221009e75dc9077b09e07e75f07cd789e9f524183efd922a180da7e8b37767c9ae0cf022007107b5feec37567c43ff0e4a7b15c326947997ed1eb90a2767a7a05fca6edcf012102962a490f66573b285023d6e92a8e08662ae321da5785adc16afa6131651be66100000000032201322436f406320041928213045d2b81d4986b3e3df24784366cdebcccdb50fb9c0004f800010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd05dc066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f014205c70004000000000121029fbcdc8f499236f70975dad9ede723f1572fa1c57cedc7dd17bbb848202c5764029c004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001d8857e524f830ba8a658c394af269eaa6863f982354151dcd1183f5eb308a8aa00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef0630012e000400000001012102c0712538d157a3c3fe4aa1c167966e9277175515f23a30de9f3793de1b6ddc1103030201010813000100010e69746573742d6d657461646174610b04000001b9", "comment": "valid regtest genesis proof with meta reveal" }, { "proof": { - "prev_out": "154acf44a7c6c85b04d2adab29ae203a221e42040252f906f5e4da0257d8bb75:0", + "prev_out": "46a523fa65b8108748d3270a5287857e8bb0fba63321a032eeb82b9e77514b2a:0", "block_header": { "version": 0, "prev_block": "0000000000000000000000000000000000000000000000000000000000000000", @@ -101,14 +101,14 @@ "nonce": 0 }, "block_height": 0, - "anchor_tx": "0200000000010206da3d8b7253faa4c9663f2124477d70d9bb93c39792d2e78ce80954144757140000000000ffffffff75bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a1500000000000000000003e8030000000000002251201aa347eeaed967cc1da29ae63e16c6b0d7e653cb8465d9678c03a5aadd469693e8030000000000002251207f80e879022a8ed063078bc89507e1727e167a924c56e82a6ac51ca977149bc94aa9f50500000000225120424ee9a5071750b1ba0b55c9f0f2613fe1e10616bfcb399c661833941daed17902483045022100e73decba204d5f83eeb1a37c6ecedad978291b5dd315fd6aa20c965a35b19fce02207b71da7bb58c371ebe08b758dd79e7f2f303776103bf9e3391389ed2b57f7aab0121035c30c18e240e7fed40d08bea7abf3fe73c79b28503aed33c32c71b5d7866d8a401403331ea969fa7be783b7411582d16fe24db46ea3f5a3da418d3c9fa47be53e4aba69903530d0615628d5abe1f65af45d2513fc07742cc28872f22148f2fa2974900000000", + "anchor_tx": "020000000001020d6f775e8ac66f2c9020693553a2d6b688574a556508eace9c8797594b28620a0000000000ffffffff2a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a54600000000000000000003e803000000000000225120446a01650b0955e0290b35c0e91e24aff1f697c3c3fbaad0f142bcdd60415812e803000000000000225120eb050052af43a5229616c3d8a3ca28229e5f1eda81a1b82a87697eec202a62ef4aa9f505000000002251201e5092ea727e04ab93f2b4b02276c285a4ceb7d0682a34317ef86cf6756c963c02483045022100d8428af03b2cbb75099600939b05a09e6a720df664b23d105aeb4ee5651a9021022026818d82b7a00fe0690dca97aec10faf58883e443e8aff6385c51401107d337b0121028fac5cb01fa52f478457ae88a5271c1aa3c08a971e7eb3ed69c46f0c9d2ee4ba014031fb0bacc3a8a68ca95ee27df9ea9f06616af70dabf43220b449b1b1ad6a9d6f2fc5090cb5dbf1cb9ebce1fd24c5625ac8b43f948853bd40095ba2891d3dd2fd00000000", "tx_merkle_proof": { "nodes": [], "bits": [] }, "asset": { "version": 0, - "genesis_first_prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "genesis_first_prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "genesis_tag": "first-itestbuxx", "genesis_meta_hash": "dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d", "genesis_output_index": 0, @@ -119,36 +119,36 @@ "prev_witnesses": [ { "prev_id": { - "out_point": "154acf44a7c6c85b04d2adab29ae203a221e42040252f906f5e4da0257d8bb75:0", - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717", - "script_key": "02aeac4986e8c72460b6a751e413e4c7216df677d9d4bf4bae1c63c8c300853e93" + "out_point": "46a523fa65b8108748d3270a5287857e8bb0fba63321a032eeb82b9e77514b2a:0", + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96", + "script_key": "02f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f0142" }, "tx_witness": [ - "a78a0f6e328c20913a01cf65573cc0ea7f475e935e4c96e12acfe4071ee40b70694ca7093e825517d4de95c20f27db929d37357716c9ae46a832e95bbe2e8dda" + "de887d54c1520a1a41bf75d262f40ec67892d044842746e121dc341bea68327feb29f565a127dc8b57c89ea15cc6a2dcf0d4285a2a5baf5c03ee33b78fea4cef" ], "split_commitment": null } ], "split_commitment_root": { - "hash": "c4f6cfee065af559612a5c58a1775e3780d3d492d2d927b6bfdadba1eb626269", + "hash": "2f1650559ff4824ef60ab19625dcfaf2a39317747235601ce996cf07adc64065", "sum": "1500" }, "script_version": 0, - "script_key": "02bdccf6e4aaa9b2356cc5001d444a7b9f7a5ad9c6da85236230be3d7be0b5bcff", + "script_key": "0223dda3dc9b3eaff676f82792ebdbe4915a44d68ea8be8b3e9cbe69073c91fd6e", "group_key": null }, "inclusion_proof": { "output_index": 0, - "internal_key": "021dd27d0f30c2c04f15af5c35ee88b6d311bfba00c2eeb89341a2be606ea8934c", + "internal_key": "030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f", "commitment_proof": { "proof": { "asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { - "proof": "0001f1379cd74bd8dc03af86afd7d81b4f88a754896c463780c3ae2c46e2c7080f2b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf", + "proof": "0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef", "version": 0 } }, @@ -159,13 +159,13 @@ "exclusion_proofs": [ { "output_index": 1, - "internal_key": "0210ee8178e18046d105421c67c2e334f7432d458df1d460492d947e1357bacfe8", + "internal_key": "021a2e7099a583fd65415a03fbde2c8ed7ea9aba2a512c75eb487713f5d334ed7a", "commitment_proof": { "proof": { "asset_proof": { - "proof": "0001ca33245063350720fab0d245ba29b6d7ac15548847358e986986f435c5c9cef900000000000004b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "proof": "00017fd91e34b82635d884b3c71b0a175ba880ccd3ab0d2bbc3b20d1534640550c4800000000000004b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", @@ -178,7 +178,7 @@ }, { "output_index": 2, - "internal_key": "02fc54f2740d5cba24638d7a488ea23d93b2205d5a4bdffe4c59ac8587128495ed", + "internal_key": "0245f6604c5b5db3a59b0d7ea988c369c17a0298f10bd33cfa54d74e9f54f901e4", "commitment_proof": null, "tapscript_proof": { "tap_preimage_1": "", @@ -192,12 +192,12 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "002475bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a15000000000150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096e88000000000000000002fd018d0200000000010206da3d8b7253faa4c9663f2124477d70d9bb93c39792d2e78ce80954144757140000000000ffffffff75bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a1500000000000000000003e8030000000000002251201aa347eeaed967cc1da29ae63e16c6b0d7e653cb8465d9678c03a5aadd469693e8030000000000002251207f80e879022a8ed063078bc89507e1727e167a924c56e82a6ac51ca977149bc94aa9f50500000000225120424ee9a5071750b1ba0b55c9f0f2613fe1e10616bfcb399c661833941daed17902483045022100e73decba204d5f83eeb1a37c6ecedad978291b5dd315fd6aa20c965a35b19fce02207b71da7bb58c371ebe08b758dd79e7f2f303776103bf9e3391389ed2b57f7aab0121035c30c18e240e7fed40d08bea7abf3fe73c79b28503aed33c32c71b5d7866d8a401403331ea969fa7be783b7411582d16fe24db46ea3f5a3da418d3c9fa47be53e4aba69903530d0615628d5abe1f65af45d2513fc07742cc28872f22148f2fa297490000000003010004fd01660001000159005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd012c06ad01ab006575bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a15000000002fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702aeac4986e8c72460b6a751e413e4c7216df677d9d4bf4bae1c63c8c300853e9301420140a78a0f6e328c20913a01cf65573cc0ea7f475e935e4c96e12acfe4071ee40b70694ca7093e825517d4de95c20f27db929d37357716c9ae46a832e95bbe2e8dda0728c4f6cfee065af559612a5c58a1775e3780d3d492d2d927b6bfdadba1eb62626900000000000005dc08020000092102bdccf6e4aaa9b2356cc5001d444a7b9f7a5ad9c6da85236230be3d7be0b5bcff05c70004000000000121021dd27d0f30c2c04f15af5c35ee88b6d311bfba00c2eeb89341a2be606ea8934c029c004900010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001f1379cd74bd8dc03af86afd7d81b4f88a754896c463780c3ae2c46e2c7080f2b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf06f802c700040000000101210210ee8178e18046d105421c67c2e334f7432d458df1d460492d947e1357bacfe8029c007100010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717024a0001ca33245063350720fab0d245ba29b6d7ac15548847358e986986f435c5c9cef900000000000004b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e000400000002012102fc54f2740d5cba24638d7a488ea23d93b2205d5a4bdffe4c59ac8587128495ed03030201010b0400000000", + "expected": "5441505000242a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a546000000000150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096e88000000000000000002fd018d020000000001020d6f775e8ac66f2c9020693553a2d6b688574a556508eace9c8797594b28620a0000000000ffffffff2a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a54600000000000000000003e803000000000000225120446a01650b0955e0290b35c0e91e24aff1f697c3c3fbaad0f142bcdd60415812e803000000000000225120eb050052af43a5229616c3d8a3ca28229e5f1eda81a1b82a87697eec202a62ef4aa9f505000000002251201e5092ea727e04ab93f2b4b02276c285a4ceb7d0682a34317ef86cf6756c963c02483045022100d8428af03b2cbb75099600939b05a09e6a720df664b23d105aeb4ee5651a9021022026818d82b7a00fe0690dca97aec10faf58883e443e8aff6385c51401107d337b0121028fac5cb01fa52f478457ae88a5271c1aa3c08a971e7eb3ed69c46f0c9d2ee4ba014031fb0bacc3a8a68ca95ee27df9ea9f06616af70dabf43220b449b1b1ad6a9d6f2fc5090cb5dbf1cb9ebce1fd24c5625ac8b43f948853bd40095ba2891d3dd2fd0000000003010004fd016600010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd012c06ad01ab00652a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a546000000000fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f014201420140de887d54c1520a1a41bf75d262f40ec67892d044842746e121dc341bea68327feb29f565a127dc8b57c89ea15cc6a2dcf0d4285a2a5baf5c03ee33b78fea4cef07282f1650559ff4824ef60ab19625dcfaf2a39317747235601ce996cf07adc6406500000000000005dc0802000009210223dda3dc9b3eaff676f82792ebdbe4915a44d68ea8be8b3e9cbe69073c91fd6e05c70004000000000121030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f029c004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef06f802c70004000000010121021a2e7099a583fd65415a03fbde2c8ed7ea9aba2a512c75eb487713f5d334ed7a029c007100010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96024a00017fd91e34b82635d884b3c71b0a175ba880ccd3ab0d2bbc3b20d1534640550c4800000000000004b0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e00040000000201210245f6604c5b5db3a59b0d7ea988c369c17a0298f10bd33cfa54d74e9f54f901e403030201010b0400000000", "comment": "valid regtest proof for split root" }, { "proof": { - "prev_out": "154acf44a7c6c85b04d2adab29ae203a221e42040252f906f5e4da0257d8bb75:0", + "prev_out": "46a523fa65b8108748d3270a5287857e8bb0fba63321a032eeb82b9e77514b2a:0", "block_header": { "version": 0, "prev_block": "0000000000000000000000000000000000000000000000000000000000000000", @@ -207,14 +207,14 @@ "nonce": 0 }, "block_height": 0, - "anchor_tx": "0200000000010206da3d8b7253faa4c9663f2124477d70d9bb93c39792d2e78ce80954144757140000000000ffffffff75bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a1500000000000000000003e8030000000000002251201aa347eeaed967cc1da29ae63e16c6b0d7e653cb8465d9678c03a5aadd469693e8030000000000002251207f80e879022a8ed063078bc89507e1727e167a924c56e82a6ac51ca977149bc94aa9f50500000000225120424ee9a5071750b1ba0b55c9f0f2613fe1e10616bfcb399c661833941daed17902483045022100e73decba204d5f83eeb1a37c6ecedad978291b5dd315fd6aa20c965a35b19fce02207b71da7bb58c371ebe08b758dd79e7f2f303776103bf9e3391389ed2b57f7aab0121035c30c18e240e7fed40d08bea7abf3fe73c79b28503aed33c32c71b5d7866d8a401403331ea969fa7be783b7411582d16fe24db46ea3f5a3da418d3c9fa47be53e4aba69903530d0615628d5abe1f65af45d2513fc07742cc28872f22148f2fa2974900000000", + "anchor_tx": "020000000001020d6f775e8ac66f2c9020693553a2d6b688574a556508eace9c8797594b28620a0000000000ffffffff2a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a54600000000000000000003e803000000000000225120446a01650b0955e0290b35c0e91e24aff1f697c3c3fbaad0f142bcdd60415812e803000000000000225120eb050052af43a5229616c3d8a3ca28229e5f1eda81a1b82a87697eec202a62ef4aa9f505000000002251201e5092ea727e04ab93f2b4b02276c285a4ceb7d0682a34317ef86cf6756c963c02483045022100d8428af03b2cbb75099600939b05a09e6a720df664b23d105aeb4ee5651a9021022026818d82b7a00fe0690dca97aec10faf58883e443e8aff6385c51401107d337b0121028fac5cb01fa52f478457ae88a5271c1aa3c08a971e7eb3ed69c46f0c9d2ee4ba014031fb0bacc3a8a68ca95ee27df9ea9f06616af70dabf43220b449b1b1ad6a9d6f2fc5090cb5dbf1cb9ebce1fd24c5625ac8b43f948853bd40095ba2891d3dd2fd00000000", "tx_merkle_proof": { "nodes": [], "bits": [] }, "asset": { "version": 0, - "genesis_first_prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "genesis_first_prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "genesis_tag": "first-itestbuxx", "genesis_meta_hash": "dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d", "genesis_output_index": 0, @@ -231,10 +231,10 @@ }, "tx_witness": null, "split_commitment": { - "proof": "00018fe4287d3f4255877abfd18a156db9bdc178f46fc5f828564a9d7827c5f7e3cd000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "proof": "000108d741e2e7c0b67fee518c42307b5e4e479b23ef4e9e2f6aa9afd93b5a24a492000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf", "root_asset": { "version": 0, - "genesis_first_prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "genesis_first_prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "genesis_tag": "first-itestbuxx", "genesis_meta_hash": "dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d", "genesis_output_index": 0, @@ -245,22 +245,22 @@ "prev_witnesses": [ { "prev_id": { - "out_point": "154acf44a7c6c85b04d2adab29ae203a221e42040252f906f5e4da0257d8bb75:0", - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717", - "script_key": "02aeac4986e8c72460b6a751e413e4c7216df677d9d4bf4bae1c63c8c300853e93" + "out_point": "46a523fa65b8108748d3270a5287857e8bb0fba63321a032eeb82b9e77514b2a:0", + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96", + "script_key": "02f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f0142" }, "tx_witness": [ - "a78a0f6e328c20913a01cf65573cc0ea7f475e935e4c96e12acfe4071ee40b70694ca7093e825517d4de95c20f27db929d37357716c9ae46a832e95bbe2e8dda" + "de887d54c1520a1a41bf75d262f40ec67892d044842746e121dc341bea68327feb29f565a127dc8b57c89ea15cc6a2dcf0d4285a2a5baf5c03ee33b78fea4cef" ], "split_commitment": null } ], "split_commitment_root": { - "hash": "c4f6cfee065af559612a5c58a1775e3780d3d492d2d927b6bfdadba1eb626269", + "hash": "2f1650559ff4824ef60ab19625dcfaf2a39317747235601ce996cf07adc64065", "sum": "1500" }, "script_version": 0, - "script_key": "02bdccf6e4aaa9b2356cc5001d444a7b9f7a5ad9c6da85236230be3d7be0b5bcff", + "script_key": "0223dda3dc9b3eaff676f82792ebdbe4915a44d68ea8be8b3e9cbe69073c91fd6e", "group_key": null } } @@ -268,18 +268,18 @@ ], "split_commitment_root": null, "script_version": 0, - "script_key": "02a3eaca18f57451fc2cda92d8637ce950405c339b335d21cbb2ae6fe479449ef3", + "script_key": "0232cad83de89c46e89e5522cf298fa8082ff0724bc4b9d9f8f577984e21ebb2bb", "group_key": null }, "inclusion_proof": { "output_index": 1, - "internal_key": "0210ee8178e18046d105421c67c2e334f7432d458df1d460492d947e1357bacfe8", + "internal_key": "021a2e7099a583fd65415a03fbde2c8ed7ea9aba2a512c75eb487713f5d334ed7a", "commitment_proof": { "proof": { "asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", @@ -293,16 +293,16 @@ "exclusion_proofs": [ { "output_index": 0, - "internal_key": "021dd27d0f30c2c04f15af5c35ee88b6d311bfba00c2eeb89341a2be606ea8934c", + "internal_key": "030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f", "commitment_proof": { "proof": { "asset_proof": { - "proof": "0001e3e1286f38832ae9a5c7b7ab1f9ee5c2e27b5a45a85fc51e39a8a427ebb87958000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "proof": "00012079beb0615360b9564e0e279100aa33e264ad34853bd3136d5c95c41f51047d000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { - "proof": "0001f1379cd74bd8dc03af86afd7d81b4f88a754896c463780c3ae2c46e2c7080f2b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf", + "proof": "0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef", "version": 0 } }, @@ -312,7 +312,7 @@ }, { "output_index": 2, - "internal_key": "02fc54f2740d5cba24638d7a488ea23d93b2205d5a4bdffe4c59ac8587128495ed", + "internal_key": "0245f6604c5b5db3a59b0d7ea988c369c17a0298f10bd33cfa54d74e9f54f901e4", "commitment_proof": null, "tapscript_proof": { "tap_preimage_1": "", @@ -323,16 +323,16 @@ ], "split_root_proof": { "output_index": 0, - "internal_key": "021dd27d0f30c2c04f15af5c35ee88b6d311bfba00c2eeb89341a2be606ea8934c", + "internal_key": "030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f", "commitment_proof": { "proof": { "asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { - "proof": "0001f1379cd74bd8dc03af86afd7d81b4f88a754896c463780c3ae2c46e2c7080f2b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf", + "proof": "0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef", "version": 0 } }, @@ -344,25 +344,25 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "002475bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a15000000000150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096e88000000000000000002fd018d0200000000010206da3d8b7253faa4c9663f2124477d70d9bb93c39792d2e78ce80954144757140000000000ffffffff75bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a1500000000000000000003e8030000000000002251201aa347eeaed967cc1da29ae63e16c6b0d7e653cb8465d9678c03a5aadd469693e8030000000000002251207f80e879022a8ed063078bc89507e1727e167a924c56e82a6ac51ca977149bc94aa9f50500000000225120424ee9a5071750b1ba0b55c9f0f2613fe1e10616bfcb399c661833941daed17902483045022100e73decba204d5f83eeb1a37c6ecedad978291b5dd315fd6aa20c965a35b19fce02207b71da7bb58c371ebe08b758dd79e7f2f303776103bf9e3391389ed2b57f7aab0121035c30c18e240e7fed40d08bea7abf3fe73c79b28503aed33c32c71b5d7866d8a401403331ea969fa7be783b7411582d16fe24db46ea3f5a3da418d3c9fa47be53e4aba69903530d0615628d5abe1f65af45d2513fc07742cc28872f22148f2fa297490000000003010004fd02b40001000159005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd04b006fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a00018fe4287d3f4255877abfd18a156db9bdc178f46fc5f828564a9d7827c5f7e3cd000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffd01660001000159005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd012c06ad01ab006575bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a15000000002fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702aeac4986e8c72460b6a751e413e4c7216df677d9d4bf4bae1c63c8c300853e9301420140a78a0f6e328c20913a01cf65573cc0ea7f475e935e4c96e12acfe4071ee40b70694ca7093e825517d4de95c20f27db929d37357716c9ae46a832e95bbe2e8dda0728c4f6cfee065af559612a5c58a1775e3780d3d492d2d927b6bfdadba1eb62626900000000000005dc08020000092102bdccf6e4aaa9b2356cc5001d444a7b9f7a5ad9c6da85236230be3d7be0b5bcff08020000092102a3eaca18f57451fc2cda92d8637ce950405c339b335d21cbb2ae6fe479449ef3059f00040000000101210210ee8178e18046d105421c67c2e334f7432d458df1d460492d947e1357bacfe80274004900010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06fd012002ef0004000000000121021dd27d0f30c2c04f15af5c35ee88b6d311bfba00c2eeb89341a2be606ea8934c02c4007100010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717024a0001e3e1286f38832ae9a5c7b7ab1f9ee5c2e27b5a45a85fc51e39a8a427ebb87958000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f014f000100014a0001f1379cd74bd8dc03af86afd7d81b4f88a754896c463780c3ae2c46e2c7080f2b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf2e000400000002012102fc54f2740d5cba24638d7a488ea23d93b2205d5a4bdffe4c59ac8587128495ed030302010107c70004000000000121021dd27d0f30c2c04f15af5c35ee88b6d311bfba00c2eeb89341a2be606ea8934c029c004900010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001f1379cd74bd8dc03af86afd7d81b4f88a754896c463780c3ae2c46e2c7080f2b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf0b0400000000", + "expected": "5441505000242a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a546000000000150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000096e88000000000000000002fd018d020000000001020d6f775e8ac66f2c9020693553a2d6b688574a556508eace9c8797594b28620a0000000000ffffffff2a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a54600000000000000000003e803000000000000225120446a01650b0955e0290b35c0e91e24aff1f697c3c3fbaad0f142bcdd60415812e803000000000000225120eb050052af43a5229616c3d8a3ca28229e5f1eda81a1b82a87697eec202a62ef4aa9f505000000002251201e5092ea727e04ab93f2b4b02276c285a4ceb7d0682a34317ef86cf6756c963c02483045022100d8428af03b2cbb75099600939b05a09e6a720df664b23d105aeb4ee5651a9021022026818d82b7a00fe0690dca97aec10faf58883e443e8aff6385c51401107d337b0121028fac5cb01fa52f478457ae88a5271c1aa3c08a971e7eb3ed69c46f0c9d2ee4ba014031fb0bacc3a8a68ca95ee27df9ea9f06616af70dabf43220b449b1b1ad6a9d6f2fc5090cb5dbf1cb9ebce1fd24c5625ac8b43f948853bd40095ba2891d3dd2fd0000000003010004fd02b400010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd04b006fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a000108d741e2e7c0b67fee518c42307b5e4e479b23ef4e9e2f6aa9afd93b5a24a492000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffd016600010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd012c06ad01ab00652a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a546000000000fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f014201420140de887d54c1520a1a41bf75d262f40ec67892d044842746e121dc341bea68327feb29f565a127dc8b57c89ea15cc6a2dcf0d4285a2a5baf5c03ee33b78fea4cef07282f1650559ff4824ef60ab19625dcfaf2a39317747235601ce996cf07adc6406500000000000005dc0802000009210223dda3dc9b3eaff676f82792ebdbe4915a44d68ea8be8b3e9cbe69073c91fd6e0802000009210232cad83de89c46e89e5522cf298fa8082ff0724bc4b9d9f8f577984e21ebb2bb059f0004000000010121021a2e7099a583fd65415a03fbde2c8ed7ea9aba2a512c75eb487713f5d334ed7a0274004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06fd012002ef0004000000000121030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f02c4007100010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96024a00012079beb0615360b9564e0e279100aa33e264ad34853bd3136d5c95c41f51047d000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf014f000100014a0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef2e00040000000201210245f6604c5b5db3a59b0d7ea988c369c17a0298f10bd33cfa54d74e9f54f901e4030302010107c70004000000000121030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f029c004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef0b0400000000", "comment": "valid regtest split proof" }, { "proof": { - "prev_out": "a3e48a863ca2e83c4759a7909c8a6a0766e53a9f6c647bc7e1206f32cc543fff:1", + "prev_out": "19ffe36469ddf50ba065bcdf512a773f70794e2e74ce9cdba49b876216376f8f:1", "block_header": { "version": 541065216, - "prev_block": "6f4a14b01002d14c538065d2f9264c224231c995c7e96929bc350b28364fefcc", - "merkle_root": "1ad4f663df73cb525aea66ee5c4e7298c721feeabb5f139b270be353363b16d0", - "timestamp": 1693480105, + "prev_block": "094a5ef15c055b26ae14e0450b7ea9556316e5c072028a31a20e6e6f421cb417", + "merkle_root": "cd45134ee495b1c377fbbd49db4ccc54967047f538bfac97df3d3451832ec2ca", + "timestamp": 1694006889, "bits": 545259519, - "nonce": 2 + "nonce": 0 }, "block_height": 444, - "anchor_tx": "0200000000010200d54317c4d2f29bc331369eb587f71fe0cc7d7d74883c606a45f0c641792e410000000000ffffffffff3f54cc326f20e1c77b646c9f3ae566076a8a9c90a759473ce8a23c868ae4a301000000000000000003e803000000000000225120cff975615b0a36601e15e74541547f920db0724132db0fe0742b2a866f5f9028e803000000000000225120cd1386d8a2e2f573c90a1a8fb4b40fd570d2d03c651ee6e6f5a295bfa27c23e04aa9f5050000000022512083cb5a723299742bbeac9269a920bd8155e42d13543aa77dc7a872b6db31e57e0247304402203f7fdbb53d5bc5dcd8241505e10dc63ed1099b1379a87a044f190814fc2e962e02202dc271496799e9620d705578fa5c9e41ac08a259d74e6db13ac854902856f726012103549d04fb9cbe86c2411910c7e12e9937f28a1e9628f206adc7ebb3830103c6d70140fac493960b98357f9e1a28e3c2aa9b1220730126e8d0d9a6a46665f08c1b006a4734c8527ff4a569bc2b643c2228c8282060308223a5341b58126756f50285e800000000", + "anchor_tx": "02000000000102000b9c5425fd4186521743f78203b73a0cc85fffeeb48026f11bb6eed16a1f290000000000ffffffff8f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff1901000000000000000003e8030000000000002251206be9cc2c4d68ec4e9827bff12067bca0770a92fd10e346c9587eb674e534b2d4e8030000000000002251209556a078749c7a768ccbb97124296639ffa4785b59c82c4c135121e0217a96a44aa9f50500000000225120a152904d7685c3e24c348784140064f68ea252af71560c9c400574e696f375f502473044022069b2a86cf0a1e9f3f23bd38cab06c99a3ed326b4a2bdf932c744e8a662fe9cf302206911494f403f7e0aff12d53a3ec8dff3b8792bbcb6769499ae84e0423e39486c012102e641075343b4dae91de76437617f51a4c251395600c763595a8128f296dcb02901404986e85a6e29e02504b22b313bff0de240164a5b2d1309d2ffe1b841742c72042c40b70609c0206a6660d97dd812911eb054f2548d847989937b7e064597534600000000", "tx_merkle_proof": { "nodes": [ - "acdaf9ef85967c188235d6048f6c0fef91bedf570c199f3c9d9cbd27f7294aed" + "1517d69ae6cc250125197c19470276cdd2bd5b904fa71ed2d6a239367a10a662" ], "bits": [ false @@ -370,12 +370,12 @@ }, "asset": { "version": 0, - "genesis_first_prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "genesis_first_prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "genesis_tag": "first-itestbuxx", "genesis_meta_hash": "dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d", "genesis_output_index": 0, "genesis_type": 0, - "amount": 500, + "amount": 600, "lock_time": 0, "relative_lock_time": 0, "prev_witnesses": [ @@ -387,36 +387,36 @@ }, "tx_witness": null, "split_commitment": { - "proof": "0001be64e9b8bf8d9f92192dcde61f2c727fad5740d0dd91e72c47f75c8eeed4a80900000000000002bcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "proof": "0001cac8adc6fbff43b96418da0830e41cc24e687198fae443bbe64d13df6630dc830000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef", "root_asset": { "version": 0, - "genesis_first_prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "genesis_first_prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "genesis_tag": "first-itestbuxx", "genesis_meta_hash": "dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d", "genesis_output_index": 0, "genesis_type": 0, - "amount": 700, + "amount": 600, "lock_time": 0, "relative_lock_time": 0, "prev_witnesses": [ { "prev_id": { - "out_point": "a3e48a863ca2e83c4759a7909c8a6a0766e53a9f6c647bc7e1206f32cc543fff:1", - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717", - "script_key": "02a3eaca18f57451fc2cda92d8637ce950405c339b335d21cbb2ae6fe479449ef3" + "out_point": "19ffe36469ddf50ba065bcdf512a773f70794e2e74ce9cdba49b876216376f8f:1", + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96", + "script_key": "0232cad83de89c46e89e5522cf298fa8082ff0724bc4b9d9f8f577984e21ebb2bb" }, "tx_witness": [ - "731afca17f759d2da8a7499b34bbebd843eeb9a41053a0e2f9c4a9688f807c5673904c65c53e7d3a16224adbb5ead039364d060b5e114832d9ff743a87142715" + "8d602ec4a118925c23597faa896bccb675025b95f6827e29d6aa4a109eeea5ff64abdef145caa91bcba5f89d5dc79186620b1ce71db2780417fc1cefe584d7d6" ], "split_commitment": null } ], "split_commitment_root": { - "hash": "5276ca3e8ed5edfe1d663864cc9d4b55d317310ad11b9b4af484762821e5a627", + "hash": "7a1d9a8372ee98c20893e1ab4d8028f1d3661c5fee83dbcfc528bfa738e5b071", "sum": "1200" }, "script_version": 0, - "script_key": "02e96e7a98868e359456d045b486ca3344e9f5ad860e8a402bf34bf73bc77d2a6e", + "script_key": "02efd8980ab3cacc9183c45bbbdded673416dba20a21486343d2dbbc5c37a0659b", "group_key": null } } @@ -424,18 +424,18 @@ ], "split_commitment_root": null, "script_version": 0, - "script_key": "02dd084859b6233728659a35052a1dde96cc2ba92ed813d8d5be0d9e103178ee16", + "script_key": "021cd140129b6140352dbf4469c8f2fbe4b3567479925f0619f59e8dfad0e0ea02", "group_key": null }, "inclusion_proof": { "output_index": 1, - "internal_key": "024bc42417867894cadb917276991607150457fc3481ab4b3fe73e98b7d9c463b7", + "internal_key": "03a5d14787afdd48b27852302d8e6044adc80b2b09a84e405bd15df0a58372cb09", "commitment_proof": { "proof": { "asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", @@ -449,13 +449,13 @@ "exclusion_proofs": [ { "output_index": 0, - "internal_key": "03204c4b922f2b567905131ec0d4116fd4e03ce6c55003e352f525c8842692df5d", + "internal_key": "03a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb", "commitment_proof": { "proof": { "asset_proof": { - "proof": "000163fc2d75ff3a9b49efaa0a407de981fd1997ff736eabe8277cac7ddd261af97f00000000000002bcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "proof": "000113e93b60b459b01018e7d1c419a0c085dc2a8022272f096228640e957005277a0000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", @@ -468,7 +468,7 @@ }, { "output_index": 2, - "internal_key": "02a6f0dc7b8aefc5faaf73888b3323a6ba4a26a779cae4b5f6b78c7d12ec82b123", + "internal_key": "02fe7cd697bcc60a44dfd209ed970e6cd14d6094506a47a2a6a5b0cfa6f63dd0d6", "commitment_proof": null, "tapscript_proof": { "tap_preimage_1": "", @@ -479,13 +479,13 @@ ], "split_root_proof": { "output_index": 0, - "internal_key": "03204c4b922f2b567905131ec0d4116fd4e03ce6c55003e352f525c8842692df5d", + "internal_key": "03a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb", "commitment_proof": { "proof": { "asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", @@ -499,28 +499,28 @@ "meta_reveal": null, "additional_inputs": null, "challenge_witness": [ - "bbb66f7d3cd53b00143cf01fd9f71b65f1c93e2074c18ebe4e290c24e4c3cbdb81d66b568b498f4f9b10759684a0f5d43761c17421ec0b9c163e73e217f9eec3" + "e960b17b2a7553e40958ee541c99c31b1143fb6ff70c363d04a761111ec634e4526d969945031d185f32df5f20bc2a2e6b4617e58db851fe559bf91f8e9ea4b7" ] }, - "expected": "0024ff3f54cc326f20e1c77b646c9f3ae566076a8a9c90a759473ce8a23c868ae4a300000001015000004020ccef4f36280b35bc2969e9c795c93142224c26f9d26580534cd10210b0144a6fd0163b3653e30b279b135fbbeafe21c798724e5cee66ea5a52cb73df63f6d41aa974f064ffff7f200200000002fd018c0200000000010200d54317c4d2f29bc331369eb587f71fe0cc7d7d74883c606a45f0c641792e410000000000ffffffffff3f54cc326f20e1c77b646c9f3ae566076a8a9c90a759473ce8a23c868ae4a301000000000000000003e803000000000000225120cff975615b0a36601e15e74541547f920db0724132db0fe0742b2a866f5f9028e803000000000000225120cd1386d8a2e2f573c90a1a8fb4b40fd570d2d03c651ee6e6f5a295bfa27c23e04aa9f5050000000022512083cb5a723299742bbeac9269a920bd8155e42d13543aa77dc7a872b6db31e57e0247304402203f7fdbb53d5bc5dcd8241505e10dc63ed1099b1379a87a044f190814fc2e962e02202dc271496799e9620d705578fa5c9e41ac08a259d74e6db13ac854902856f726012103549d04fb9cbe86c2411910c7e12e9937f28a1e9628f206adc7ebb3830103c6d70140fac493960b98357f9e1a28e3c2aa9b1220730126e8d0d9a6a46665f08c1b006a4734c8527ff4a569bc2b643c2228c8282060308223a5341b58126756f50285e800000000032201ed4a29f727bd9c9d3c9f190c57dfbe91ef0f6c8f04d63582187c9685eff9daac0004fd02b40001000159005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd01f406fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a0001be64e9b8bf8d9f92192dcde61f2c727fad5740d0dd91e72c47f75c8eeed4a80900000000000002bcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffd01660001000159005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd02bc06ad01ab0065ff3f54cc326f20e1c77b646c9f3ae566076a8a9c90a759473ce8a23c868ae4a3000000012fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702a3eaca18f57451fc2cda92d8637ce950405c339b335d21cbb2ae6fe479449ef301420140731afca17f759d2da8a7499b34bbebd843eeb9a41053a0e2f9c4a9688f807c5673904c65c53e7d3a16224adbb5ead039364d060b5e114832d9ff743a8714271507285276ca3e8ed5edfe1d663864cc9d4b55d317310ad11b9b4af484762821e5a62700000000000004b008020000092102e96e7a98868e359456d045b486ca3344e9f5ad860e8a402bf34bf73bc77d2a6e08020000092102dd084859b6233728659a35052a1dde96cc2ba92ed813d8d5be0d9e103178ee16059f0004000000010121024bc42417867894cadb917276991607150457fc3481ab4b3fe73e98b7d9c463b70274004900010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06f802c7000400000000012103204c4b922f2b567905131ec0d4116fd4e03ce6c55003e352f525c8842692df5d029c007100010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717024a000163fc2d75ff3a9b49efaa0a407de981fd1997ff736eabe8277cac7ddd261af97f00000000000002bcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e000400000002012102a6f0dc7b8aefc5faaf73888b3323a6ba4a26a779cae4b5f6b78c7d12ec82b1230303020101079f000400000000012103204c4b922f2b567905131ec0d4116fd4e03ce6c55003e352f525c8842692df5d0274004900010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a420140bbb66f7d3cd53b00143cf01fd9f71b65f1c93e2074c18ebe4e290c24e4c3cbdb81d66b568b498f4f9b10759684a0f5d43761c17421ec0b9c163e73e217f9eec30b04000001bc", + "expected": "5441505000248f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff190000000101500000402017b41c426f6e0ea2318a0272c0e5166355a97e0b45e014ae265b055cf15e4a09cac22e8351343ddf97acbf38f547709654cc4cdb49bdfb77c3b195e44e1345cd697ef864ffff7f200000000002fd018c02000000000102000b9c5425fd4186521743f78203b73a0cc85fffeeb48026f11bb6eed16a1f290000000000ffffffff8f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff1901000000000000000003e8030000000000002251206be9cc2c4d68ec4e9827bff12067bca0770a92fd10e346c9587eb674e534b2d4e8030000000000002251209556a078749c7a768ccbb97124296639ffa4785b59c82c4c135121e0217a96a44aa9f50500000000225120a152904d7685c3e24c348784140064f68ea252af71560c9c400574e696f375f502473044022069b2a86cf0a1e9f3f23bd38cab06c99a3ed326b4a2bdf932c744e8a662fe9cf302206911494f403f7e0aff12d53a3ec8dff3b8792bbcb6769499ae84e0423e39486c012102e641075343b4dae91de76437617f51a4c251395600c763595a8128f296dcb02901404986e85a6e29e02504b22b313bff0de240164a5b2d1309d2ffe1b841742c72042c40b70609c0206a6660d97dd812911eb054f2548d847989937b7e06459753460000000003220162a6107a3639a2d6d21ea74f905bbdd2cd760247197c19250125cce69ad617150004fd02b400010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a0001cac8adc6fbff43b96418da0830e41cc24e687198fae443bbe64d13df6630dc830000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffd016600010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806ad01ab00658f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff19000000010fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b960232cad83de89c46e89e5522cf298fa8082ff0724bc4b9d9f8f577984e21ebb2bb014201408d602ec4a118925c23597faa896bccb675025b95f6827e29d6aa4a109eeea5ff64abdef145caa91bcba5f89d5dc79186620b1ce71db2780417fc1cefe584d7d607287a1d9a8372ee98c20893e1ab4d8028f1d3661c5fee83dbcfc528bfa738e5b07100000000000004b008020000092102efd8980ab3cacc9183c45bbbdded673416dba20a21486343d2dbbc5c37a0659b080200000921021cd140129b6140352dbf4469c8f2fbe4b3567479925f0619f59e8dfad0e0ea02059f000400000001012103a5d14787afdd48b27852302d8e6044adc80b2b09a84e405bd15df0a58372cb090274004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06f802c7000400000000012103a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb029c007100010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96024a000113e93b60b459b01018e7d1c419a0c085dc2a8022272f096228640e957005277a0000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e000400000002012102fe7cd697bcc60a44dfd209ed970e6cd14d6094506a47a2a6a5b0cfa6f63dd0d60303020101079f000400000000012103a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb0274004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a420140e960b17b2a7553e40958ee541c99c31b1143fb6ff70c363d04a761111ec634e4526d969945031d185f32df5f20bc2a2e6b4617e58db851fe559bf91f8e9ea4b70b04000001bc", "comment": "valid regtest ownership proof" }, { "proof": { - "prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "block_header": { "version": 541065216, - "prev_block": "44d3b42cf499c0e5c7ce75cb2b9d293b161361101620108c873d4e90772221e6", - "merkle_root": "e3a640f85a22dcf6082c8279aacae8bcbf58183b50e75efc05a844a88dbcff79", - "timestamp": 1693480105, + "prev_block": "316d859cecdb119353503ad4318450f447a57de82367833bcc1fee97a11dd539", + "merkle_root": "159ddee5e35c7cd47e35e520da4fc2a5e13b5e579bb1de768ba732224a4caae4", + "timestamp": 1694006889, "bits": 545259519, - "nonce": 0 + "nonce": 3 }, "block_height": 441, - "anchor_tx": "02000000000101005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a0000000000ffffffff02e803000000000000225120c5532da05265abb1b740828a423046bc2b38fab6f4deb8a13fc64f59be9fc001debcf50500000000225120b061c4c81aed3d158ad8abbeda73fa76389323e53461ae3727894e4ffe582c0e02483045022100a3c7343891257da013708411998c8f685dbe1e77c0a222bf11227d79a29a9a6002205f4330bc32e5f0f8836db23b21c8b640490153e1403bb1a80998960bfbec3a6101210381c26249078b3fb3ad2387ff1ce4d8153dddf7258bc5b58b409fcd16d3df9d5900000000", + "anchor_tx": "020000000001010476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc0000000000ffffffff02e803000000000000225120dc439da4518e4b3fb945857267a1bdba6208b3f9094982015a4367077c286be5debcf50500000000225120d4ab96a2349339a12eb69fc7038dbf214cec167b016d2b06e5245fa661f24458024830450221009e75dc9077b09e07e75f07cd789e9f524183efd922a180da7e8b37767c9ae0cf022007107b5feec37567c43ff0e4a7b15c326947997ed1eb90a2767a7a05fca6edcf012102962a490f66573b285023d6e92a8e08662ae321da5785adc16afa6131651be66100000000", "tx_merkle_proof": { "nodes": [ - "18791a381a48962338b8f5b0b882adee702b3b13c8a76127aaca77b169ac08dd" + "9cfb50dbccbcde6c368447f23d3e6b98d4812b5d0413829241003206f4362432" ], "bits": [ false @@ -528,7 +528,7 @@ }, "asset": { "version": 0, - "genesis_first_prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "genesis_first_prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "genesis_tag": "first-itestbuxx", "genesis_meta_hash": "dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d", "genesis_output_index": 0, @@ -549,21 +549,21 @@ ], "split_commitment_root": null, "script_version": 0, - "script_key": "02aeac4986e8c72460b6a751e413e4c7216df677d9d4bf4bae1c63c8c300853e93", + "script_key": "02f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f0142", "group_key": null }, "inclusion_proof": { "output_index": 0, - "internal_key": "02fa4d23d048dbc292f69a5ca081b9f0b3c5cb4886b7f1767428609e375479345d", + "internal_key": "029fbcdc8f499236f70975dad9ede723f1572fa1c57cedc7dd17bbb848202c5764", "commitment_proof": { "proof": { "asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { - "proof": "000129606637cd38716268bf1cca64ae036c73d5fa95e1258d56085128a30d2b087f00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf", + "proof": "0001d8857e524f830ba8a658c394af269eaa6863f982354151dcd1183f5eb308a8aa00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef", "version": 0 } }, @@ -574,7 +574,7 @@ "exclusion_proofs": [ { "output_index": 1, - "internal_key": "024201da6b9645e123229f440ff1007691251a3b8a5d85c8321e28d640d61163da", + "internal_key": "02c0712538d157a3c3fe4aa1c167966e9277175515f23a30de9f3793de1b6ddc11", "commitment_proof": null, "tapscript_proof": { "tap_preimage_1": "", @@ -591,25 +591,25 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "0024005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a00000000015000004020e6212277904e3d878c102016106113163b299d2bcb75cec7e5c099f42cb4d34479ffbc8da844a805fc5ee7503b1858bfbce8caaa79822c08f6dc225af840a6e3a974f064ffff7f200000000002f702000000000101005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a0000000000ffffffff02e803000000000000225120c5532da05265abb1b740828a423046bc2b38fab6f4deb8a13fc64f59be9fc001debcf50500000000225120b061c4c81aed3d158ad8abbeda73fa76389323e53461ae3727894e4ffe582c0e02483045022100a3c7343891257da013708411998c8f685dbe1e77c0a222bf11227d79a29a9a6002205f4330bc32e5f0f8836db23b21c8b640490153e1403bb1a80998960bfbec3a6101210381c26249078b3fb3ad2387ff1ce4d8153dddf7258bc5b58b409fcd16d3df9d5900000000032201dd08ac69b177caaa2761a7c8133b2b70eead82b8b0f5b8382396481a381a79180004f80001000159005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd05dc066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102aeac4986e8c72460b6a751e413e4c7216df677d9d4bf4bae1c63c8c300853e9305c7000400000000012102fa4d23d048dbc292f69a5ca081b9f0b3c5cb4886b7f1767428609e375479345d029c004900010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a000129606637cd38716268bf1cca64ae036c73d5fa95e1258d56085128a30d2b087f00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf0630012e0004000000010121024201da6b9645e123229f440ff1007691251a3b8a5d85c8321e28d640d61163da03030201010813000100010e69746573742d6d657461646174610b04000001b9", + "expected": "5441505000240476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc0000000001500000402039d51da197ee1fcc3b836723e87da547f4508431d43a50539311dbec9c856d31e4aa4c4a2232a78b76deb19b575e3be1a5c24fda20e5357ed47c5ce3e5de9d15697ef864ffff7f200300000002f7020000000001010476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc0000000000ffffffff02e803000000000000225120dc439da4518e4b3fb945857267a1bdba6208b3f9094982015a4367077c286be5debcf50500000000225120d4ab96a2349339a12eb69fc7038dbf214cec167b016d2b06e5245fa661f24458024830450221009e75dc9077b09e07e75f07cd789e9f524183efd922a180da7e8b37767c9ae0cf022007107b5feec37567c43ff0e4a7b15c326947997ed1eb90a2767a7a05fca6edcf012102962a490f66573b285023d6e92a8e08662ae321da5785adc16afa6131651be66100000000032201322436f406320041928213045d2b81d4986b3e3df24784366cdebcccdb50fb9c0004f800010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd05dc066901670065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008020000092102f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f014205c70004000000000121029fbcdc8f499236f70975dad9ede723f1572fa1c57cedc7dd17bbb848202c5764029c004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001d8857e524f830ba8a658c394af269eaa6863f982354151dcd1183f5eb308a8aa00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef0630012e000400000001012102c0712538d157a3c3fe4aa1c167966e9277175515f23a30de9f3793de1b6ddc1103030201010813000100010e69746573742d6d657461646174610b04000001b9", "comment": "valid regtest proof file index 0" }, { "proof": { - "prev_out": "154acf44a7c6c85b04d2adab29ae203a221e42040252f906f5e4da0257d8bb75:0", + "prev_out": "46a523fa65b8108748d3270a5287857e8bb0fba63321a032eeb82b9e77514b2a:0", "block_header": { "version": 541065216, - "prev_block": "1f69c24c7fdfe348927099ebc9465b6bc76f26684079fe5cbb80762d817aa62e", - "merkle_root": "fc22bfd5edea2d6ecaa858e7170e61c7ba52d0bdb02a3a10d78319dd93d51bae", - "timestamp": 1693480105, + "prev_block": "3a6f6fea70ef771609253afcea1a00598c88c51f62af7b175a50c4c378b1e086", + "merkle_root": "ec0fe651a69ea70106413ae3e53d97625359ea12e112f34f885f5b0e4cdaa42e", + "timestamp": 1694006889, "bits": 545259519, - "nonce": 1 + "nonce": 2 }, "block_height": 442, - "anchor_tx": "0200000000010206da3d8b7253faa4c9663f2124477d70d9bb93c39792d2e78ce80954144757140000000000ffffffff75bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a1500000000000000000003e8030000000000002251201aa347eeaed967cc1da29ae63e16c6b0d7e653cb8465d9678c03a5aadd469693e8030000000000002251207f80e879022a8ed063078bc89507e1727e167a924c56e82a6ac51ca977149bc94aa9f50500000000225120424ee9a5071750b1ba0b55c9f0f2613fe1e10616bfcb399c661833941daed17902483045022100e73decba204d5f83eeb1a37c6ecedad978291b5dd315fd6aa20c965a35b19fce02207b71da7bb58c371ebe08b758dd79e7f2f303776103bf9e3391389ed2b57f7aab0121035c30c18e240e7fed40d08bea7abf3fe73c79b28503aed33c32c71b5d7866d8a401403331ea969fa7be783b7411582d16fe24db46ea3f5a3da418d3c9fa47be53e4aba69903530d0615628d5abe1f65af45d2513fc07742cc28872f22148f2fa2974900000000", + "anchor_tx": "020000000001020d6f775e8ac66f2c9020693553a2d6b688574a556508eace9c8797594b28620a0000000000ffffffff2a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a54600000000000000000003e803000000000000225120446a01650b0955e0290b35c0e91e24aff1f697c3c3fbaad0f142bcdd60415812e803000000000000225120eb050052af43a5229616c3d8a3ca28229e5f1eda81a1b82a87697eec202a62ef4aa9f505000000002251201e5092ea727e04ab93f2b4b02276c285a4ceb7d0682a34317ef86cf6756c963c02483045022100d8428af03b2cbb75099600939b05a09e6a720df664b23d105aeb4ee5651a9021022026818d82b7a00fe0690dca97aec10faf58883e443e8aff6385c51401107d337b0121028fac5cb01fa52f478457ae88a5271c1aa3c08a971e7eb3ed69c46f0c9d2ee4ba014031fb0bacc3a8a68ca95ee27df9ea9f06616af70dabf43220b449b1b1ad6a9d6f2fc5090cb5dbf1cb9ebce1fd24c5625ac8b43f948853bd40095ba2891d3dd2fd00000000", "tx_merkle_proof": { "nodes": [ - "f4deee6295b812281f0277d9e1b3f3d8c4d8b5634bc91cd10c4d02942f23261e" + "3ef6d5547df3f79375b88ec4a9313b89f6766c55e76ee0f329f53998eef9e6e6" ], "bits": [ false @@ -617,7 +617,7 @@ }, "asset": { "version": 0, - "genesis_first_prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "genesis_first_prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "genesis_tag": "first-itestbuxx", "genesis_meta_hash": "dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d", "genesis_output_index": 0, @@ -634,10 +634,10 @@ }, "tx_witness": null, "split_commitment": { - "proof": "00018fe4287d3f4255877abfd18a156db9bdc178f46fc5f828564a9d7827c5f7e3cd000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "proof": "000108d741e2e7c0b67fee518c42307b5e4e479b23ef4e9e2f6aa9afd93b5a24a492000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf", "root_asset": { "version": 0, - "genesis_first_prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "genesis_first_prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "genesis_tag": "first-itestbuxx", "genesis_meta_hash": "dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d", "genesis_output_index": 0, @@ -648,22 +648,22 @@ "prev_witnesses": [ { "prev_id": { - "out_point": "154acf44a7c6c85b04d2adab29ae203a221e42040252f906f5e4da0257d8bb75:0", - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717", - "script_key": "02aeac4986e8c72460b6a751e413e4c7216df677d9d4bf4bae1c63c8c300853e93" + "out_point": "46a523fa65b8108748d3270a5287857e8bb0fba63321a032eeb82b9e77514b2a:0", + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96", + "script_key": "02f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f0142" }, "tx_witness": [ - "a78a0f6e328c20913a01cf65573cc0ea7f475e935e4c96e12acfe4071ee40b70694ca7093e825517d4de95c20f27db929d37357716c9ae46a832e95bbe2e8dda" + "de887d54c1520a1a41bf75d262f40ec67892d044842746e121dc341bea68327feb29f565a127dc8b57c89ea15cc6a2dcf0d4285a2a5baf5c03ee33b78fea4cef" ], "split_commitment": null } ], "split_commitment_root": { - "hash": "c4f6cfee065af559612a5c58a1775e3780d3d492d2d927b6bfdadba1eb626269", + "hash": "2f1650559ff4824ef60ab19625dcfaf2a39317747235601ce996cf07adc64065", "sum": "1500" }, "script_version": 0, - "script_key": "02bdccf6e4aaa9b2356cc5001d444a7b9f7a5ad9c6da85236230be3d7be0b5bcff", + "script_key": "0223dda3dc9b3eaff676f82792ebdbe4915a44d68ea8be8b3e9cbe69073c91fd6e", "group_key": null } } @@ -671,18 +671,18 @@ ], "split_commitment_root": null, "script_version": 0, - "script_key": "02a3eaca18f57451fc2cda92d8637ce950405c339b335d21cbb2ae6fe479449ef3", + "script_key": "0232cad83de89c46e89e5522cf298fa8082ff0724bc4b9d9f8f577984e21ebb2bb", "group_key": null }, "inclusion_proof": { "output_index": 1, - "internal_key": "0210ee8178e18046d105421c67c2e334f7432d458df1d460492d947e1357bacfe8", + "internal_key": "021a2e7099a583fd65415a03fbde2c8ed7ea9aba2a512c75eb487713f5d334ed7a", "commitment_proof": { "proof": { "asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", @@ -696,16 +696,16 @@ "exclusion_proofs": [ { "output_index": 0, - "internal_key": "021dd27d0f30c2c04f15af5c35ee88b6d311bfba00c2eeb89341a2be606ea8934c", + "internal_key": "030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f", "commitment_proof": { "proof": { "asset_proof": { - "proof": "0001e3e1286f38832ae9a5c7b7ab1f9ee5c2e27b5a45a85fc51e39a8a427ebb87958000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "proof": "00012079beb0615360b9564e0e279100aa33e264ad34853bd3136d5c95c41f51047d000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { - "proof": "0001f1379cd74bd8dc03af86afd7d81b4f88a754896c463780c3ae2c46e2c7080f2b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf", + "proof": "0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef", "version": 0 } }, @@ -715,7 +715,7 @@ }, { "output_index": 2, - "internal_key": "02fc54f2740d5cba24638d7a488ea23d93b2205d5a4bdffe4c59ac8587128495ed", + "internal_key": "0245f6604c5b5db3a59b0d7ea988c369c17a0298f10bd33cfa54d74e9f54f901e4", "commitment_proof": null, "tapscript_proof": { "tap_preimage_1": "", @@ -726,16 +726,16 @@ ], "split_root_proof": { "output_index": 0, - "internal_key": "021dd27d0f30c2c04f15af5c35ee88b6d311bfba00c2eeb89341a2be606ea8934c", + "internal_key": "030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f", "commitment_proof": { "proof": { "asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { - "proof": "0001f1379cd74bd8dc03af86afd7d81b4f88a754896c463780c3ae2c46e2c7080f2b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf", + "proof": "0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef", "version": 0 } }, @@ -747,25 +747,25 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "002475bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a15000000000150000040202ea67a812d7680bb5cfe794068266fc76b5b46c9eb99709248e3df7f4cc2691fae1bd593dd1983d7103a2ab0bdd052bac7610e17e758a8ca6e2deaedd5bf22fca974f064ffff7f200100000002fd018d0200000000010206da3d8b7253faa4c9663f2124477d70d9bb93c39792d2e78ce80954144757140000000000ffffffff75bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a1500000000000000000003e8030000000000002251201aa347eeaed967cc1da29ae63e16c6b0d7e653cb8465d9678c03a5aadd469693e8030000000000002251207f80e879022a8ed063078bc89507e1727e167a924c56e82a6ac51ca977149bc94aa9f50500000000225120424ee9a5071750b1ba0b55c9f0f2613fe1e10616bfcb399c661833941daed17902483045022100e73decba204d5f83eeb1a37c6ecedad978291b5dd315fd6aa20c965a35b19fce02207b71da7bb58c371ebe08b758dd79e7f2f303776103bf9e3391389ed2b57f7aab0121035c30c18e240e7fed40d08bea7abf3fe73c79b28503aed33c32c71b5d7866d8a401403331ea969fa7be783b7411582d16fe24db46ea3f5a3da418d3c9fa47be53e4aba69903530d0615628d5abe1f65af45d2513fc07742cc28872f22148f2fa29749000000000322011e26232f94024d0cd11cc94b63b5d8c4d8f3b3e1d977021f2812b89562eedef40004fd02b40001000159005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd04b006fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a00018fe4287d3f4255877abfd18a156db9bdc178f46fc5f828564a9d7827c5f7e3cd000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffd01660001000159005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd012c06ad01ab006575bbd85702dae4f506f9520204421e223a20ae29abadd2045bc8c6a744cf4a15000000002fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702aeac4986e8c72460b6a751e413e4c7216df677d9d4bf4bae1c63c8c300853e9301420140a78a0f6e328c20913a01cf65573cc0ea7f475e935e4c96e12acfe4071ee40b70694ca7093e825517d4de95c20f27db929d37357716c9ae46a832e95bbe2e8dda0728c4f6cfee065af559612a5c58a1775e3780d3d492d2d927b6bfdadba1eb62626900000000000005dc08020000092102bdccf6e4aaa9b2356cc5001d444a7b9f7a5ad9c6da85236230be3d7be0b5bcff08020000092102a3eaca18f57451fc2cda92d8637ce950405c339b335d21cbb2ae6fe479449ef3059f00040000000101210210ee8178e18046d105421c67c2e334f7432d458df1d460492d947e1357bacfe80274004900010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06fd012002ef0004000000000121021dd27d0f30c2c04f15af5c35ee88b6d311bfba00c2eeb89341a2be606ea8934c02c4007100010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717024a0001e3e1286f38832ae9a5c7b7ab1f9ee5c2e27b5a45a85fc51e39a8a427ebb87958000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f014f000100014a0001f1379cd74bd8dc03af86afd7d81b4f88a754896c463780c3ae2c46e2c7080f2b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf2e000400000002012102fc54f2740d5cba24638d7a488ea23d93b2205d5a4bdffe4c59ac8587128495ed030302010107c70004000000000121021dd27d0f30c2c04f15af5c35ee88b6d311bfba00c2eeb89341a2be606ea8934c029c004900010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001f1379cd74bd8dc03af86afd7d81b4f88a754896c463780c3ae2c46e2c7080f2b00000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf0b04000001ba", + "expected": "5441505000242a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a5460000000001500000402086e0b178c3c4505a177baf621fc5888c59001aeafc3a25091677ef70ea6f6f3a2ea4da4c0e5b5f884ff312e112ea595362973de5e33a410601a79ea651e60fec697ef864ffff7f200200000002fd018d020000000001020d6f775e8ac66f2c9020693553a2d6b688574a556508eace9c8797594b28620a0000000000ffffffff2a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a54600000000000000000003e803000000000000225120446a01650b0955e0290b35c0e91e24aff1f697c3c3fbaad0f142bcdd60415812e803000000000000225120eb050052af43a5229616c3d8a3ca28229e5f1eda81a1b82a87697eec202a62ef4aa9f505000000002251201e5092ea727e04ab93f2b4b02276c285a4ceb7d0682a34317ef86cf6756c963c02483045022100d8428af03b2cbb75099600939b05a09e6a720df664b23d105aeb4ee5651a9021022026818d82b7a00fe0690dca97aec10faf58883e443e8aff6385c51401107d337b0121028fac5cb01fa52f478457ae88a5271c1aa3c08a971e7eb3ed69c46f0c9d2ee4ba014031fb0bacc3a8a68ca95ee27df9ea9f06616af70dabf43220b449b1b1ad6a9d6f2fc5090cb5dbf1cb9ebce1fd24c5625ac8b43f948853bd40095ba2891d3dd2fd00000000032201e6e6f9ee9839f529f3e06ee7556c76f6893b31a9c48eb87593f7f37d54d5f63e0004fd02b400010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd04b006fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a000108d741e2e7c0b67fee518c42307b5e4e479b23ef4e9e2f6aa9afd93b5a24a492000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffd016600010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd012c06ad01ab00652a4b51779e2bb8ee32a02133a6fbb08b7e8587520a27d3488710b865fa23a546000000000fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602f91e7cfb6220666f217c3df6937f13c1325886e4e54877f1bbf128d40d5f014201420140de887d54c1520a1a41bf75d262f40ec67892d044842746e121dc341bea68327feb29f565a127dc8b57c89ea15cc6a2dcf0d4285a2a5baf5c03ee33b78fea4cef07282f1650559ff4824ef60ab19625dcfaf2a39317747235601ce996cf07adc6406500000000000005dc0802000009210223dda3dc9b3eaff676f82792ebdbe4915a44d68ea8be8b3e9cbe69073c91fd6e0802000009210232cad83de89c46e89e5522cf298fa8082ff0724bc4b9d9f8f577984e21ebb2bb059f0004000000010121021a2e7099a583fd65415a03fbde2c8ed7ea9aba2a512c75eb487713f5d334ed7a0274004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06fd012002ef0004000000000121030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f02c4007100010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96024a00012079beb0615360b9564e0e279100aa33e264ad34853bd3136d5c95c41f51047d000000000000012cffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdf014f000100014a0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef2e00040000000201210245f6604c5b5db3a59b0d7ea988c369c17a0298f10bd33cfa54d74e9f54f901e4030302010107c70004000000000121030663517eeb2482d75c673e633a73d683b77e3a592e607e0defe623f63ab9f65f029c004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff014f000100014a0001224768c360c88c8850f2f3b1fba15850722e7d0eda3bcdab74b935f38edd7a8300000000000007d0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef0b04000001ba", "comment": "valid regtest proof file index 1" }, { "proof": { - "prev_out": "a3e48a863ca2e83c4759a7909c8a6a0766e53a9f6c647bc7e1206f32cc543fff:1", + "prev_out": "19ffe36469ddf50ba065bcdf512a773f70794e2e74ce9cdba49b876216376f8f:1", "block_header": { "version": 541065216, - "prev_block": "6f4a14b01002d14c538065d2f9264c224231c995c7e96929bc350b28364fefcc", - "merkle_root": "1ad4f663df73cb525aea66ee5c4e7298c721feeabb5f139b270be353363b16d0", - "timestamp": 1693480105, + "prev_block": "094a5ef15c055b26ae14e0450b7ea9556316e5c072028a31a20e6e6f421cb417", + "merkle_root": "cd45134ee495b1c377fbbd49db4ccc54967047f538bfac97df3d3451832ec2ca", + "timestamp": 1694006889, "bits": 545259519, - "nonce": 2 + "nonce": 0 }, "block_height": 444, - "anchor_tx": "0200000000010200d54317c4d2f29bc331369eb587f71fe0cc7d7d74883c606a45f0c641792e410000000000ffffffffff3f54cc326f20e1c77b646c9f3ae566076a8a9c90a759473ce8a23c868ae4a301000000000000000003e803000000000000225120cff975615b0a36601e15e74541547f920db0724132db0fe0742b2a866f5f9028e803000000000000225120cd1386d8a2e2f573c90a1a8fb4b40fd570d2d03c651ee6e6f5a295bfa27c23e04aa9f5050000000022512083cb5a723299742bbeac9269a920bd8155e42d13543aa77dc7a872b6db31e57e0247304402203f7fdbb53d5bc5dcd8241505e10dc63ed1099b1379a87a044f190814fc2e962e02202dc271496799e9620d705578fa5c9e41ac08a259d74e6db13ac854902856f726012103549d04fb9cbe86c2411910c7e12e9937f28a1e9628f206adc7ebb3830103c6d70140fac493960b98357f9e1a28e3c2aa9b1220730126e8d0d9a6a46665f08c1b006a4734c8527ff4a569bc2b643c2228c8282060308223a5341b58126756f50285e800000000", + "anchor_tx": "02000000000102000b9c5425fd4186521743f78203b73a0cc85fffeeb48026f11bb6eed16a1f290000000000ffffffff8f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff1901000000000000000003e8030000000000002251206be9cc2c4d68ec4e9827bff12067bca0770a92fd10e346c9587eb674e534b2d4e8030000000000002251209556a078749c7a768ccbb97124296639ffa4785b59c82c4c135121e0217a96a44aa9f50500000000225120a152904d7685c3e24c348784140064f68ea252af71560c9c400574e696f375f502473044022069b2a86cf0a1e9f3f23bd38cab06c99a3ed326b4a2bdf932c744e8a662fe9cf302206911494f403f7e0aff12d53a3ec8dff3b8792bbcb6769499ae84e0423e39486c012102e641075343b4dae91de76437617f51a4c251395600c763595a8128f296dcb02901404986e85a6e29e02504b22b313bff0de240164a5b2d1309d2ffe1b841742c72042c40b70609c0206a6660d97dd812911eb054f2548d847989937b7e064597534600000000", "tx_merkle_proof": { "nodes": [ - "acdaf9ef85967c188235d6048f6c0fef91bedf570c199f3c9d9cbd27f7294aed" + "1517d69ae6cc250125197c19470276cdd2bd5b904fa71ed2d6a239367a10a662" ], "bits": [ false @@ -773,12 +773,12 @@ }, "asset": { "version": 0, - "genesis_first_prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "genesis_first_prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "genesis_tag": "first-itestbuxx", "genesis_meta_hash": "dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d", "genesis_output_index": 0, "genesis_type": 0, - "amount": 500, + "amount": 600, "lock_time": 0, "relative_lock_time": 0, "prev_witnesses": [ @@ -790,36 +790,36 @@ }, "tx_witness": null, "split_commitment": { - "proof": "0001be64e9b8bf8d9f92192dcde61f2c727fad5740d0dd91e72c47f75c8eeed4a80900000000000002bcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "proof": "0001cac8adc6fbff43b96418da0830e41cc24e687198fae443bbe64d13df6630dc830000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef", "root_asset": { "version": 0, - "genesis_first_prev_out": "4a7bc3d535f78fc3b3b6ccd33922455cbd87064260cbc4896625b065b7725b00:0", + "genesis_first_prev_out": "bc796315314b6688c31b8feb9d067cd04e782234da226634e8bb1441a2d87604:0", "genesis_tag": "first-itestbuxx", "genesis_meta_hash": "dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d", "genesis_output_index": 0, "genesis_type": 0, - "amount": 700, + "amount": 600, "lock_time": 0, "relative_lock_time": 0, "prev_witnesses": [ { "prev_id": { - "out_point": "a3e48a863ca2e83c4759a7909c8a6a0766e53a9f6c647bc7e1206f32cc543fff:1", - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717", - "script_key": "02a3eaca18f57451fc2cda92d8637ce950405c339b335d21cbb2ae6fe479449ef3" + "out_point": "19ffe36469ddf50ba065bcdf512a773f70794e2e74ce9cdba49b876216376f8f:1", + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96", + "script_key": "0232cad83de89c46e89e5522cf298fa8082ff0724bc4b9d9f8f577984e21ebb2bb" }, "tx_witness": [ - "731afca17f759d2da8a7499b34bbebd843eeb9a41053a0e2f9c4a9688f807c5673904c65c53e7d3a16224adbb5ead039364d060b5e114832d9ff743a87142715" + "8d602ec4a118925c23597faa896bccb675025b95f6827e29d6aa4a109eeea5ff64abdef145caa91bcba5f89d5dc79186620b1ce71db2780417fc1cefe584d7d6" ], "split_commitment": null } ], "split_commitment_root": { - "hash": "5276ca3e8ed5edfe1d663864cc9d4b55d317310ad11b9b4af484762821e5a627", + "hash": "7a1d9a8372ee98c20893e1ab4d8028f1d3661c5fee83dbcfc528bfa738e5b071", "sum": "1200" }, "script_version": 0, - "script_key": "02e96e7a98868e359456d045b486ca3344e9f5ad860e8a402bf34bf73bc77d2a6e", + "script_key": "02efd8980ab3cacc9183c45bbbdded673416dba20a21486343d2dbbc5c37a0659b", "group_key": null } } @@ -827,18 +827,18 @@ ], "split_commitment_root": null, "script_version": 0, - "script_key": "02dd084859b6233728659a35052a1dde96cc2ba92ed813d8d5be0d9e103178ee16", + "script_key": "021cd140129b6140352dbf4469c8f2fbe4b3567479925f0619f59e8dfad0e0ea02", "group_key": null }, "inclusion_proof": { "output_index": 1, - "internal_key": "024bc42417867894cadb917276991607150457fc3481ab4b3fe73e98b7d9c463b7", + "internal_key": "03a5d14787afdd48b27852302d8e6044adc80b2b09a84e405bd15df0a58372cb09", "commitment_proof": { "proof": { "asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", @@ -852,13 +852,13 @@ "exclusion_proofs": [ { "output_index": 0, - "internal_key": "03204c4b922f2b567905131ec0d4116fd4e03ce6c55003e352f525c8842692df5d", + "internal_key": "03a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb", "commitment_proof": { "proof": { "asset_proof": { - "proof": "000163fc2d75ff3a9b49efaa0a407de981fd1997ff736eabe8277cac7ddd261af97f00000000000002bcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "proof": "000113e93b60b459b01018e7d1c419a0c085dc2a8022272f096228640e957005277a0000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", @@ -871,7 +871,7 @@ }, { "output_index": 2, - "internal_key": "02a6f0dc7b8aefc5faaf73888b3323a6ba4a26a779cae4b5f6b78c7d12ec82b123", + "internal_key": "02fe7cd697bcc60a44dfd209ed970e6cd14d6094506a47a2a6a5b0cfa6f63dd0d6", "commitment_proof": null, "tapscript_proof": { "tap_preimage_1": "", @@ -882,13 +882,13 @@ ], "split_root_proof": { "output_index": 0, - "internal_key": "03204c4b922f2b567905131ec0d4116fd4e03ce6c55003e352f525c8842692df5d", + "internal_key": "03a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb", "commitment_proof": { "proof": { "asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "version": 0, - "asset_id": "2fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717" + "asset_id": "0fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96" }, "taproot_asset_proof": { "proof": "0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", @@ -903,7 +903,7 @@ "additional_inputs": null, "challenge_witness": null }, - "expected": "0024ff3f54cc326f20e1c77b646c9f3ae566076a8a9c90a759473ce8a23c868ae4a300000001015000004020ccef4f36280b35bc2969e9c795c93142224c26f9d26580534cd10210b0144a6fd0163b3653e30b279b135fbbeafe21c798724e5cee66ea5a52cb73df63f6d41aa974f064ffff7f200200000002fd018c0200000000010200d54317c4d2f29bc331369eb587f71fe0cc7d7d74883c606a45f0c641792e410000000000ffffffffff3f54cc326f20e1c77b646c9f3ae566076a8a9c90a759473ce8a23c868ae4a301000000000000000003e803000000000000225120cff975615b0a36601e15e74541547f920db0724132db0fe0742b2a866f5f9028e803000000000000225120cd1386d8a2e2f573c90a1a8fb4b40fd570d2d03c651ee6e6f5a295bfa27c23e04aa9f5050000000022512083cb5a723299742bbeac9269a920bd8155e42d13543aa77dc7a872b6db31e57e0247304402203f7fdbb53d5bc5dcd8241505e10dc63ed1099b1379a87a044f190814fc2e962e02202dc271496799e9620d705578fa5c9e41ac08a259d74e6db13ac854902856f726012103549d04fb9cbe86c2411910c7e12e9937f28a1e9628f206adc7ebb3830103c6d70140fac493960b98357f9e1a28e3c2aa9b1220730126e8d0d9a6a46665f08c1b006a4734c8527ff4a569bc2b643c2228c8282060308223a5341b58126756f50285e800000000032201ed4a29f727bd9c9d3c9f190c57dfbe91ef0f6c8f04d63582187c9685eff9daac0004fd02b40001000159005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd01f406fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a0001be64e9b8bf8d9f92192dcde61f2c727fad5740d0dd91e72c47f75c8eeed4a80900000000000002bcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffd01660001000159005b72b765b0256689c4cb60420687bd5c452239d3ccb6b3c38ff735d5c37b4a000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd02bc06ad01ab0065ff3f54cc326f20e1c77b646c9f3ae566076a8a9c90a759473ce8a23c868ae4a3000000012fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702a3eaca18f57451fc2cda92d8637ce950405c339b335d21cbb2ae6fe479449ef301420140731afca17f759d2da8a7499b34bbebd843eeb9a41053a0e2f9c4a9688f807c5673904c65c53e7d3a16224adbb5ead039364d060b5e114832d9ff743a8714271507285276ca3e8ed5edfe1d663864cc9d4b55d317310ad11b9b4af484762821e5a62700000000000004b008020000092102e96e7a98868e359456d045b486ca3344e9f5ad860e8a402bf34bf73bc77d2a6e08020000092102dd084859b6233728659a35052a1dde96cc2ba92ed813d8d5be0d9e103178ee16059f0004000000010121024bc42417867894cadb917276991607150457fc3481ab4b3fe73e98b7d9c463b70274004900010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06f802c7000400000000012103204c4b922f2b567905131ec0d4116fd4e03ce6c55003e352f525c8842692df5d029c007100010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec717024a000163fc2d75ff3a9b49efaa0a407de981fd1997ff736eabe8277cac7ddd261af97f00000000000002bcffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e000400000002012102a6f0dc7b8aefc5faaf73888b3323a6ba4a26a779cae4b5f6b78c7d12ec82b1230303020101079f000400000000012103204c4b922f2b567905131ec0d4116fd4e03ce6c55003e352f525c8842692df5d0274004900010001202fd779d5e4f4ae668d7395b73a2b90e7841af04fe3068c18c6d21aad8a3ec71702220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0b04000001bc", + "expected": "5441505000248f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff190000000101500000402017b41c426f6e0ea2318a0272c0e5166355a97e0b45e014ae265b055cf15e4a09cac22e8351343ddf97acbf38f547709654cc4cdb49bdfb77c3b195e44e1345cd697ef864ffff7f200000000002fd018c02000000000102000b9c5425fd4186521743f78203b73a0cc85fffeeb48026f11bb6eed16a1f290000000000ffffffff8f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff1901000000000000000003e8030000000000002251206be9cc2c4d68ec4e9827bff12067bca0770a92fd10e346c9587eb674e534b2d4e8030000000000002251209556a078749c7a768ccbb97124296639ffa4785b59c82c4c135121e0217a96a44aa9f50500000000225120a152904d7685c3e24c348784140064f68ea252af71560c9c400574e696f375f502473044022069b2a86cf0a1e9f3f23bd38cab06c99a3ed326b4a2bdf932c744e8a662fe9cf302206911494f403f7e0aff12d53a3ec8dff3b8792bbcb6769499ae84e0423e39486c012102e641075343b4dae91de76437617f51a4c251395600c763595a8128f296dcb02901404986e85a6e29e02504b22b313bff0de240164a5b2d1309d2ffe1b841742c72042c40b70609c0206a6660d97dd812911eb054f2548d847989937b7e06459753460000000003220162a6107a3639a2d6d21ea74f905bbdd2cd760247197c19250125cce69ad617150004fd02b400010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806fd022301fd021f0065000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fd01b44a0001cac8adc6fbff43b96418da0830e41cc24e687198fae443bbe64d13df6630dc830000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffd016600010001590476d8a24114bbe8346622da3422784ed07c069deb8f1bc388664b31156379bc000000000f66697273742d697465737462757878dedfcaf730cec72f6dbea97c64d4a4f3489edc3c2ff8413ad169e9717a3b058d00000000000201000303fd025806ad01ab00658f6f371662879ba4db9cce742e4e79703f772a51dfbc65a00bf5dd6964e3ff19000000010fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b960232cad83de89c46e89e5522cf298fa8082ff0724bc4b9d9f8f577984e21ebb2bb014201408d602ec4a118925c23597faa896bccb675025b95f6827e29d6aa4a109eeea5ff64abdef145caa91bcba5f89d5dc79186620b1ce71db2780417fc1cefe584d7d607287a1d9a8372ee98c20893e1ab4d8028f1d3661c5fee83dbcfc528bfa738e5b07100000000000004b008020000092102efd8980ab3cacc9183c45bbbdded673416dba20a21486343d2dbbc5c37a0659b080200000921021cd140129b6140352dbf4469c8f2fbe4b3567479925f0619f59e8dfad0e0ea02059f000400000001012103a5d14787afdd48b27852302d8e6044adc80b2b09a84e405bd15df0a58372cb090274004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff06f802c7000400000000012103a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb029c007100010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b96024a000113e93b60b459b01018e7d1c419a0c085dc2a8022272f096228640e957005277a0000000000000258ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2e000400000002012102fe7cd697bcc60a44dfd209ed970e6cd14d6094506a47a2a6a5b0cfa6f63dd0d60303020101079f000400000000012103a2989befc0beca8bd322df75b77adbffcd472231e4f0f6709ba355c2590bafdb0274004900010001200fb088e12cab13f6f2f0a9cb1a48132477f9bf81625c8d513071ce841ef39b9602220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff012700010001220000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0b04000001bc", "comment": "valid regtest proof file index 2" } ], From a626ae25f777c7754fa596e2e86fd0906d80c1a7 Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Wed, 6 Sep 2023 15:48:05 +0200 Subject: [PATCH 2/4] rpcserver: allow decoding single proof or file --- rpcserver.go | 135 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 84 insertions(+), 51 deletions(-) diff --git a/rpcserver.go b/rpcserver.go index 7741ae9e6..26499074b 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -1136,8 +1136,9 @@ func (r *rpcServer) DecodeAddr(_ context.Context, func (r *rpcServer) VerifyProof(ctx context.Context, req *taprpc.ProofFile) (*taprpc.VerifyProofResponse, error) { - if len(req.RawProof) == 0 { - return nil, fmt.Errorf("proof file must be specified") + if !proof.IsProofFile(req.RawProof) { + return nil, fmt.Errorf("invalid raw proof, expect single " + + "encoded mint or transition proof") } var proofFile proof.File @@ -1156,11 +1157,18 @@ func (r *rpcServer) VerifyProof(ctx context.Context, } valid := err == nil - decodedProof, err := r.marshalProofFile(ctx, proofFile, 0, false, false) + p, err := proofFile.LastProof() + if err != nil { + return nil, err + } + decodedProof, err := r.marshalProof(ctx, p, false, false) if err != nil { return nil, fmt.Errorf("unable to marshal proof: %w", err) } + decodedProof.ProofAtDepth = 0 + decodedProof.NumberOfProofs = uint32(proofFile.NumProofs()) + return &taprpc.VerifyProofResponse{ Valid: valid, DecodedProof: decodedProof, @@ -1172,58 +1180,85 @@ func (r *rpcServer) VerifyProof(ctx context.Context, func (r *rpcServer) DecodeProof(ctx context.Context, req *taprpc.DecodeProofRequest) (*taprpc.DecodeProofResponse, error) { - if len(req.RawProof) == 0 { - return nil, fmt.Errorf("proof file must be specified") - } + var ( + proofReader = bytes.NewReader(req.RawProof) + rpcProof *taprpc.DecodedProof + ) + switch { + case proof.IsSingleProof(req.RawProof): + var p proof.Proof + err := p.Decode(proofReader) + if err != nil { + return nil, fmt.Errorf("unable to decode proof: %w", + err) + } - var proofFile proof.File - if err := proofFile.Decode(bytes.NewReader(req.RawProof)); err != nil { - return nil, fmt.Errorf("unable to decode proof file: %w", err) - } + rpcProof, err = r.marshalProof( + ctx, &p, req.WithPrevWitnesses, req.WithMetaReveal, + ) + if err != nil { + return nil, fmt.Errorf("unable to marshal proof: %w", + err) + } - latestProofIndex := uint32(proofFile.NumProofs() - 1) + rpcProof.NumberOfProofs = 1 - if req.ProofAtDepth > latestProofIndex { - return nil, fmt.Errorf("invalid depth %d is greater than "+ - "latest proof index of %d", req.ProofAtDepth, - latestProofIndex) - } + case proof.IsProofFile(req.RawProof): + var proofFile proof.File + if err := proofFile.Decode(proofReader); err != nil { + return nil, fmt.Errorf("unable to decode proof file: "+ + "%w", err) + } - // Default to latest proof. - depth := latestProofIndex - req.ProofAtDepth + latestProofIndex := uint32(proofFile.NumProofs() - 1) + if req.ProofAtDepth > latestProofIndex { + return nil, fmt.Errorf("invalid depth %d is greater "+ + "than latest proof index of %d", + req.ProofAtDepth, latestProofIndex) + } - decodedProof, err := r.marshalProofFile( - ctx, proofFile, depth, req.WithPrevWitnesses, - req.WithMetaReveal, - ) - if err != nil { - return nil, fmt.Errorf("unable to marshal proof: %w", err) + // Default to latest proof. + index := latestProofIndex - req.ProofAtDepth + p, err := proofFile.ProofAt(index) + if err != nil { + return nil, err + } + + rpcProof, err = r.marshalProof( + ctx, p, req.WithPrevWitnesses, + req.WithMetaReveal, + ) + if err != nil { + return nil, fmt.Errorf("unable to marshal proof: %w", + err) + } + + rpcProof.ProofAtDepth = req.ProofAtDepth + rpcProof.NumberOfProofs = uint32(proofFile.NumProofs()) + + default: + return nil, fmt.Errorf("invalid raw proof, could not " + + "identify decoding format") } return &taprpc.DecodeProofResponse{ - DecodedProof: decodedProof, + DecodedProof: rpcProof, }, nil } -// marshalProofFile turns a proof file into an RPC DecodedProof. -func (r *rpcServer) marshalProofFile(ctx context.Context, proofFile proof.File, - depth uint32, withPrevWitnesses, - withMetaReveal bool) (*taprpc.DecodedProof, error) { - - decodedProof, err := proofFile.ProofAt(depth) - if err != nil { - return nil, err - } +// marshalProof turns a transition proof into an RPC DecodedProof. +func (r *rpcServer) marshalProof(ctx context.Context, p *proof.Proof, + withPrevWitnesses, withMetaReveal bool) (*taprpc.DecodedProof, error) { var ( rpcMeta *taprpc.AssetMeta anchorOutpoint = wire.OutPoint{ - Hash: decodedProof.AnchorTx.TxHash(), - Index: decodedProof.InclusionProof.OutputIndex, + Hash: p.AnchorTx.TxHash(), + Index: p.InclusionProof.OutputIndex, } - txMerkleProof = decodedProof.TxMerkleProof - inclusionProof = decodedProof.InclusionProof - splitRootProof = decodedProof.SplitRootProof + txMerkleProof = p.TxMerkleProof + inclusionProof = p.InclusionProof + splitRootProof = p.SplitRootProof ) var txMerkleProofBuf bytes.Buffer @@ -1251,7 +1286,7 @@ func (r *rpcServer) marshalProofFile(ctx context.Context, proofFile proof.File, } tapProof, err := inclusionProof.CommitmentProof.DeriveByAssetInclusion( - &decodedProof.Asset, + &p.Asset, ) if err != nil { return nil, fmt.Errorf("error deriving inclusion proof: %w", @@ -1260,7 +1295,7 @@ func (r *rpcServer) marshalProofFile(ctx context.Context, proofFile proof.File, merkleRoot := tapProof.TapscriptRoot(tsHash) var exclusionProofs [][]byte - for _, exclusionProof := range decodedProof.ExclusionProofs { + for _, exclusionProof := range p.ExclusionProofs { var exclusionProofBuf bytes.Buffer err := exclusionProof.Encode(&exclusionProofBuf) if err != nil { @@ -1282,13 +1317,13 @@ func (r *rpcServer) marshalProofFile(ctx context.Context, proofFile proof.File, } rpcAsset, err := r.marshalChainAsset(ctx, &tapdb.ChainAsset{ - Asset: &decodedProof.Asset, - AnchorTx: &decodedProof.AnchorTx, - AnchorTxid: decodedProof.AnchorTx.TxHash(), - AnchorBlockHash: decodedProof.BlockHeader.BlockHash(), - AnchorBlockHeight: decodedProof.BlockHeight, + Asset: &p.Asset, + AnchorTx: &p.AnchorTx, + AnchorTxid: p.AnchorTx.TxHash(), + AnchorBlockHash: p.BlockHeader.BlockHash(), + AnchorBlockHeight: p.BlockHeight, AnchorOutpoint: anchorOutpoint, - AnchorInternalKey: decodedProof.InclusionProof.InternalKey, + AnchorInternalKey: p.InclusionProof.InternalKey, AnchorMerkleRoot: merkleRoot[:], AnchorTapscriptSibling: tsSibling, }, withPrevWitnesses) @@ -1316,16 +1351,14 @@ func (r *rpcServer) marshalProofFile(ctx context.Context, proofFile proof.File, } return &taprpc.DecodedProof{ - ProofAtDepth: depth, - NumberOfProofs: uint32(proofFile.NumProofs()), Asset: rpcAsset, MetaReveal: rpcMeta, TxMerkleProof: txMerkleProofBuf.Bytes(), InclusionProof: inclusionProofBuf.Bytes(), ExclusionProofs: exclusionProofs, SplitRootProof: splitRootProofBuf.Bytes(), - NumAdditionalInputs: uint32(len(decodedProof.AdditionalInputs)), - ChallengeWitness: decodedProof.ChallengeWitness, + NumAdditionalInputs: uint32(len(p.AdditionalInputs)), + ChallengeWitness: p.ChallengeWitness, }, nil } From 2be69177f284229911e5982bd51ac8b076d5cad1 Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Wed, 6 Sep 2023 15:53:30 +0200 Subject: [PATCH 3/4] taprpc: make type of proof explicit in RPC --- .../assetwalletrpc/assetwallet.swagger.json | 3 +- taprpc/taprootassets.pb.go | 34 +++++++++++++------ taprpc/taprootassets.proto | 19 +++++++++-- taprpc/taprootassets.swagger.json | 15 ++++---- taprpc/universerpc/universe.pb.go | 3 +- taprpc/universerpc/universe.proto | 3 +- taprpc/universerpc/universe.swagger.json | 2 +- 7 files changed, 55 insertions(+), 24 deletions(-) diff --git a/taprpc/assetwalletrpc/assetwallet.swagger.json b/taprpc/assetwalletrpc/assetwallet.swagger.json index 53d987169..6ec75be53 100644 --- a/taprpc/assetwalletrpc/assetwallet.swagger.json +++ b/taprpc/assetwalletrpc/assetwallet.swagger.json @@ -668,7 +668,8 @@ }, "new_proof_blob": { "type": "string", - "format": "byte" + "format": "byte", + "description": "The new individual transition proof (not a full proof file) that proves\nthe inclusion of the new asset within the new AnchorTx." }, "split_commit_root_hash": { "type": "string", diff --git a/taprpc/taprootassets.pb.go b/taprpc/taprootassets.pb.go index 85e194642..c1787f6cc 100644 --- a/taprpc/taprootassets.pb.go +++ b/taprpc/taprootassets.pb.go @@ -2042,13 +2042,15 @@ type TransferOutput struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Anchor *TransferOutputAnchor `protobuf:"bytes,1,opt,name=anchor,proto3" json:"anchor,omitempty"` - ScriptKey []byte `protobuf:"bytes,2,opt,name=script_key,json=scriptKey,proto3" json:"script_key,omitempty"` - ScriptKeyIsLocal bool `protobuf:"varint,3,opt,name=script_key_is_local,json=scriptKeyIsLocal,proto3" json:"script_key_is_local,omitempty"` - Amount uint64 `protobuf:"varint,4,opt,name=amount,proto3" json:"amount,omitempty"` - NewProofBlob []byte `protobuf:"bytes,5,opt,name=new_proof_blob,json=newProofBlob,proto3" json:"new_proof_blob,omitempty"` - SplitCommitRootHash []byte `protobuf:"bytes,6,opt,name=split_commit_root_hash,json=splitCommitRootHash,proto3" json:"split_commit_root_hash,omitempty"` - OutputType OutputType `protobuf:"varint,7,opt,name=output_type,json=outputType,proto3,enum=taprpc.OutputType" json:"output_type,omitempty"` + Anchor *TransferOutputAnchor `protobuf:"bytes,1,opt,name=anchor,proto3" json:"anchor,omitempty"` + ScriptKey []byte `protobuf:"bytes,2,opt,name=script_key,json=scriptKey,proto3" json:"script_key,omitempty"` + ScriptKeyIsLocal bool `protobuf:"varint,3,opt,name=script_key_is_local,json=scriptKeyIsLocal,proto3" json:"script_key_is_local,omitempty"` + Amount uint64 `protobuf:"varint,4,opt,name=amount,proto3" json:"amount,omitempty"` + // The new individual transition proof (not a full proof file) that proves + // the inclusion of the new asset within the new AnchorTx. + NewProofBlob []byte `protobuf:"bytes,5,opt,name=new_proof_blob,json=newProofBlob,proto3" json:"new_proof_blob,omitempty"` + SplitCommitRootHash []byte `protobuf:"bytes,6,opt,name=split_commit_root_hash,json=splitCommitRootHash,proto3" json:"split_commit_root_hash,omitempty"` + OutputType OutputType `protobuf:"varint,7,opt,name=output_type,json=outputType,proto3,enum=taprpc.OutputType" json:"output_type,omitempty"` } func (x *TransferOutput) Reset() { @@ -2910,6 +2912,8 @@ type ProofFile struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // The raw proof file encoded as bytes. Must be a file and not just an + // individual mint/transfer proof. RawProof []byte `protobuf:"bytes,1,opt,name=raw_proof,json=rawProof,proto3" json:"raw_proof,omitempty"` GenesisPoint string `protobuf:"bytes,2,opt,name=genesis_point,json=genesisPoint,proto3" json:"genesis_point,omitempty"` } @@ -2967,7 +2971,9 @@ type DecodedProof struct { // The index depth of the decoded proof, with 0 being the latest proof. ProofAtDepth uint32 `protobuf:"varint,1,opt,name=proof_at_depth,json=proofAtDepth,proto3" json:"proof_at_depth,omitempty"` - // The total number of proofs contained in the raw proof. + // The total number of proofs contained in the decoded proof file (this will + // always be 1 if a single mint/transition proof was given as the raw_proof + // instead of a file). NumberOfProofs uint32 `protobuf:"varint,2,opt,name=number_of_proofs,json=numberOfProofs,proto3" json:"number_of_proofs,omitempty"` // The asset referenced in the proof. Asset *Asset `protobuf:"bytes,3,opt,name=asset,proto3" json:"asset,omitempty"` @@ -3105,7 +3111,8 @@ type VerifyProofResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"` + Valid bool `protobuf:"varint,1,opt,name=valid,proto3" json:"valid,omitempty"` + // The decoded last proof in the file if the proof file was valid. DecodedProof *DecodedProof `protobuf:"bytes,2,opt,name=decoded_proof,json=decodedProof,proto3" json:"decoded_proof,omitempty"` } @@ -3160,9 +3167,14 @@ type DecodeProofRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The raw proof in bytes to decode, which may contain multiple proofs. + // The raw proof bytes to decode. This can be a full proof file or a single + // mint/transition proof. If it is a full proof file, the proof_at_depth + // field will be used to determine which individual proof within the file to + // decode. RawProof []byte `protobuf:"bytes,1,opt,name=raw_proof,json=rawProof,proto3" json:"raw_proof,omitempty"` - // The index depth of the decoded proof, with 0 being the latest proof. + // The index depth of the decoded proof, with 0 being the latest proof. This + // is ignored if the raw_proof is a single mint/transition proof and not a + // proof file. ProofAtDepth uint32 `protobuf:"varint,2,opt,name=proof_at_depth,json=proofAtDepth,proto3" json:"proof_at_depth,omitempty"` // An option to include previous witnesses in decoding. WithPrevWitnesses bool `protobuf:"varint,3,opt,name=with_prev_witnesses,json=withPrevWitnesses,proto3" json:"with_prev_witnesses,omitempty"` diff --git a/taprpc/taprootassets.proto b/taprpc/taprootassets.proto index 4549d7488..e754f2a91 100644 --- a/taprpc/taprootassets.proto +++ b/taprpc/taprootassets.proto @@ -504,6 +504,8 @@ message TransferOutput { uint64 amount = 4; + // The new individual transition proof (not a full proof file) that proves + // the inclusion of the new asset within the new AnchorTx. bytes new_proof_blob = 5; bytes split_commit_root_hash = 6; @@ -684,6 +686,8 @@ message DecodeAddrRequest { } message ProofFile { + // The raw proof file encoded as bytes. Must be a file and not just an + // individual mint/transfer proof. bytes raw_proof = 1; string genesis_point = 2; @@ -693,7 +697,9 @@ message DecodedProof { // The index depth of the decoded proof, with 0 being the latest proof. uint32 proof_at_depth = 1; - // The total number of proofs contained in the raw proof. + // The total number of proofs contained in the decoded proof file (this will + // always be 1 if a single mint/transition proof was given as the raw_proof + // instead of a file). uint32 number_of_proofs = 2; // The asset referenced in the proof. @@ -734,14 +740,21 @@ message DecodedProof { message VerifyProofResponse { bool valid = 1; + + // The decoded last proof in the file if the proof file was valid. DecodedProof decoded_proof = 2; } message DecodeProofRequest { - // The raw proof in bytes to decode, which may contain multiple proofs. + // The raw proof bytes to decode. This can be a full proof file or a single + // mint/transition proof. If it is a full proof file, the proof_at_depth + // field will be used to determine which individual proof within the file to + // decode. bytes raw_proof = 1; - // The index depth of the decoded proof, with 0 being the latest proof. + // The index depth of the decoded proof, with 0 being the latest proof. This + // is ignored if the raw_proof is a single mint/transition proof and not a + // proof file. uint32 proof_at_depth = 2; // An option to include previous witnesses in decoding. diff --git a/taprpc/taprootassets.swagger.json b/taprpc/taprootassets.swagger.json index aab3c7807..0abed04b1 100644 --- a/taprpc/taprootassets.swagger.json +++ b/taprpc/taprootassets.swagger.json @@ -1203,12 +1203,12 @@ "raw_proof": { "type": "string", "format": "byte", - "description": "The raw proof in bytes to decode, which may contain multiple proofs." + "description": "The raw proof bytes to decode. This can be a full proof file or a single\nmint/transition proof. If it is a full proof file, the proof_at_depth\nfield will be used to determine which individual proof within the file to\ndecode." }, "proof_at_depth": { "type": "integer", "format": "int64", - "description": "The index depth of the decoded proof, with 0 being the latest proof." + "description": "The index depth of the decoded proof, with 0 being the latest proof. This\nis ignored if the raw_proof is a single mint/transition proof and not a\nproof file." }, "with_prev_witnesses": { "type": "boolean", @@ -1239,7 +1239,7 @@ "number_of_proofs": { "type": "integer", "format": "int64", - "description": "The total number of proofs contained in the raw proof." + "description": "The total number of proofs contained in the decoded proof file (this will\nalways be 1 if a single mint/transition proof was given as the raw_proof\ninstead of a file)." }, "asset": { "$ref": "#/definitions/taprpcAsset", @@ -1589,7 +1589,8 @@ "properties": { "raw_proof": { "type": "string", - "format": "byte" + "format": "byte", + "description": "The raw proof file encoded as bytes. Must be a file and not just an\nindividual mint/transfer proof." }, "genesis_point": { "type": "string" @@ -1738,7 +1739,8 @@ }, "new_proof_blob": { "type": "string", - "format": "byte" + "format": "byte", + "description": "The new individual transition proof (not a full proof file) that proves\nthe inclusion of the new asset within the new AnchorTx." }, "split_commit_root_hash": { "type": "string", @@ -1789,7 +1791,8 @@ "type": "boolean" }, "decoded_proof": { - "$ref": "#/definitions/taprpcDecodedProof" + "$ref": "#/definitions/taprpcDecodedProof", + "description": "The decoded last proof in the file if the proof file was valid." } } } diff --git a/taprpc/universerpc/universe.pb.go b/taprpc/universerpc/universe.pb.go index 53f47147c..e8842f861 100644 --- a/taprpc/universerpc/universe.pb.go +++ b/taprpc/universerpc/universe.pb.go @@ -930,7 +930,8 @@ type AssetLeaf struct { // The asset included in the leaf. Asset *taprpc.Asset `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"` // The asset issuance proof, which proves that the asset specified above - // was issued properly. + // was issued properly. This is always just an individual mint/transfer + // proof and never a proof file. IssuanceProof []byte `protobuf:"bytes,2,opt,name=issuance_proof,json=issuanceProof,proto3" json:"issuance_proof,omitempty"` } diff --git a/taprpc/universerpc/universe.proto b/taprpc/universerpc/universe.proto index a51f91175..4564c02db 100644 --- a/taprpc/universerpc/universe.proto +++ b/taprpc/universerpc/universe.proto @@ -234,7 +234,8 @@ message AssetLeaf { // TODO(roasbeef): only needed for display? can get from proof below ^ // The asset issuance proof, which proves that the asset specified above - // was issued properly. + // was issued properly. This is always just an individual mint/transfer + // proof and never a proof file. bytes issuance_proof = 2; } diff --git a/taprpc/universerpc/universe.swagger.json b/taprpc/universerpc/universe.swagger.json index 990ae88df..fa175237f 100644 --- a/taprpc/universerpc/universe.swagger.json +++ b/taprpc/universerpc/universe.swagger.json @@ -1296,7 +1296,7 @@ "issuance_proof": { "type": "string", "format": "byte", - "description": "The asset issuance proof, which proves that the asset specified above\nwas issued properly." + "description": "The asset issuance proof, which proves that the asset specified above\nwas issued properly. This is always just an individual mint/transfer\nproof and never a proof file." } } }, From d89392dee4edddd4204d0345b8259e128a525918 Mon Sep 17 00:00:00 2001 From: Oliver Gugger Date: Thu, 7 Sep 2023 09:36:44 +0200 Subject: [PATCH 4/4] multi: rename raw_proof to raw_proof_file --- cmd/tapcli/proofs.go | 4 +- itest/addrs_test.go | 4 +- itest/assertions.go | 12 +- itest/send_test.go | 4 +- rpcserver.go | 6 +- taprpc/taprootassets.pb.go | 536 +++++++++++++++--------------- taprpc/taprootassets.proto | 2 +- taprpc/taprootassets.swagger.json | 2 +- 8 files changed, 285 insertions(+), 285 deletions(-) diff --git a/cmd/tapcli/proofs.go b/cmd/tapcli/proofs.go index 2bfe83a8b..f9c795c17 100644 --- a/cmd/tapcli/proofs.go +++ b/cmd/tapcli/proofs.go @@ -75,7 +75,7 @@ func verifyProof(ctx *cli.Context) error { defer cleanUp() resp, err := client.VerifyProof(ctxc, &taprpc.ProofFile{ - RawProof: rawFile, + RawProofFile: rawFile, }) if err != nil { return fmt.Errorf("unable to verify proof file: %w", err) @@ -273,7 +273,7 @@ func exportProof(ctx *cli.Context) error { // JSON format. if ctx.String(proofPathName) != "" { filePath := lncfg.CleanAndExpandPath(ctx.String(proofPathName)) - return writeToFile(filePath, resp.RawProof) + return writeToFile(filePath, resp.RawProofFile) } printRespJSON(resp) diff --git a/itest/addrs_test.go b/itest/addrs_test.go index 4db11e61f..c10f3b655 100644 --- a/itest/addrs_test.go +++ b/itest/addrs_test.go @@ -296,10 +296,10 @@ func sendProof(t *harnessTest, src, dst *tapdHarness, scriptKey []byte, }, defaultWaitTimeout) require.NoError(t.t, waitErr) - t.Logf("Importing proof %x", proofResp.RawProof) + t.Logf("Importing proof %x", proofResp.RawProofFile) importResp, err := dst.ImportProof(ctxb, &tapdevrpc.ImportProofRequest{ - ProofFile: proofResp.RawProof, + ProofFile: proofResp.RawProofFile, GenesisPoint: genInfo.GenesisPoint, }) require.NoError(t.t, err) diff --git a/itest/assertions.go b/itest/assertions.go index 4f24c815a..6105f597c 100644 --- a/itest/assertions.go +++ b/itest/assertions.go @@ -225,7 +225,7 @@ func WaitForProofUpdate(t *testing.T, client taprpc.TaprootAssetsClient, f := &proof.File{} require.NoError( - t, f.Decode(bytes.NewReader(exportResp.RawProof)), + t, f.Decode(bytes.NewReader(exportResp.RawProofFile)), ) lastProof, err := f.LastProof() require.NoError(t, err) @@ -255,7 +255,7 @@ func AssertAssetProofs(t *testing.T, tapClient taprpc.TaprootAssetsClient, require.NoError(t, err) file, snapshot := verifyProofBlob( - t, tapClient, chainClient, a, exportResp.RawProof, + t, tapClient, chainClient, a, exportResp.RawProofFile, ) assetJSON, err := formatProtoJSON(a) @@ -268,7 +268,7 @@ func AssertAssetProofs(t *testing.T, tapClient taprpc.TaprootAssetsClient, t, CommitmentKey(t, a), snapshot.Asset.AssetCommitmentKey(), ) - return exportResp.RawProof + return exportResp.RawProofFile } // assertAssetProofsInvalid makes sure the proofs for the given asset can be @@ -289,11 +289,11 @@ func assertAssetProofsInvalid(t *testing.T, tapd *tapdHarness, require.NoError(t, err) f := &proof.File{} - require.NoError(t, f.Decode(bytes.NewReader(exportResp.RawProof))) + require.NoError(t, f.Decode(bytes.NewReader(exportResp.RawProofFile))) // Also make sure that the RPC can verify the proof as well. verifyResp, err := tapd.VerifyProof(ctxt, &taprpc.ProofFile{ - RawProof: exportResp.RawProof, + RawProofFile: exportResp.RawProofFile, }) require.NoError(t, err) require.False(t, verifyResp.Valid) @@ -314,7 +314,7 @@ func verifyProofBlob(t *testing.T, tapClient taprpc.TaprootAssetsClient, // Also make sure that the RPC can verify the proof as well. verifyResp, err := tapClient.VerifyProof(ctxt, &taprpc.ProofFile{ - RawProof: blob, + RawProofFile: blob, }) require.NoError(t, err) require.True(t, verifyResp.Valid) diff --git a/itest/send_test.go b/itest/send_test.go index f2a2ec299..42d0a0e8f 100644 --- a/itest/send_test.go +++ b/itest/send_test.go @@ -861,11 +861,11 @@ func addProofTestVectorFromFile(t *testing.T, testName string, require.NoError(t, waitErr) if binaryFileName != "" { - test.WriteTestFileHex(t, binaryFileName, proofResp.RawProof) + test.WriteTestFileHex(t, binaryFileName, proofResp.RawProofFile) } var f proof.File - err := f.Decode(bytes.NewReader(proofResp.RawProof)) + err := f.Decode(bytes.NewReader(proofResp.RawProofFile)) require.NoError(t, err) if f.NumProofs() <= fileIndex { diff --git a/rpcserver.go b/rpcserver.go index 26499074b..cc0709b91 100644 --- a/rpcserver.go +++ b/rpcserver.go @@ -1136,13 +1136,13 @@ func (r *rpcServer) DecodeAddr(_ context.Context, func (r *rpcServer) VerifyProof(ctx context.Context, req *taprpc.ProofFile) (*taprpc.VerifyProofResponse, error) { - if !proof.IsProofFile(req.RawProof) { + if !proof.IsProofFile(req.RawProofFile) { return nil, fmt.Errorf("invalid raw proof, expect single " + "encoded mint or transition proof") } var proofFile proof.File - err := proofFile.Decode(bytes.NewReader(req.RawProof)) + err := proofFile.Decode(bytes.NewReader(req.RawProofFile)) if err != nil { return nil, fmt.Errorf("unable to decode proof file: %w", err) } @@ -1392,7 +1392,7 @@ func (r *rpcServer) ExportProof(ctx context.Context, } return &taprpc.ProofFile{ - RawProof: proofBlob, + RawProofFile: proofBlob, }, nil } diff --git a/taprpc/taprootassets.pb.go b/taprpc/taprootassets.pb.go index c1787f6cc..5156244b4 100644 --- a/taprpc/taprootassets.pb.go +++ b/taprpc/taprootassets.pb.go @@ -2914,7 +2914,7 @@ type ProofFile struct { // The raw proof file encoded as bytes. Must be a file and not just an // individual mint/transfer proof. - RawProof []byte `protobuf:"bytes,1,opt,name=raw_proof,json=rawProof,proto3" json:"raw_proof,omitempty"` + RawProofFile []byte `protobuf:"bytes,1,opt,name=raw_proof_file,json=rawProofFile,proto3" json:"raw_proof_file,omitempty"` GenesisPoint string `protobuf:"bytes,2,opt,name=genesis_point,json=genesisPoint,proto3" json:"genesis_point,omitempty"` } @@ -2950,9 +2950,9 @@ func (*ProofFile) Descriptor() ([]byte, []int) { return file_taprootassets_proto_rawDescGZIP(), []int{38} } -func (x *ProofFile) GetRawProof() []byte { +func (x *ProofFile) GetRawProofFile() []byte { if x != nil { - return x.RawProof + return x.RawProofFile } return nil } @@ -4569,273 +4569,273 @@ var file_taprootassets_proto_rawDesc = []byte{ 0x6f, 0x72, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x4c, 0x6f, 0x63, 0x22, 0x27, 0x0a, 0x11, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x61, - 0x64, 0x64, 0x72, 0x22, 0x4d, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x46, 0x69, 0x6c, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x23, 0x0a, - 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x22, 0xbe, 0x03, 0x0a, 0x0c, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x50, 0x72, - 0x6f, 0x6f, 0x66, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x74, 0x5f, - 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x6f, - 0x6f, 0x66, 0x41, 0x74, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x73, 0x12, 0x23, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, - 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0f, - 0x74, 0x78, 0x5f, 0x6d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x74, 0x78, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, - 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x29, 0x0a, - 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, - 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x70, 0x6c, 0x69, - 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0e, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x12, 0x32, 0x0a, 0x15, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, - 0x6e, 0x67, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, - 0x0c, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x57, 0x69, 0x74, 0x6e, - 0x65, 0x73, 0x73, 0x22, 0x66, 0x0a, 0x13, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, - 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x12, 0x39, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, - 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, - 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x0c, 0x64, - 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xb1, 0x01, 0x0a, 0x12, - 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, - 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x74, 0x5f, 0x64, 0x65, 0x70, 0x74, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x74, - 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x13, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x72, - 0x65, 0x76, 0x5f, 0x77, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x11, 0x77, 0x69, 0x74, 0x68, 0x50, 0x72, 0x65, 0x76, 0x57, 0x69, 0x74, 0x6e, - 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6d, 0x65, - 0x74, 0x61, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0e, 0x77, 0x69, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x22, - 0x50, 0x0a, 0x13, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, - 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x50, 0x72, - 0x6f, 0x6f, 0x66, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x22, 0x4e, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, - 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4b, 0x65, - 0x79, 0x22, 0xd0, 0x02, 0x0a, 0x09, 0x41, 0x64, 0x64, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x3b, 0x0a, 0x1a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x17, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x55, 0x6e, 0x69, 0x78, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x04, - 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x61, 0x70, - 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x2f, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, - 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x75, - 0x74, 0x78, 0x6f, 0x5f, 0x61, 0x6d, 0x74, 0x5f, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x75, 0x74, 0x78, 0x6f, 0x41, 0x6d, 0x74, 0x53, 0x61, 0x74, 0x12, 0x27, 0x0a, - 0x0f, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x6f, 0x74, 0x53, - 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, - 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x74, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x3c, 0x0a, 0x0d, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x14, 0x41, 0x64, - 0x64, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x2f, 0x0a, - 0x10, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, 0x61, 0x70, 0x41, 0x64, 0x64, 0x72, 0x73, 0x22, 0x85, - 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x76, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x50, - 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x46, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x22, 0x10, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x66, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, - 0x0b, 0x6c, 0x6e, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4e, 0x74, 0x66, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0xe6, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x18, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x65, - 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, - 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x15, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x65, - 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x71, 0x0a, 0x21, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, - 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, - 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x61, - 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x57, 0x61, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, - 0x52, 0x1d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, - 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x57, 0x61, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x54, 0x0a, 0x15, 0x45, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x7c, - 0x0a, 0x1d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, - 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x57, 0x61, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, - 0x07, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, - 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x22, 0xa6, 0x01, 0x0a, - 0x15, 0x46, 0x65, 0x74, 0x63, 0x68, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x61, 0x73, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, - 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, - 0x74, 0x49, 0x64, 0x53, 0x74, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, - 0x61, 0x73, 0x68, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x53, 0x74, 0x72, 0x42, 0x07, 0x0a, 0x05, - 0x61, 0x73, 0x73, 0x65, 0x74, 0x2a, 0x28, 0x0a, 0x09, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0f, - 0x0a, 0x0b, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x2a, - 0x25, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x45, 0x54, 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x50, - 0x41, 0x51, 0x55, 0x45, 0x10, 0x00, 0x2a, 0x89, 0x01, 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x1a, 0x0a, - 0x16, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x50, 0x4c, - 0x49, 0x54, 0x5f, 0x52, 0x4f, 0x4f, 0x54, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x4f, 0x55, 0x54, - 0x50, 0x55, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x49, 0x56, 0x45, - 0x5f, 0x41, 0x53, 0x53, 0x45, 0x54, 0x53, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x22, - 0x0a, 0x1e, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, - 0x53, 0x53, 0x49, 0x56, 0x45, 0x5f, 0x53, 0x50, 0x4c, 0x49, 0x54, 0x5f, 0x52, 0x4f, 0x4f, 0x54, - 0x10, 0x03, 0x2a, 0xd0, 0x01, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x45, - 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, - 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x45, 0x56, - 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, - 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x02, 0x12, 0x24, - 0x0a, 0x20, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, - 0x45, 0x44, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x45, 0x56, 0x45, - 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, - 0x54, 0x45, 0x44, 0x10, 0x04, 0x32, 0xd4, 0x09, 0x0a, 0x0d, 0x54, 0x61, 0x70, 0x72, 0x6f, 0x6f, - 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x18, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x19, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x4c, 0x69, - 0x73, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x12, 0x18, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x19, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, - 0x74, 0x78, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0a, - 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x19, 0x2e, 0x74, 0x61, 0x70, - 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x12, 0x1b, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, - 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, - 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x61, - 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x53, 0x74, - 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, 0x6e, 0x12, 0x13, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, - 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, - 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x12, 0x19, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x74, - 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x18, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x19, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, - 0x64, 0x64, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x4e, - 0x65, 0x77, 0x41, 0x64, 0x64, 0x72, 0x12, 0x16, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, - 0x4e, 0x65, 0x77, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, - 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x35, 0x0a, 0x0a, - 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x19, 0x2e, 0x74, 0x61, 0x70, - 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, - 0x64, 0x64, 0x72, 0x12, 0x49, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, - 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x11, 0x2e, - 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x46, 0x69, 0x6c, 0x65, - 0x1a, 0x1b, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, - 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x1a, 0x2e, 0x74, - 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x6f, - 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, - 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, - 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x1a, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, + 0x64, 0x64, 0x72, 0x22, 0x56, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x46, 0x69, 0x6c, 0x65, + 0x12, 0x24, 0x0a, 0x0e, 0x72, 0x61, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x66, 0x69, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x72, 0x61, 0x77, 0x50, 0x72, 0x6f, + 0x6f, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x73, 0x69, + 0x73, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x67, + 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0xbe, 0x03, 0x0a, 0x0c, + 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x24, 0x0a, 0x0e, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x74, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x74, 0x44, 0x65, 0x70, + 0x74, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6f, 0x66, 0x5f, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x4f, 0x66, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x12, 0x23, 0x0a, 0x05, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x74, 0x61, + 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x76, 0x65, 0x61, 0x6c, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x61, 0x52, + 0x65, 0x76, 0x65, 0x61, 0x6c, 0x12, 0x26, 0x0a, 0x0f, 0x74, 0x78, 0x5f, 0x6d, 0x65, 0x72, 0x6b, + 0x6c, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x74, 0x78, 0x4d, 0x65, 0x72, 0x6b, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x27, 0x0a, + 0x0f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x6f, 0x66, + 0x73, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x73, 0x70, 0x6c, + 0x69, 0x74, 0x52, 0x6f, 0x6f, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x32, 0x0a, 0x15, 0x6e, + 0x75, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x6e, 0x75, 0x6d, 0x41, + 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, + 0x2b, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x5f, 0x77, 0x69, 0x74, + 0x6e, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x63, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x22, 0x66, 0x0a, 0x13, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x39, 0x0a, 0x0d, 0x64, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x0c, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x22, 0xb1, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, + 0x61, 0x77, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, + 0x72, 0x61, 0x77, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x24, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x5f, 0x61, 0x74, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x74, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x2e, + 0x0a, 0x13, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x5f, 0x77, 0x69, 0x74, 0x6e, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x77, 0x69, 0x74, + 0x68, 0x50, 0x72, 0x65, 0x76, 0x57, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, + 0x0a, 0x10, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x72, 0x65, 0x76, 0x65, + 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x69, 0x74, 0x68, 0x4d, 0x65, + 0x74, 0x61, 0x52, 0x65, 0x76, 0x65, 0x61, 0x6c, 0x22, 0x50, 0x0a, 0x13, 0x44, 0x65, 0x63, 0x6f, + 0x64, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x39, 0x0a, 0x0d, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, + 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x0c, 0x64, 0x65, + 0x63, 0x6f, 0x64, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x4e, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x11, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x46, - 0x69, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, - 0x12, 0x18, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, - 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x74, 0x61, 0x70, - 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x16, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x65, 0x0a, 0x1c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, + 0x12, 0x19, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x09, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x4b, 0x65, 0x79, 0x22, 0xd0, 0x02, 0x0a, 0x09, 0x41, + 0x64, 0x64, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x1a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x04, 0x61, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x52, 0x04, 0x61, 0x64, 0x64, 0x72, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x75, 0x74, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x74, 0x78, 0x6f, 0x5f, 0x61, 0x6d, 0x74, + 0x5f, 0x73, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x75, 0x74, 0x78, 0x6f, + 0x41, 0x6d, 0x74, 0x53, 0x61, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x6f, + 0x74, 0x5f, 0x73, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0e, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x6f, 0x74, 0x53, 0x69, 0x62, 0x6c, 0x69, 0x6e, 0x67, 0x12, + 0x2f, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x74, 0x0a, + 0x13, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x12, 0x3c, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x74, + 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x41, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x74, 0x61, + 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x2f, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x61, + 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x74, + 0x61, 0x70, 0x41, 0x64, 0x64, 0x72, 0x73, 0x22, 0x85, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x76, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x6e, + 0x63, 0x68, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x19, 0x0a, + 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x46, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x52, 0x08, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x22, 0x10, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x66, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6e, 0x64, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6e, 0x64, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x22, 0x25, 0x0a, 0x23, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x74, 0x66, 0x6e, - 0x73, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x76, 0x65, - 0x6e, 0x74, 0x4e, 0x74, 0x66, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x12, 0x42, 0x0a, 0x0e, 0x46, 0x65, 0x74, 0x63, - 0x68, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x1d, 0x2e, 0x74, 0x61, 0x70, - 0x72, 0x70, 0x63, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x74, 0x61, 0x70, 0x72, - 0x70, 0x63, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x30, 0x5a, 0x2e, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x67, 0x68, 0x74, - 0x6e, 0x69, 0x6e, 0x67, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x6f, 0x74, - 0x2d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xe6, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x6e, + 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x58, 0x0a, 0x18, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x65, + 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x15, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x71, 0x0a, 0x21, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x5f, + 0x77, 0x61, 0x69, 0x74, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x57, 0x61, + 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x1d, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x57, + 0x61, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x22, 0x54, 0x0a, 0x15, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6e, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x6e, 0x64, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, + 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x7c, 0x0a, 0x1d, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, 0x57, + 0x61, 0x69, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, + 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x6f, 0x66, 0x66, + 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x65, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x22, 0xa6, 0x01, 0x0a, 0x15, 0x46, 0x65, 0x74, 0x63, 0x68, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1b, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x48, 0x00, 0x52, 0x07, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x09, + 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, + 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x61, 0x73, 0x68, 0x12, 0x22, 0x0a, 0x0c, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x53, 0x74, 0x72, 0x12, + 0x24, 0x0a, 0x0d, 0x6d, 0x65, 0x74, 0x61, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x73, 0x74, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x61, 0x48, 0x61, + 0x73, 0x68, 0x53, 0x74, 0x72, 0x42, 0x07, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2a, 0x28, + 0x0a, 0x09, 0x41, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4e, + 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x4c, 0x4c, 0x45, + 0x43, 0x54, 0x49, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x2a, 0x25, 0x0a, 0x0d, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x45, 0x54, + 0x41, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x50, 0x41, 0x51, 0x55, 0x45, 0x10, 0x00, 0x2a, + 0x89, 0x01, 0x0a, 0x0a, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, + 0x0a, 0x12, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, + 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x50, 0x4c, 0x49, 0x54, 0x5f, 0x52, 0x4f, 0x4f, 0x54, + 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x49, 0x56, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x45, 0x54, 0x53, + 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x55, 0x54, 0x50, 0x55, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x49, 0x56, 0x45, 0x5f, 0x53, + 0x50, 0x4c, 0x49, 0x54, 0x5f, 0x52, 0x4f, 0x4f, 0x54, 0x10, 0x03, 0x2a, 0xd0, 0x01, 0x0a, 0x0f, + 0x41, 0x64, 0x64, 0x72, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1d, 0x0a, 0x19, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x2a, + 0x0a, 0x26, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x44, + 0x44, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x46, + 0x49, 0x52, 0x4d, 0x45, 0x44, 0x10, 0x02, 0x12, 0x24, 0x0a, 0x20, 0x41, 0x44, 0x44, 0x52, 0x5f, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x52, 0x4f, + 0x4f, 0x46, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x44, 0x10, 0x03, 0x12, 0x1f, 0x0a, + 0x1b, 0x41, 0x44, 0x44, 0x52, 0x5f, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x04, 0x32, 0xd4, + 0x09, 0x0a, 0x0d, 0x54, 0x61, 0x70, 0x72, 0x6f, 0x6f, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x12, 0x41, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x18, + 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, + 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, + 0x12, 0x18, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x74, + 0x78, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x74, 0x61, 0x70, + 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x74, 0x78, 0x6f, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x12, 0x19, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, + 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x4c, 0x69, + 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x74, 0x61, 0x70, + 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x53, 0x74, 0x6f, 0x70, 0x44, 0x61, 0x65, 0x6d, 0x6f, + 0x6e, 0x12, 0x13, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, + 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0a, + 0x44, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x74, 0x61, 0x70, + 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x44, + 0x65, 0x62, 0x75, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, + 0x18, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, + 0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x74, 0x61, 0x70, 0x72, + 0x70, 0x63, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x07, 0x4e, 0x65, 0x77, 0x41, 0x64, 0x64, 0x72, 0x12, + 0x16, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x4e, 0x65, 0x77, 0x41, 0x64, 0x64, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x35, 0x0a, 0x0a, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x19, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, + 0x6f, 0x64, 0x65, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0c, + 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x12, 0x49, 0x0a, 0x0c, + 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x74, + 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x74, 0x61, 0x70, 0x72, + 0x70, 0x63, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x11, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x1a, 0x1b, 0x2e, 0x74, 0x61, 0x70, 0x72, + 0x70, 0x63, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x1a, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x44, + 0x65, 0x63, 0x6f, 0x64, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x6f, 0x64, + 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, + 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x1a, 0x2e, + 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, + 0x6f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x74, 0x61, 0x70, 0x72, + 0x70, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x09, + 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x18, 0x2e, 0x74, 0x61, 0x70, 0x72, + 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x65, 0x6e, + 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, + 0x0a, 0x07, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x74, 0x61, 0x70, 0x72, + 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x17, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x1c, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x74, 0x66, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x74, 0x61, 0x70, + 0x72, 0x70, 0x63, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x53, 0x65, 0x6e, + 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4e, 0x74, 0x66, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, + 0x01, 0x12, 0x42, 0x0a, 0x0e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x12, 0x1d, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x46, 0x65, 0x74, + 0x63, 0x68, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x2e, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x4d, 0x65, 0x74, 0x61, 0x42, 0x30, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x6c, 0x61, 0x62, + 0x73, 0x2f, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x6f, 0x74, 0x2d, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x2f, 0x74, 0x61, 0x70, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/taprpc/taprootassets.proto b/taprpc/taprootassets.proto index e754f2a91..b8728308b 100644 --- a/taprpc/taprootassets.proto +++ b/taprpc/taprootassets.proto @@ -688,7 +688,7 @@ message DecodeAddrRequest { message ProofFile { // The raw proof file encoded as bytes. Must be a file and not just an // individual mint/transfer proof. - bytes raw_proof = 1; + bytes raw_proof_file = 1; string genesis_point = 2; } diff --git a/taprpc/taprootassets.swagger.json b/taprpc/taprootassets.swagger.json index 0abed04b1..856ccc49e 100644 --- a/taprpc/taprootassets.swagger.json +++ b/taprpc/taprootassets.swagger.json @@ -1587,7 +1587,7 @@ "taprpcProofFile": { "type": "object", "properties": { - "raw_proof": { + "raw_proof_file": { "type": "string", "format": "byte", "description": "The raw proof file encoded as bytes. Must be a file and not just an\nindividual mint/transfer proof."