github.com/klaytn/klaytn@v1.12.1/accounts/abi/doc.go (about)

     1  // Modifications Copyright 2018 The klaytn Authors
     2  // Copyright 2015 The go-ethereum Authors
     3  // This file is part of the go-ethereum library.
     4  //
     5  // The go-ethereum library is free software: you can redistribute it and/or modify
     6  // it under the terms of the GNU Lesser General Public License as published by
     7  // the Free Software Foundation, either version 3 of the License, or
     8  // (at your option) any later version.
     9  //
    10  // The go-ethereum library is distributed in the hope that it will be useful,
    11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    13  // GNU Lesser General Public License for more details.
    14  //
    15  // You should have received a copy of the GNU Lesser General Public License
    16  // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
    17  //
    18  // This file is derived from accounts/abi/doc.go (2018/06/04).
    19  // Modified and improved for the klaytn development.
    20  
    21  /*
    22  Package abi implements the Klaytn ABI (Application Binary
    23  Interface).
    24  
    25  The Klaytn ABI is strongly typed, known at compile time
    26  and static. This ABI will handle basic type casting; unsigned
    27  to signed and visa versa. It does not handle slice casting such
    28  as unsigned slice to signed slice. Bit size type casting is also
    29  handled. ints with a bit size of 32 will be properly cast to int256,
    30  etc.
    31  
    32  Source Files
    33  
    34  Each file provides the following features
    35   - abi.go	: Provides `ABI` struct which holds information about a contract's context and available invokable methods. It will allow you to type check function calls and packs data accordingly.
    36   - argument.go	: Provides `Argument` which holds the name of the argument and the corresponding type.
    37   - error.go	: Provides type check functions
    38   - event.go	: Provides `Event` struct which is an event potentially triggered by the EVM's LOG mechanism
    39   - method.go	: Provides `Method` struct which represents a callable given a `Name` and whether the method is a constant.
    40   - numbers.go	: Provides U256 function which converts a big Int into a 256 bit EVM number.
    41   - pack.go	: Provides functions which pack bytes slice, element and number
    42   - reflect.go	: Provides functions to map an ABI to a struct and detect the type and the kind of a field using reflection
    43   - type.go	: Provides `Type` struct which is the reflection of the supported argument type
    44   - unpack.go	: Provides functions which read values based on their kind
    45  */
    46  package abi