From 3b63d9148006ad161c67574844d9461ee3c58946 Mon Sep 17 00:00:00 2001 From: alexvanin Date: Tue, 11 Feb 2020 16:54:43 +0300 Subject: [PATCH] accounting: Use little endian in number encoding NeoFS smart-contract uses little endian for number of signatures, GAS amount and block height. If we encode these parameters in little endian, smart-contract will not reverse bytes during execution therefore will be cheaper. --- accounting/fixtures/cheque.sh | 2 +- accounting/fixtures/cheque_data | Bin 650 -> 650 bytes accounting/types.go | 12 ++++++------ accounting/types_test.go | 2 ++ 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/accounting/fixtures/cheque.sh b/accounting/fixtures/cheque.sh index 93368138..581402a9 100755 --- a/accounting/fixtures/cheque.sh +++ b/accounting/fixtures/cheque.sh @@ -1,6 +1,6 @@ #!/bin/bash -CHEQUE=d6520dabb6cb9b981792608c73670eff14775e9a65bbc189271723ba2703c53263e8d6e522dc32203339dcd8eee9c6b7439a0000000053724e000000000000001e61000603012d47e76210aec73be39ab3d186e0a40fe8d86bfa3d4fabfda57ba13b88f96abe1de4c7ecd46cb32081c0ff199e0b32708d2ce709dd146ce096484073a9b15a259ca799f8d848eb5bea16f6d0842a0181ccd47384af2cdb0fd0af0819e8a08802f7528ce97c9a93558efe7d4f62577aabdf771c931f54a71be6ad21e7d9cc1777686ad19b5dc4b80d7b8decf90054c5aad66c0e6fe63d8473b751cd77c1bd0557516e0f3e7d0ccb485809023b0c08a89f33ae38b2f99ce3f1ebc7905dddf0ed0f023e00f03a16e8707ce045eb42ee80d392451541ee510dc18e1c8befbac54d7426087d37d32d836537d317deafbbd193002a36f80fbdfbf3a730cf011bc6c75c7e6d5724f3adee7015fcb3068d321e2ae555e79107be0c46070efdae2f724dbc9f0340750b92789821683283bcb98e32b7e032b94f267b6964613fc31a7ce5813fddeea47a1db525634237e924178b5c8ea745549ae60aa3570ce6cf52e370e6ab87652bdf8a179176f1acaf48896bef9ab300818a53f410d86241d506a550f4915403fef27f744e829131d0ec980829fafa51db1714c2761d9f78762c008c323e9d6612e4f9efdc609f191fd9ca5431dd9dc037130150107ab8769780d728e9ffdf314019b57c8d2b940b9ec078afa951ed8b06c1bf352edd2037e29b8f24cca3ec700368a6f5829fb2a34fa03d0308ae6b05f433f2904d9a852fed1f5d2eb598ca79475b74ef6394e712d275cd798062c6d8e41fad822ac5a4fcb167f0a2e196f61f9f65a0adef9650f49150e7eb7bb08dd1739fa6e86b341f1b2cf5657fcd200637e8 +CHEQUE=7849b02d01cc7f7734295fa815ea64ec4d2012e45b8781eb891723ba2703c53263e8d6e522dc32203339dcd8eee9c6b7439a00ea56fa00000000611e000000000000060003012d47e76210aec73be39ab3d186e0a40fe8d86bfa3d4fabfda57ba13b88f96a8ebe4360627a1326f13fb9516c0dbc4af90f116e44bd33f4d04a0d1633afa243ad4f2fa9cd933e7631a619b5132cec6983906aba757af5590434124b232a43e302f7528ce97c9a93558efe7d4f62577aabdf771c931f54a71be6ad21e7d9cc177744b4b9781cf0c29adb503f33d2df9f810ebf33a774849848984cf7e2bbebd48ef0cd8592fbf9b6aee1dc74803e31c95a02dbbd5fd9783f9ecbcbf444b5942f830368a6f5829fb2a34fa03d0308ae6b05f433f2904d9a852fed1f5d2eb598ca794770adb1ece9dccd1c7ad98f709cfb890e3bdd5973dcdd838111fae2efa4c3c09ea2133e5d7c6eac6ae24afcce46db7c9f4dc154f123c835adff4e0b7e19bcffda0340750b92789821683283bcb98e32b7e032b94f267b6964613fc31a7ce5813fddad8298f71dfdc4f9b3e353f969727af476d43b12a25727cf6b9c73ae7152266d995bec807068ad2156288c4d946aeb17ebca787d498a1b87b9dae1bcd935763403fef27f744e829131d0ec980829fafa51db1714c2761d9f78762c008c323e9d66db9b5086d355897e52fe065e14f1cc70334248349aa4c7a3e6e3dc8f8693b1511c73dc88e6d6e8b6c6c68de922f351b5b1543917af2f2a3588aebfbd1ff3fac6023e00f03a16e8707ce045eb42ee80d392451541ee510dc18e1c8befbac54d742648b58f379b5337d9b74c5a61afb8ef3db7f3eb0454d6823777b613a3ee22cd6ce47e4fa72170d49267b773cc09c123654e0bcd7278aa2ae1e7c85d049b557a3c DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) echo $CHEQUE | xxd -p -r > $DIR/cheque_data diff --git a/accounting/fixtures/cheque_data b/accounting/fixtures/cheque_data index cd7b286642c3d1fc8d0080985c4d070013761b63..a1530960f321d4d6d1cb7f11f9cf1de82006ffc4 100644 GIT binary patch delta 485 zcmVzU3_k= zYT`=#&PLmOpH0D3@gvAJt^ZC7ei^*~+LLDiAwaEynD-t1#QC%1Q~7Cfdh~YGI})N- zC(mn~bFOhxCT*Ep?0|4+tszz@j7^kk>lf?FczsEV8;7~t;k?;3b~Ka70U^ZLe<1_2>JNVShQn^QO0w@g}Luek3$xAW@+RMvtwceWFw?jp@>lWxK(NCl@2SCj-SYW9Zi9BHS_{ zGdbMY?&-$2Lz(~p002{RP5=M^000009$^3mkwhUtz8&Pp?9^&K8?-SF)XlPLlrKnQ&|(=CH#H`5p1ue;Hc04g^4554>Ir!da}8^*_6er;DI^R4c1 z75uXXjWQl8JTXgSZl;;xCb int64(len(buf[offset:])) { diff --git a/accounting/types_test.go b/accounting/types_test.go index 424993a8..14aee3b7 100644 --- a/accounting/types_test.go +++ b/accounting/types_test.go @@ -80,5 +80,7 @@ func TestCheque(t *testing.T) { require.Equal(t, expect, actual) require.NoError(t, cheque.Verify()) + require.Equal(t, cheque.Height, uint64(7777)) + require.Equal(t, cheque.Amount, decimal.NewGAS(42)) }) }