aboutsummaryrefslogtreecommitdiffstats
path: root/accounts/abi/packing.go
diff options
context:
space:
mode:
authorRJ Catalano <catalanor0220@gmail.com>2017-06-27 16:05:33 +0800
committerPéter Szilágyi <peterke@gmail.com>2017-06-27 16:05:33 +0800
commit5421a08d2f924558056c8a382017ec37f56010e9 (patch)
treed9172c82a3720173d525b083e67c6698fd7b5502 /accounts/abi/packing.go
parentcf611c50b9bd7a7c410a49699e0c4e718b4a7177 (diff)
downloadgo-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.go66
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")
-}