Skip to content

Commit

Permalink
Merge pull request #1346 from dusk-network/fix-1285
Browse files Browse the repository at this point in the history
  • Loading branch information
herr-seppia committed Mar 18, 2022
2 parents c75f333 + 9a906a6 commit 7f0e8f7
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions pkg/p2p/wire/message/transactions_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,3 +129,44 @@ func TestCoinbaseTransaction(t *testing.T) {

assert.EqualValues(txHash, hash, "hash mismatch")
}

//nolint
func TestStakeTransaction(t *testing.T) {
assert := assert.New(t)

hexPayload := "0100000000000000cc8f1b3e111f4203cb1f38b7d43b14713e59678264179b7c29797ba12daa35570100000000000000013109e360574645745caa6142abea347b46fb6b8a3cc20b5cf6eab89e5c5a3a23c48dcb7e531ccc3b334ae122d4fd40e242e7d8a85fdb82bd4c9e9621a9a60d04a7360f31dc0426451e57b526451a5c3749c131cd38c80f84b235005cef4d1b02b3badf1200e8f833c22807fb59db2aa2ec69b33477ff68a6c5efbd050da26bd0ffffffffffffffff804addb18b81f357b17072a65d2c17be9f9880324b97101a75c2bfa8b55cb500a74664a6634a404d8fe7c237c0ac343120b7c2a08c07dcb5bfb478b81639c60c5c185f7619b3cca25826cc61b513d036ca43d57839334c1b6a708cc5cdc65357c2d75af6c841dea58bf26450280177ca947ff0841df8d1ff6251b71ac4b15b4500f2052a0100000001000000000000008fcfc11603cb86871527b0ea685928cb15f2328de0a7f078b23ab5da376059060ed3d05d422e85952935b66044045643cc70f423a86064c58e9b6823c902364d80a41af01cb4414876143c29eb4b65b919e6f370bcd879e75e85f99665409dc3fbd08421a4e9eeb8c963999190b3bd5a86e06ea698e6ea301b63126b81101631f59b796e0835c1705590a853df76521f45ab2aac2c1689734a904c78d9d214138315c2a81f23bc1d59070dc6077c2e57b7909b8960292f89002aa038ed02184e8f19ea41f398e08601ddedea1095a66dac0b2068cd51aa71f29bd9704856e4afcc69a0af74624eea8cbad94284ba3d5cf1d8226dcdebe89bb7ef461f6208844e82000f52bdf77333799c9a1e661b9fe920d7fe3fe459127f6a838cf8a4b612350ea8f7b3c537ca2296ac845644d1bdaca0cc559097ac320bc543c5debbee3d897315ee6441659fc98e37164641b49fc3a9e7c57b55659ecdadbb4804013d9b8e855e699f03eac5c265a406bd6115f0e84124406f24289284ff20dec8d2bf8a608075476e6262841fa0b72be2548d7f21b78064700c1af4153a47f2c267a9692ab14135365590a24029ed6c355d2207dc35b4dc66fc7a591489e8e408faa9cd66911409a731bbe59b8a96a7176ef6d8dcd6974c27fdcffd803cde9491edb60d679652a69a9a6f5fcaa5d0def85a7884b3b45590798333f84fddd2c8ed758242dd9813297eb767e3215e6358aa56d7dedc22d7f1b49c29dea13f3b6ca145e3952a97f9477251edf8881f3ae13e3bb563edf72d20eb7580ad1ec6d0e087bf9bd391642f25ff4a4fc57f6318a1c5ccd4545ca9492f1c9e54ee0f3d2e24b65496e58d99d128ff07db87e06ee31154976bbb15d9c1d92430909bcc8b659b946efeefeaabc302d491e6c8fe31192780b9d745619d5c96564f03ae9815ca6ff53d9fa1e1f357190090a00d531d1f53bd2b26d53c9027bae582d4cb7aae3f700e2bc375e0c0265344ee7fec94e294464eefb50750c0ea5572a8cff24d77e733a911a1f8188c4c12ec1d723cf99dad27ef8cce3dda050443c009270a09b410f75828a7807bfe1e773ccfd69390f057c47d9ba01e7409ab20e15394d604fbd78dfe9311b49ddda4f8d972ea7396b798f4e2c8700919e28628a12ca945284327bf5eed1cb541042214469049537b5d1df830a63bf33536d5699855a6d9f3d5d5f77be9db12a6ac58063f99dfcdbbd1efc6d3a3c4ee5b3ff84b8438584e545bda7438e257419cabfd677d41ddbd2e9e572ba8e049c02b0cf4cbeb0e5e2d22b04c242fd1802019770d0e43313ad67f8d313d3a5a53161a758c97345790fe9ee1397001a85de21e8cb1b4ae0daa2a836e510a9e6e39315bc181ef9faee62bffdce571ed9a532335a8ecf2a670c80ce429119860759b630f56befa31a40088cbc6d35919a5a3b5c880d635ea165e4351036d39aa1f1fb617239429541a2a13f3ff0a4fbc15f5e41ead482895c013af8733ba4111b27fba0630b1841894f4e5cb54673aa62e57f04a3f955c54232a4420b643112a9a377b5823dbdce89fc458264db937853d208f3bdc3a6d2bab8eec259d78749e7c22e36b009e010a2312340ef54c6db434a2d43de42f8f77b3514f72298e1386a6a52146cb7acc6bdfa3c6d9746d9373dee3fc7a07e3309b5fb36ee423be760a23dd9c706bf299c0f1a24357a3a40d5d02200f669c92b46f7c5fdafd1f8a773529b18b6fd99802d9986d06c2b28dd5c8d58952581bbad15c29ffa0dadf04e5d965aa6526a304df65ffd75ba713ff15e77562acbd756c971ed9085323da6874d8bd86990ffe5e834a8943d3fadfdfb18adce9ed52beaa4c33dfc5ad22647d4409a3338d213d99497d3c32563f676b93d57701d35f005a6513d3ff2cff8d3258f0a400db58d92424cbbad00a6d4b6f30fb9957668fe573c6be70c6c65bfb813e5a0fa0734162dc99947970867fca0b4180dd71400ab0ff52c20ac9e5648cd3389387968e3a62dc99947970867fca0b4180dd71400ab0ff52c20ac9e5648cd3389387968e3a92e9fe0fdf139b82747c26996d09d86b7b0c235c21e467349f98d32e9c30091a3daf6cdf50fc188643ce57ea7c7ffe14b2d848d38a99028751ec278225c5295c9e0a00e7167772da52f8dbe711f98f3e575f3740da3c5138d7328e69f58c414d0100000000000000f0f78a0f69e99f97e76dbf3f89f46509d2d1958461585f2086d13f327603bec0a88460350fd1f8771a4d491fba5a47d44febe54727ef8474247d2dfff8c3bd2d87d999c587c5015c02a914c71256bb95bebe01f5d3281330dd1dc3e41583c8007b4c4cc3f5e948e7c18c4473f16c1bff076eb456382ccc0a62cdb76f617d6319992584556a1ae9b82f57984168deedf5479b0656c80a1c996087c82195748b490100000000000000020000000000000000000000000000000000000000000000000000000000000000a5e214a9f4b991de3d82c7d54d6cccf4546c4e0ad1deb2c2b46f8153e2847a972a2577cc9c202301ddce341ec762c47717fdf02bb0fa519eb7e62d5f6008e37beb0d00283e785d3d82902655cc77c93c715198add4a6ef98d49ce771867c80a5a855241588d6049eef0b733e13af9413c79245e48485a0fee027c1fbb147991cf7b971774e153965a68a8439904c921280a094a58d1d01d00b9127d5dc7dfb770bcb762e5ea7b3c7e37f01af883932549059ae56e31c25d3d28f1271f8a29f67bf3557dcc08f7f8b62b61ba3af59b9588013a32e991b403e11e614ed8d3d9ec8ead796f9a0f2c13f57b245a0522fc4ed9d0246ff16ffc3fe308cdd4e998c829fc2666134905bbf8dd9bc13b8e52a7a5559e88badc2cfdca2fddf1f69623546568b800488bf637e396ca0fc543113beb7d090b0370ed85996f5ce16d09f4c73442b5c11617ab7b0fd596e8f26a13b99bc66097c2900bd33fbf795a90c84bf587b60e397914f8ad32d16bc73f318b6a8f10a60fcfb7970824c1a65982b5b4e7cecc7bb8011eef70ce70d84518dc8c1b9ec7e94be528b5cc441451578b49c5da9467f8cac2e8b41fb8c1c7c726d45d3de0a3cb5944ebebc552bf197d0935f84ee82b9a992060d354cb61616a8573c96e303ddaf5eb920c6a29946d21433e6533b8f5309c7cf2b4bd27d3eb2b909020c2ce3b95c32cb207ba2e504e63b543736f177cc5ca89a949d8316eb63f486f15abb3df12aa49563d84f9255b12603205e94f17ef582e29ed2f19328a2406a4d5ce0006d701799bfbd7299d29ea099997e87016ce796425b1bd4711b847955584d877b0d93a673dde5a8b0dab9481508fecf2da92c395e7b8d07d12634d5b79e2400d6708799f0a43400d1f297482f28b89891a6f54ac4c6f9d4f823faba42bd0e210fd912f5aad1c8834125811a0a9d761d1493f54a3bb189509b199787034248e9c69b33a6bd2f59c8a18bf0a3513038f239c2c69a79d3f46111dd65e76d6f153acbf1a06242a5667988dc9456af728d19de7e838e299a3f89a125e1e3b25282e555830bccdb1113fb0f0889f0d7a63cdb6989eedc81fba490432d89828334e2f0002ee08fb30e7a8965fcfaff39a5dfc62ad421f90d455eab9ecfa1fdfcf8a692602a993604d4d25e79e98f3afdd32be926613708b4c79445a485b2f1b225a9f5cd5c37d084e94a901e47871814f71e11d0eb93d6bf8b0d74f60f1cee1de37da2945581807125080a8212810d642bca1facad316b3a629175cb21e4f478dc87e5a5813e46417a6143bea4e0720585509e3baf894d1ccadb5d9012ad430940d28c7752a78b5d4175e42205a05db21aa30ef3c16ded249312d66d65ca039223552806326f70c51206258418866ed64830b0718c3b6b0fa35df89716e28efdc99b9af044caaafbbb5b749894621317956b987d32f52975bb962cb47189dc7ff4e02c7c7c517d4ac9130c0a2a1d2cd60364b790254aaf9304eaae4b18c6efda523ac8a51455b396c60bbe789e6fe9a28ec7b774fb767524fc9a129c4c31c6f383636b192919899a28f390ca675b0b75edf8a8e27b015a2697a357a602fb9a3df28ba10c4a1eb7e566c9d00812f2f5a9e835b510ee5bc40b4c49cf2838be1d3b8ca79752ed0c1ff71b4c8e5add1cc02be37e8841410ad6a5d128bacb33f25a6480548dd3e29e269e051fc832784777f01c3681600ffed2e5f58ae7a52dff630f8fd0b8fddb83611603b2026cfcb8a2568cf755e16f6ce64e7223528139f074afa08257e92bffc2590bdc1191aefd00d5a9e969f1aa9a7a0c69cb9dd720627a80820d274ad33af4be069548ec0cb344fac8434a6a8d758393ba9a40661261e926aae2e100762bddbb9da3564a840b7f6abaee5237312aafdf0c424c200cf4f8bb60486a652ab2f8e44cc121986f718c3a90d0df013d78afe65775a3b661f522e8ccdb2b1e97d42cc1e4eb04ffd88fca4636b163a9e18ddc3f44efc2102816f1203009a5622f4e780c369da0248ccaa5a7cdbce4a92f62bf94b146fe1416b8b3eebdddae400a5440cc2f348b809d61609ea6a8f6c99867f55dbdf794dd0bfd26dff9b9aae8b54dd26e82a89f83ae49d08239c53def0e5409ac29da1a3269fd26dff9b9aae8b54dd26e82a89f83ae49d08239c53def0e5409ac29da1a326957cc4216a5309c34a0df1199fa0c12f30bf23f4a03e09f5406fe88464ef0866a88a5d2f89f94ad11381b4d1bb744a5698e3ae15185f8770cc359abd6c220720084c54cc2c1454144bcfb56e48ff1c3df2cf982d7d937b8d05959a3821e3d4e27"
hexTxHash := "f1839fc865532b54c98259f58328c9c672db57a373f59f884e90c66de45b5a0c"

txHash, err := hex.DecodeString(hexTxHash)
if err != nil {
t.Fatalf("Unable to decode hash hex: %v", err)
}

payload, err := hex.DecodeString(hexPayload)
if err != nil {
t.Fatalf("Unable to decode tx hex: %v", err)
}

txdummy := transactions.NewTransaction()
txdummy.TxType = 1
txdummy.Payload.Data = payload

decoded, err := txdummy.Decode()
if err != nil {
t.Fatalf("Unable to decode staking: %v", err)
}

assert.NotEqualValues(decoded.Anchor, make([]byte, 32), "Anchor should not be empty")
assert.NotNil(decoded.Call, "Call should be present")
assert.NotNil(decoded.Crossover, "Crossover should be present")
assert.NotZero(decoded.Fee.GasLimit, "GasLimit should not be 0")
assert.NotZero(decoded.Fee.GasPrice, "GasPrice should not be 0")
assert.NotEmpty(decoded.Nullifiers, "Nullifiers should be present")

hash, err := decoded.Hash(txdummy.TxType)
if err != nil {
t.Fatalf("Unable to calculate hash for staking: %v", err)
}

assert.EqualValues(txHash, hash, "hash mismatch for staking")
}

0 comments on commit 7f0e8f7

Please sign in to comment.