mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-21 15:29:27 +00:00
When the log has empty or nil topics, the generated bindings code will panic when accessing `log.Topics[0]`, add a check to avoid it.
383 lines
17 KiB
Text
383 lines
17 KiB
Text
// Code generated via abigen V2 - DO NOT EDIT.
|
|
// This file is a generated binding and any manual changes will be lost.
|
|
|
|
package bindtests
|
|
|
|
import (
|
|
"bytes"
|
|
"errors"
|
|
"math/big"
|
|
|
|
"github.com/ethereum/go-ethereum/accounts/abi"
|
|
"github.com/ethereum/go-ethereum/accounts/abi/bind/v2"
|
|
"github.com/ethereum/go-ethereum/common"
|
|
"github.com/ethereum/go-ethereum/core/types"
|
|
)
|
|
|
|
// Reference imports to suppress errors if they are not otherwise used.
|
|
var (
|
|
_ = bytes.Equal
|
|
_ = errors.New
|
|
_ = big.NewInt
|
|
_ = common.Big1
|
|
_ = types.BloomLookup
|
|
_ = abi.ConvertType
|
|
)
|
|
|
|
// CrowdsaleMetaData contains all meta data concerning the Crowdsale contract.
|
|
var CrowdsaleMetaData = bind.MetaData{
|
|
ABI: "[{\"constant\":false,\"inputs\":[],\"name\":\"checkGoalReached\",\"outputs\":[],\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"deadline\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"beneficiary\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenReward\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fundingGoal\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"amountRaised\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"price\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"funders\",\"outputs\":[{\"name\":\"addr\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"type\":\"function\"},{\"inputs\":[{\"name\":\"ifSuccessfulSendTo\",\"type\":\"address\"},{\"name\":\"fundingGoalInEthers\",\"type\":\"uint256\"},{\"name\":\"durationInMinutes\",\"type\":\"uint256\"},{\"name\":\"etherCostOfEachToken\",\"type\":\"uint256\"},{\"name\":\"addressOfTokenUsedAsReward\",\"type\":\"address\"}],\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"backer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"isContribution\",\"type\":\"bool\"}],\"name\":\"FundTransfer\",\"type\":\"event\"}]",
|
|
ID: "84d7e935785c5c648282d326307bb8fa0d",
|
|
Bin: "0x606060408190526007805460ff1916905560a0806105a883396101006040529051608051915160c05160e05160008054600160a060020a03199081169095178155670de0b6b3a7640000958602600155603c9093024201600355930260045560058054909216909217905561052f90819061007990396000f36060604052361561006c5760e060020a600035046301cb3b20811461008257806329dcb0cf1461014457806338af3eed1461014d5780636e66f6e91461015f5780637a3a0e84146101715780637b3e5e7b1461017a578063a035b1fe14610183578063dc0d3dff1461018c575b61020060075460009060ff161561032357610002565b61020060035460009042106103205760025460015490106103cb576002548154600160a060020a0316908290606082818181858883f150915460025460408051600160a060020a039390931683526020830191909152818101869052517fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf6945090819003909201919050a15b60405160008054600160a060020a039081169230909116319082818181858883f150506007805460ff1916600117905550505050565b6103a160035481565b6103ab600054600160a060020a031681565b6103ab600554600160a060020a031681565b6103a160015481565b6103a160025481565b6103a160045481565b6103be60043560068054829081101561000257506000526002027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f8101547ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d409190910154600160a060020a03919091169082565b005b505050815481101561000257906000526020600020906002020160005060008201518160000160006101000a815481600160a060020a030219169083021790555060208201518160010160005055905050806002600082828250540192505081905550600560009054906101000a9004600160a060020a0316600160a060020a031663a9059cbb3360046000505484046040518360e060020a0281526004018083600160a060020a03168152602001828152602001925050506000604051808303816000876161da5a03f11561000257505060408051600160a060020a03331681526020810184905260018183015290517fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf692509081900360600190a15b50565b5060a0604052336060908152346080819052600680546001810180835592939282908280158290116102025760020281600202836000526020600020918201910161020291905b8082111561039d57805473ffffffffffffffffffffffffffffffffffffffff19168155600060019190910190815561036a565b5090565b6060908152602090f35b600160a060020a03166060908152602090f35b6060918252608052604090f35b5b60065481101561010e576006805482908110156100025760009182526002027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0190600680549254600160a060020a0316928490811015610002576002027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40015460405190915082818181858883f19350505050507fe842aea7a5f1b01049d752008c53c52890b1a6daf660cf39e8eec506112bbdf660066000508281548110156100025760008290526002027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f01548154600160a060020a039190911691908490811015610002576002027ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d40015460408051600160a060020a0394909416845260208401919091526000838201525191829003606001919050a16001016103cc56",
|
|
}
|
|
|
|
// Crowdsale is an auto generated Go binding around an Ethereum contract.
|
|
type Crowdsale struct {
|
|
abi abi.ABI
|
|
}
|
|
|
|
// NewCrowdsale creates a new instance of Crowdsale.
|
|
func NewCrowdsale() *Crowdsale {
|
|
parsed, err := CrowdsaleMetaData.ParseABI()
|
|
if err != nil {
|
|
panic(errors.New("invalid ABI: " + err.Error()))
|
|
}
|
|
return &Crowdsale{abi: *parsed}
|
|
}
|
|
|
|
// Instance creates a wrapper for a deployed contract instance at the given address.
|
|
// Use this to create the instance object passed to abigen v2 library functions Call, Transact, etc.
|
|
func (c *Crowdsale) Instance(backend bind.ContractBackend, addr common.Address) *bind.BoundContract {
|
|
return bind.NewBoundContract(addr, c.abi, backend, backend, backend)
|
|
}
|
|
|
|
// PackConstructor is the Go binding used to pack the parameters required for
|
|
// contract deployment.
|
|
//
|
|
// Solidity: constructor(address ifSuccessfulSendTo, uint256 fundingGoalInEthers, uint256 durationInMinutes, uint256 etherCostOfEachToken, address addressOfTokenUsedAsReward) returns()
|
|
func (crowdsale *Crowdsale) PackConstructor(ifSuccessfulSendTo common.Address, fundingGoalInEthers *big.Int, durationInMinutes *big.Int, etherCostOfEachToken *big.Int, addressOfTokenUsedAsReward common.Address) []byte {
|
|
enc, err := crowdsale.abi.Pack("", ifSuccessfulSendTo, fundingGoalInEthers, durationInMinutes, etherCostOfEachToken, addressOfTokenUsedAsReward)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return enc
|
|
}
|
|
|
|
// PackAmountRaised is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x7b3e5e7b. This method will panic if any
|
|
// invalid/nil inputs are passed.
|
|
//
|
|
// Solidity: function amountRaised() returns(uint256)
|
|
func (crowdsale *Crowdsale) PackAmountRaised() []byte {
|
|
enc, err := crowdsale.abi.Pack("amountRaised")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return enc
|
|
}
|
|
|
|
// TryPackAmountRaised is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x7b3e5e7b. This method will return an error
|
|
// if any inputs are invalid/nil.
|
|
//
|
|
// Solidity: function amountRaised() returns(uint256)
|
|
func (crowdsale *Crowdsale) TryPackAmountRaised() ([]byte, error) {
|
|
return crowdsale.abi.Pack("amountRaised")
|
|
}
|
|
|
|
// UnpackAmountRaised is the Go binding that unpacks the parameters returned
|
|
// from invoking the contract method with ID 0x7b3e5e7b.
|
|
//
|
|
// Solidity: function amountRaised() returns(uint256)
|
|
func (crowdsale *Crowdsale) UnpackAmountRaised(data []byte) (*big.Int, error) {
|
|
out, err := crowdsale.abi.Unpack("amountRaised", data)
|
|
if err != nil {
|
|
return new(big.Int), err
|
|
}
|
|
out0 := abi.ConvertType(out[0], new(big.Int)).(*big.Int)
|
|
return out0, nil
|
|
}
|
|
|
|
// PackBeneficiary is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x38af3eed. This method will panic if any
|
|
// invalid/nil inputs are passed.
|
|
//
|
|
// Solidity: function beneficiary() returns(address)
|
|
func (crowdsale *Crowdsale) PackBeneficiary() []byte {
|
|
enc, err := crowdsale.abi.Pack("beneficiary")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return enc
|
|
}
|
|
|
|
// TryPackBeneficiary is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x38af3eed. This method will return an error
|
|
// if any inputs are invalid/nil.
|
|
//
|
|
// Solidity: function beneficiary() returns(address)
|
|
func (crowdsale *Crowdsale) TryPackBeneficiary() ([]byte, error) {
|
|
return crowdsale.abi.Pack("beneficiary")
|
|
}
|
|
|
|
// UnpackBeneficiary is the Go binding that unpacks the parameters returned
|
|
// from invoking the contract method with ID 0x38af3eed.
|
|
//
|
|
// Solidity: function beneficiary() returns(address)
|
|
func (crowdsale *Crowdsale) UnpackBeneficiary(data []byte) (common.Address, error) {
|
|
out, err := crowdsale.abi.Unpack("beneficiary", data)
|
|
if err != nil {
|
|
return *new(common.Address), err
|
|
}
|
|
out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
|
|
return out0, nil
|
|
}
|
|
|
|
// PackCheckGoalReached is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x01cb3b20. This method will panic if any
|
|
// invalid/nil inputs are passed.
|
|
//
|
|
// Solidity: function checkGoalReached() returns()
|
|
func (crowdsale *Crowdsale) PackCheckGoalReached() []byte {
|
|
enc, err := crowdsale.abi.Pack("checkGoalReached")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return enc
|
|
}
|
|
|
|
// TryPackCheckGoalReached is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x01cb3b20. This method will return an error
|
|
// if any inputs are invalid/nil.
|
|
//
|
|
// Solidity: function checkGoalReached() returns()
|
|
func (crowdsale *Crowdsale) TryPackCheckGoalReached() ([]byte, error) {
|
|
return crowdsale.abi.Pack("checkGoalReached")
|
|
}
|
|
|
|
// PackDeadline is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x29dcb0cf. This method will panic if any
|
|
// invalid/nil inputs are passed.
|
|
//
|
|
// Solidity: function deadline() returns(uint256)
|
|
func (crowdsale *Crowdsale) PackDeadline() []byte {
|
|
enc, err := crowdsale.abi.Pack("deadline")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return enc
|
|
}
|
|
|
|
// TryPackDeadline is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x29dcb0cf. This method will return an error
|
|
// if any inputs are invalid/nil.
|
|
//
|
|
// Solidity: function deadline() returns(uint256)
|
|
func (crowdsale *Crowdsale) TryPackDeadline() ([]byte, error) {
|
|
return crowdsale.abi.Pack("deadline")
|
|
}
|
|
|
|
// UnpackDeadline is the Go binding that unpacks the parameters returned
|
|
// from invoking the contract method with ID 0x29dcb0cf.
|
|
//
|
|
// Solidity: function deadline() returns(uint256)
|
|
func (crowdsale *Crowdsale) UnpackDeadline(data []byte) (*big.Int, error) {
|
|
out, err := crowdsale.abi.Unpack("deadline", data)
|
|
if err != nil {
|
|
return new(big.Int), err
|
|
}
|
|
out0 := abi.ConvertType(out[0], new(big.Int)).(*big.Int)
|
|
return out0, nil
|
|
}
|
|
|
|
// PackFunders is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0xdc0d3dff. This method will panic if any
|
|
// invalid/nil inputs are passed.
|
|
//
|
|
// Solidity: function funders(uint256 ) returns(address addr, uint256 amount)
|
|
func (crowdsale *Crowdsale) PackFunders(arg0 *big.Int) []byte {
|
|
enc, err := crowdsale.abi.Pack("funders", arg0)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return enc
|
|
}
|
|
|
|
// TryPackFunders is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0xdc0d3dff. This method will return an error
|
|
// if any inputs are invalid/nil.
|
|
//
|
|
// Solidity: function funders(uint256 ) returns(address addr, uint256 amount)
|
|
func (crowdsale *Crowdsale) TryPackFunders(arg0 *big.Int) ([]byte, error) {
|
|
return crowdsale.abi.Pack("funders", arg0)
|
|
}
|
|
|
|
// FundersOutput serves as a container for the return parameters of contract
|
|
// method Funders.
|
|
type FundersOutput struct {
|
|
Addr common.Address
|
|
Amount *big.Int
|
|
}
|
|
|
|
// UnpackFunders is the Go binding that unpacks the parameters returned
|
|
// from invoking the contract method with ID 0xdc0d3dff.
|
|
//
|
|
// Solidity: function funders(uint256 ) returns(address addr, uint256 amount)
|
|
func (crowdsale *Crowdsale) UnpackFunders(data []byte) (FundersOutput, error) {
|
|
out, err := crowdsale.abi.Unpack("funders", data)
|
|
outstruct := new(FundersOutput)
|
|
if err != nil {
|
|
return *outstruct, err
|
|
}
|
|
outstruct.Addr = *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
|
|
outstruct.Amount = abi.ConvertType(out[1], new(big.Int)).(*big.Int)
|
|
return *outstruct, nil
|
|
}
|
|
|
|
// PackFundingGoal is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x7a3a0e84. This method will panic if any
|
|
// invalid/nil inputs are passed.
|
|
//
|
|
// Solidity: function fundingGoal() returns(uint256)
|
|
func (crowdsale *Crowdsale) PackFundingGoal() []byte {
|
|
enc, err := crowdsale.abi.Pack("fundingGoal")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return enc
|
|
}
|
|
|
|
// TryPackFundingGoal is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x7a3a0e84. This method will return an error
|
|
// if any inputs are invalid/nil.
|
|
//
|
|
// Solidity: function fundingGoal() returns(uint256)
|
|
func (crowdsale *Crowdsale) TryPackFundingGoal() ([]byte, error) {
|
|
return crowdsale.abi.Pack("fundingGoal")
|
|
}
|
|
|
|
// UnpackFundingGoal is the Go binding that unpacks the parameters returned
|
|
// from invoking the contract method with ID 0x7a3a0e84.
|
|
//
|
|
// Solidity: function fundingGoal() returns(uint256)
|
|
func (crowdsale *Crowdsale) UnpackFundingGoal(data []byte) (*big.Int, error) {
|
|
out, err := crowdsale.abi.Unpack("fundingGoal", data)
|
|
if err != nil {
|
|
return new(big.Int), err
|
|
}
|
|
out0 := abi.ConvertType(out[0], new(big.Int)).(*big.Int)
|
|
return out0, nil
|
|
}
|
|
|
|
// PackPrice is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0xa035b1fe. This method will panic if any
|
|
// invalid/nil inputs are passed.
|
|
//
|
|
// Solidity: function price() returns(uint256)
|
|
func (crowdsale *Crowdsale) PackPrice() []byte {
|
|
enc, err := crowdsale.abi.Pack("price")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return enc
|
|
}
|
|
|
|
// TryPackPrice is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0xa035b1fe. This method will return an error
|
|
// if any inputs are invalid/nil.
|
|
//
|
|
// Solidity: function price() returns(uint256)
|
|
func (crowdsale *Crowdsale) TryPackPrice() ([]byte, error) {
|
|
return crowdsale.abi.Pack("price")
|
|
}
|
|
|
|
// UnpackPrice is the Go binding that unpacks the parameters returned
|
|
// from invoking the contract method with ID 0xa035b1fe.
|
|
//
|
|
// Solidity: function price() returns(uint256)
|
|
func (crowdsale *Crowdsale) UnpackPrice(data []byte) (*big.Int, error) {
|
|
out, err := crowdsale.abi.Unpack("price", data)
|
|
if err != nil {
|
|
return new(big.Int), err
|
|
}
|
|
out0 := abi.ConvertType(out[0], new(big.Int)).(*big.Int)
|
|
return out0, nil
|
|
}
|
|
|
|
// PackTokenReward is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x6e66f6e9. This method will panic if any
|
|
// invalid/nil inputs are passed.
|
|
//
|
|
// Solidity: function tokenReward() returns(address)
|
|
func (crowdsale *Crowdsale) PackTokenReward() []byte {
|
|
enc, err := crowdsale.abi.Pack("tokenReward")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return enc
|
|
}
|
|
|
|
// TryPackTokenReward is the Go binding used to pack the parameters required for calling
|
|
// the contract method with ID 0x6e66f6e9. This method will return an error
|
|
// if any inputs are invalid/nil.
|
|
//
|
|
// Solidity: function tokenReward() returns(address)
|
|
func (crowdsale *Crowdsale) TryPackTokenReward() ([]byte, error) {
|
|
return crowdsale.abi.Pack("tokenReward")
|
|
}
|
|
|
|
// UnpackTokenReward is the Go binding that unpacks the parameters returned
|
|
// from invoking the contract method with ID 0x6e66f6e9.
|
|
//
|
|
// Solidity: function tokenReward() returns(address)
|
|
func (crowdsale *Crowdsale) UnpackTokenReward(data []byte) (common.Address, error) {
|
|
out, err := crowdsale.abi.Unpack("tokenReward", data)
|
|
if err != nil {
|
|
return *new(common.Address), err
|
|
}
|
|
out0 := *abi.ConvertType(out[0], new(common.Address)).(*common.Address)
|
|
return out0, nil
|
|
}
|
|
|
|
// CrowdsaleFundTransfer represents a FundTransfer event raised by the Crowdsale contract.
|
|
type CrowdsaleFundTransfer struct {
|
|
Backer common.Address
|
|
Amount *big.Int
|
|
IsContribution bool
|
|
Raw *types.Log // Blockchain specific contextual infos
|
|
}
|
|
|
|
const CrowdsaleFundTransferEventName = "FundTransfer"
|
|
|
|
// ContractEventName returns the user-defined event name.
|
|
func (CrowdsaleFundTransfer) ContractEventName() string {
|
|
return CrowdsaleFundTransferEventName
|
|
}
|
|
|
|
// UnpackFundTransferEvent is the Go binding that unpacks the event data emitted
|
|
// by contract.
|
|
//
|
|
// Solidity: event FundTransfer(address backer, uint256 amount, bool isContribution)
|
|
func (crowdsale *Crowdsale) UnpackFundTransferEvent(log *types.Log) (*CrowdsaleFundTransfer, error) {
|
|
event := "FundTransfer"
|
|
if len(log.Topics) == 0 || log.Topics[0] != crowdsale.abi.Events[event].ID {
|
|
return nil, errors.New("event signature mismatch")
|
|
}
|
|
out := new(CrowdsaleFundTransfer)
|
|
if len(log.Data) > 0 {
|
|
if err := crowdsale.abi.UnpackIntoInterface(out, event, log.Data); err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
var indexed abi.Arguments
|
|
for _, arg := range crowdsale.abi.Events[event].Inputs {
|
|
if arg.Indexed {
|
|
indexed = append(indexed, arg)
|
|
}
|
|
}
|
|
if err := abi.ParseTopics(out, indexed, log.Topics[1:]); err != nil {
|
|
return nil, err
|
|
}
|
|
out.Raw = log
|
|
return out, nil
|
|
}
|