diff options
author | RJ Catalano <catalanor0220@gmail.com> | 2017-06-27 16:05:33 +0800 |
---|---|---|
committer | Péter Szilágyi <peterke@gmail.com> | 2017-06-27 16:05:33 +0800 |
commit | 5421a08d2f924558056c8a382017ec37f56010e9 (patch) | |
tree | d9172c82a3720173d525b083e67c6698fd7b5502 /accounts/abi/packing.go | |
parent | cf611c50b9bd7a7c410a49699e0c4e718b4a7177 (diff) | |
download | go-tangerine-5421a08d2f924558056c8a382017ec37f56010e9.tar go-tangerine-5421a08d2f924558056c8a382017ec37f56010e9.tar.gz go-tangerine-5421a08d2f924558056c8a382017ec37f56010e9.tar.bz2 go-tangerine-5421a08d2f924558056c8a382017ec37f56010e9.tar.lz go-tangerine-5421a08d2f924558056c8a382017ec37f56010e9.tar.xz go-tangerine-5421a08d2f924558056c8a382017ec37f56010e9.tar.zst go-tangerine-5421a08d2f924558056c8a382017ec37f56010e9.zip |
accounts/abi: reorganizing package with small fixes (#14610)
* accounts/abi: reorganizing package and some notes and a quick correction of name.
Signed-off-by: RJ Catalano <rj@monax.io>
get rid of some imports
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: move file names
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: fix boolean decode function
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: fix for the array set and for creating a bool
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: be very very very correct
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: fix up error message and variable names
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: take out unnecessary argument in pack method
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: add bool unpack test and add a panic to readBool function
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: fix panic message
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: change from panic to basic error
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: fix nil to false
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: fill out type regex tests and fill with the correct type for integers
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: move packNumbers into pack.go.
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: separation of the testing suite into appropriately named files.
Signed-off-by: RJ Catalano <rj@monax.io>
* account/abi: change to hex string tests.
Signed-off-by: RJ Catalano <rj@monax.io>
* account/abi: fix up rest of tests to hex
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: declare bool at the package level
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: use errors package in the error file.
Signed-off-by: RJ Catalano <rj@monax.io>
* accounts/abi: fix ugly hack and fix error type declaration.
Signed-off-by: RJ Catalano <rj@monax.io>
Diffstat (limited to 'accounts/abi/packing.go')
-rw-r--r-- | accounts/abi/packing.go | 66 |
1 files changed, 0 insertions, 66 deletions
diff --git a/accounts/abi/packing.go b/accounts/abi/packing.go deleted file mode 100644 index 1d7f85e2b..000000000 --- a/accounts/abi/packing.go +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright 2016 The go-ethereum Authors -// This file is part of the go-ethereum library. -// -// The go-ethereum library is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// The go-ethereum library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. - -package abi - -import ( - "reflect" - - "github.com/ethereum/go-ethereum/common" - "github.com/ethereum/go-ethereum/common/math" -) - -// packBytesSlice packs the given bytes as [L, V] as the canonical representation -// bytes slice -func packBytesSlice(bytes []byte, l int) []byte { - len := packNum(reflect.ValueOf(l)) - return append(len, common.RightPadBytes(bytes, (l+31)/32*32)...) -} - -// packElement packs the given reflect value according to the abi specification in -// t. -func packElement(t Type, reflectValue reflect.Value) []byte { - switch t.T { - case IntTy, UintTy: - return packNum(reflectValue) - case StringTy: - return packBytesSlice([]byte(reflectValue.String()), reflectValue.Len()) - case AddressTy: - if reflectValue.Kind() == reflect.Array { - reflectValue = mustArrayToByteSlice(reflectValue) - } - - return common.LeftPadBytes(reflectValue.Bytes(), 32) - case BoolTy: - if reflectValue.Bool() { - return math.PaddedBigBytes(common.Big1, 32) - } else { - return math.PaddedBigBytes(common.Big0, 32) - } - case BytesTy: - if reflectValue.Kind() == reflect.Array { - reflectValue = mustArrayToByteSlice(reflectValue) - } - return packBytesSlice(reflectValue.Bytes(), reflectValue.Len()) - case FixedBytesTy, FunctionTy: - if reflectValue.Kind() == reflect.Array { - reflectValue = mustArrayToByteSlice(reflectValue) - } - - return common.RightPadBytes(reflectValue.Bytes(), 32) - } - panic("abi: fatal error") -} |