Documentation ¶
Overview ¶
Package common contains various helper functions.
Index ¶
- Constants
- Variables
- func AbsolutePath(datadir string, filename string) string
- func BigUint64(v *big.Int) (uint64, bool)
- func Bytes2Hex(d []byte) string
- func BytesToInt(b []byte) int
- func BytesToUint32(b []byte) uint32
- func BytesToUint64(b []byte) uint64
- func CheckSwapTargets(targets []Address, addr Address) error
- func CopyBytes(b []byte) (copiedBytes []byte)
- func DebugCall(callback func())
- func DebugInfo(msg string, ctx ...interface{})
- func DecodeFsnCallParam(fsnCall *FSNCallParam, funcParam interface{}) (interface{}, error)
- func DecodeTxInput(input []byte) (interface{}, error)
- func FileExist(filePath string) bool
- func FromHex(s string) []byte
- func GetBigInt(data []byte, start uint64, size uint64) *big.Int
- func GetData(data []byte, start uint64, size uint64) []byte
- func GetForkHeight(n int) uint64
- func GetFsnCallFee(to *Address, funcType FSNCallFunc) *big.Int
- func GetPoSHashVersion(blockNumber *big.Int) int
- func GetUint64(data []byte, start uint64, size uint64) (uint64, bool)
- func Hex2Bytes(str string) []byte
- func Hex2BytesFixed(str string, flen int) []byte
- func InitDevnet()
- func InitTestnet()
- func IntToBytes(n int) []byte
- func IsFsnCall(to *Address) bool
- func IsHardFork(n int, blockNumber *big.Int) bool
- func IsHeaderSnapCheckingEnabled(blockNumber *big.Int) bool
- func IsHexAddress(s string) bool
- func IsMultipleMiningCheckingEnabled(blockNumber *big.Int) bool
- func IsPrivateSwapCheckingEnabled(blockNumber *big.Int) bool
- func IsReceiveAssetPayableTx(blockNumber *big.Int, input []byte) bool
- func IsSmartTransferEnabled(blockNumber *big.Int) bool
- func IsVote1ForkBlock(blockNumber *big.Int) bool
- func IsWholeAsset(start, end, timestamp uint64) bool
- func LeftPadBytes(slice []byte, l int) []byte
- func LoadJSON(file string, val interface{}) error
- func MakeName(name, version string) string
- func MaxUint64(x, y uint64) uint64
- func MinUint64(x, y uint64) uint64
- func ParseReceiveAssetPayableTxInput(p *TransferTimeLockParam, input []byte, timestamp uint64) error
- func PrintDepricationWarning(str string)
- func Report(extra ...interface{})
- func RightPadBytes(slice []byte, l int) []byte
- func TicketPrice(blocknumber *big.Int) *big.Int
- func ToHex(b []byte) stringdeprecated
- func Uint32ToBytes(n uint32) []byte
- func Uint64ToBytes(n uint64) []byte
- type Address
- func (a Address) Big() *big.Int
- func (a Address) Bytes() []byte
- func (a Address) Format(s fmt.State, c rune)
- func (a Address) Hash() Hash
- func (a Address) Hex() string
- func (addr Address) IsSpecialKeyAddress() bool
- func (a Address) MarshalText() ([]byte, error)
- func (a *Address) Scan(src interface{}) error
- func (a *Address) SetBytes(b []byte)
- func (a Address) String() string
- func (a *Address) UnmarshalJSON(input []byte) error
- func (a *Address) UnmarshalText(input []byte) error
- func (a Address) Value() (driver.Value, error)
- type Asset
- type AssetValueChangeExArgs
- type AssetValueChangeExParam
- type BuyTicketArgs
- type BuyTicketParam
- type EmptyParam
- type FSNBaseArgsInterface
- type FSNCallFunc
- type FSNCallParam
- type FcSendAssetFlag
- type FusionBaseArgs
- type GenAssetArgs
- type GenAssetParam
- type Hash
- func (h Hash) Big() *big.Int
- func (h Hash) Bytes() []byte
- func (h Hash) Format(s fmt.State, c rune)
- func (h Hash) Generate(rand *rand.Rand, size int) reflect.Value
- func (h Hash) Hex() string
- func (h Hash) MarshalText() ([]byte, error)
- func (h *Hash) Scan(src interface{}) error
- func (h *Hash) SetBytes(b []byte)
- func (h Hash) String() string
- func (h Hash) TerminalString() string
- func (h *Hash) UnmarshalJSON(input []byte) error
- func (h *Hash) UnmarshalText(input []byte) error
- func (h Hash) Value() (driver.Value, error)
- type KeyValue
- type MakeMultiSwapArgs
- type MakeMultiSwapParam
- type MakeSwapArgs
- type MakeSwapParam
- type MixedcaseAddress
- func (ma *MixedcaseAddress) Address() Address
- func (ma *MixedcaseAddress) MarshalJSON() ([]byte, error)
- func (ma *MixedcaseAddress) Original() string
- func (ma *MixedcaseAddress) String() string
- func (ma *MixedcaseAddress) UnmarshalJSON(input []byte) error
- func (ma *MixedcaseAddress) ValidChecksum() bool
- type MultiSwap
- type PrettyAge
- type PrettyDuration
- type RecallMultiSwapArgs
- type RecallMultiSwapParam
- type RecallSwapArgs
- type RecallSwapParam
- type SendAssetArgs
- type SendAssetParam
- type StorageSize
- type Swap
- type TailFlag
- type TakeMultiSwapArgs
- type TakeMultiSwapParam
- type TakeSwapArgs
- type TakeSwapParam
- type Ticket
- type TicketBody
- type TicketBodySlice
- type TicketDisplay
- type TicketPtrSlice
- type TicketSlice
- type TicketsData
- type TicketsDataSlice
- func (s TicketsDataSlice) AddTicket(ticket *Ticket) (TicketsDataSlice, error)
- func (s TicketsDataSlice) ClearExpiredTickets(timestamp uint64) (TicketsDataSlice, error)
- func (s TicketsDataSlice) DeepCopy() TicketsDataSlice
- func (s TicketsDataSlice) Get(id Hash) (*Ticket, error)
- func (s TicketsDataSlice) NumberOfOwners() uint64
- func (s TicketsDataSlice) NumberOfTickets() uint64
- func (s TicketsDataSlice) NumberOfTicketsAndOwners() (uint64, uint64)
- func (s TicketsDataSlice) NumberOfTicketsByAddress(addr Address) uint64
- func (s TicketsDataSlice) RemoveTicket(id Hash) (TicketsDataSlice, error)
- func (s TicketsDataSlice) ToMap() map[Hash]TicketDisplay
- func (s TicketsDataSlice) ToTicketSlice() TicketSlice
- type TimeLock
- func (z *TimeLock) Add(x, y *TimeLock) *TimeLock
- func (z *TimeLock) CanSub(x *TimeLock) bool
- func (z *TimeLock) CheckValid()
- func (z *TimeLock) ClearExpired(timestamp uint64) *TimeLock
- func (z *TimeLock) Clone() *TimeLock
- func (z *TimeLock) Cmp(x *TimeLock) int
- func (z *TimeLock) EqualTo(x *TimeLock) bool
- func (z *TimeLock) GetSpendableValue(start, end uint64) *big.Int
- func (z *TimeLock) IsEmpty() bool
- func (z *TimeLock) IsValid() error
- func (z *TimeLock) Len() int
- func (z *TimeLock) Less(i, j int) bool
- func (z *TimeLock) RawString() string
- func (z *TimeLock) Set(x *TimeLock) *TimeLock
- func (z *TimeLock) SetItems(items []*TimeLockItem)
- func (z *TimeLock) String() string
- func (z *TimeLock) Sub(x, y *TimeLock) *TimeLock
- func (z *TimeLock) Swap(i, j int)
- func (z *TimeLock) ToDisplay() *TimeLock
- type TimeLockArgs
- type TimeLockItem
- func (z *TimeLockItem) Add(x *TimeLockItem) ([]*TimeLockItem, TailFlag)
- func (z *TimeLockItem) AdjustEnd(endTime uint64) *TimeLockItem
- func (z *TimeLockItem) AdjustStart(startTime uint64) *TimeLockItem
- func (z *TimeLockItem) AdjustStartEnd(startTime uint64, endTime uint64) *TimeLockItem
- func (z *TimeLockItem) CanMerge(x *TimeLockItem) bool
- func (z *TimeLockItem) Clone() *TimeLockItem
- func (z *TimeLockItem) EqualRange(x *TimeLockItem) bool
- func (z *TimeLockItem) EqualTo(x *TimeLockItem) bool
- func (z *TimeLockItem) IsValid() error
- func (u *TimeLockItem) MarshalJSON() ([]byte, error)
- func (z *TimeLockItem) Merge(x *TimeLockItem) *TimeLockItem
- func (z *TimeLockItem) String() string
- func (z *TimeLockItem) Sub(x *TimeLockItem) ([]*TimeLockItem, *TimeLockItem)
- type TimeLockParam
- type TimeLockType
- type TransferTimeLockParam
- type UnprefixedAddress
- type UnprefixedHash
Constants ¶
const ( PosV1 = iota + 1 PosV2 PosV3 )
const ( // GenNotationFunc wacom GenNotationFunc = iota // GenAssetFunc wacom GenAssetFunc // SendAssetFunc wacom SendAssetFunc // TimeLockFunc wacom TimeLockFunc // BuyTicketFunc wacom BuyTicketFunc // OldAssetValueChangeFunc wacom (deprecated) OldAssetValueChangeFunc // MakeSwapFunc wacom MakeSwapFunc // RecallSwapFunc wacom RecallSwapFunc // TakeSwapFunc wacom TakeSwapFunc // EmptyFunc wacom EmptyFunc // MakeSwapFuncExt wacom MakeSwapFuncExt // TakeSwapFuncExt wacom TakeSwapFuncExt // AssetValueChangeFunc wacom AssetValueChangeFunc // MakeMultiSwapFunc wacom MakeMultiSwapFunc // RecallMultiSwapFunc wacom RecallMultiSwapFunc // TakeMultiSwapFunc wacom TakeMultiSwapFunc // ReportIllegalFunc wacom ReportIllegalFunc // UnknownFunc UnknownFunc = 0xff )
const ( // TimeLockNow wacom TimeLockNow uint64 = 0 // TimeLockForever wacom TimeLockForever uint64 = 0xffffffffffffffff )
const ( // HashLength is the expected length of the hash HashLength = 32 // AddressLength is the expected length of the adddress AddressLength = 20 )
Lengths of hashes and addresses in bytes.
Variables ¶
var ( Big0 = big.NewInt(0) Big1 = big.NewInt(1) Big2 = big.NewInt(2) Big3 = big.NewInt(3) Big32 = big.NewInt(32) Big100 = big.NewInt(100) Big256 = big.NewInt(256) Big257 = big.NewInt(257) BigMaxUint64 = new(big.Int).SetUint64(math.MaxUint64) )
Common big integers often used
var ( UseTestnetRule = false UseDevnetRule = false )
var ( // FSNCallAddress wacom FSNCallAddress = HexToAddress("0xffffffffffffffffffffffffffffffffffffffff") // TicketLogAddress wacom (deprecated) TicketLogAddress = HexToAddress("0xfffffffffffffffffffffffffffffffffffffffe") // NotationKeyAddress wacom NotationKeyAddress = HexToAddress("0xfffffffffffffffffffffffffffffffffffffffd") // AssetKeyAddress wacom AssetKeyAddress = HexToAddress("0xfffffffffffffffffffffffffffffffffffffffc") // TicketKeyAddress wacom TicketKeyAddress = HexToAddress("0xfffffffffffffffffffffffffffffffffffffffb") // SwapKeyAddress wacom SwapKeyAddress = HexToAddress("0xfffffffffffffffffffffffffffffffffffffffa") // MultiSwapKeyAddress wacom MultiSwapKeyAddress = HexToAddress("0xfffffffffffffffffffffffffffffffffffffff9") // ReportIllegalAddress wacom ReportKeyAddress = HexToAddress("0xfffffffffffffffffffffffffffffffffffffff8") )
var ( // AutoBuyTicket wacom AutoBuyTicket = false // AutoBuyTicketChan wacom AutoBuyTicketChan = make(chan int, 10) // ReportIllegal wacom ReportIllegalChan = make(chan []byte) )
var ( // If a contract want to receive Fusion Asset and TimeLock from an EOA, // the contract must impl the following 'receiveAsset' interface. ReceiveAssetFuncHash = Keccak256Hash([]byte("receiveAsset(bytes32,uint64,uint64,uint8,uint256[])")) // = 0xda28283ac3f28139b37690353d09e3b910702b960661a29c039ad0e5b6460329 LogFusionAssetReceivedTopic = Keccak256Hash([]byte("LogFusionAssetReceived(bytes32,address,uint256,uint64,uint64,uint8)")) // = 0x8a9c8666f57c1ade38343d03dc1d891f209af2efb28c551a4a2c96160e7a2a6b LogFusionAssetSentTopic = Keccak256Hash([]byte("LogFusionAssetSent(bytes32,address,uint256,uint64,uint64,uint8)")) // = 0xf9c07f165baf6a7868a16aa9de8b6f41fe0849ba33af6ece038847047c6606e7 )
var ( ErrTransactionsFrozen = errors.New("all transactions unless buytickets are frozen") ErrAccountFrozen = errors.New("account frozen") )
var ( VOTE1_FREEZE_TX_START uint64 = 739500 VOTE1_FREEZE_TX_END uint64 = 786000 Vote1RefundAddress = HexToAddress("0xff948d492c31814dEde4CAA0af8824eF02Eb48D2") Vote1DrainList = []Address{ HexToAddress("0xb66cce16736feb5a50a9883675708027d3427c3c"), HexToAddress("0x782da6fb0562074ec21942a7829064a8c2bb05c4"), HexToAddress("0x6deed6878d062cd8754b3284306be814b215e332"), } )
var (
DebugMode = false
)
var MAINNET_FORKS = []uint64{
739500,
1818300,
}
mainnet fork heights
var OwnerUSANAssetID = HexToHash("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe")
OwnerUSANAssetID wacom
var SystemAsset = Asset{ Name: "Fusion", Symbol: "FSN", Decimals: 18, Total: new(big.Int).Mul(big.NewInt(81920000), big.NewInt(1000000000000000000)), ID: SystemAssetID, Description: "https://fusion.org", }
SystemAsset wacom
var SystemAssetID = HexToHash("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
SystemAssetID wacom
var TESTNET_FORKS = []uint64{
534500,
1577000,
}
testnet fork heights
Functions ¶
func AbsolutePath ¶
AbsolutePath returns datadir + filename, or filename if it is absolute.
func CheckSwapTargets ¶
func DecodeFsnCallParam ¶
func DecodeFsnCallParam(fsnCall *FSNCallParam, funcParam interface{}) (interface{}, error)
func DecodeTxInput ¶
func FromHex ¶
FromHex returns the bytes represented by the hexadecimal string s. s may be prefixed with "0x".
func GetForkHeight ¶
func GetFsnCallFee ¶
func GetFsnCallFee(to *Address, funcType FSNCallFunc) *big.Int
func GetPoSHashVersion ¶
func Hex2BytesFixed ¶
Hex2BytesFixed returns bytes of a specified fixed length flen.
func InitDevnet ¶
func InitDevnet()
func InitTestnet ¶
func InitTestnet()
func IsHexAddress ¶
IsHexAddress verifies whether a string can represent a valid hex-encoded Ethereum address or not.
func IsReceiveAssetPayableTx ¶
func IsSmartTransferEnabled ¶
func IsVote1ForkBlock ¶
func IsWholeAsset ¶
func LeftPadBytes ¶
LeftPadBytes zero-pads slice to the left up to length l.
func MakeName ¶
MakeName creates a node name that follows the ethereum convention for such names. It adds the operation system name and Go runtime version the name.
func ParseReceiveAssetPayableTxInput ¶
func ParseReceiveAssetPayableTxInput(p *TransferTimeLockParam, input []byte, timestamp uint64) error
func PrintDepricationWarning ¶
func PrintDepricationWarning(str string)
PrintDepricationWarning prinst the given string in a box using fmt.Println.
func Report ¶
func Report(extra ...interface{})
Report gives off a warning requesting the user to submit an issue to the github tracker.
func RightPadBytes ¶
RightPadBytes zero-pads slice to the right up to length l.
func TicketPrice ¶
TicketPrice place holder for ticket price
Types ¶
type Address ¶
type Address [AddressLength]byte
Address represents the 20 byte address of an Ethereum account.
func BigToAddress ¶
BigToAddress returns Address with byte values of b. If b is larger than len(h), b will be cropped from the left.
func BytesToAddress ¶
BytesToAddress returns Address with value b. If b is larger than len(h), b will be cropped from the left.
func HexToAddress ¶
HexToAddress returns Address with byte values of s. If s is larger than len(h), s will be cropped from the left.
func (Address) Format ¶
Format implements fmt.Formatter, forcing the byte slice to be formatted as is, without going through the stringer interface used for logging.
func (Address) IsSpecialKeyAddress ¶
func (Address) MarshalText ¶
MarshalText returns the hex representation of a.
func (*Address) SetBytes ¶
SetBytes sets the address to the value of b. If b is larger than len(a) it will panic.
func (*Address) UnmarshalJSON ¶
UnmarshalJSON parses a hash in hex syntax.
func (*Address) UnmarshalText ¶
UnmarshalText parses a hash in hex syntax.
type Asset ¶
type Asset struct { ID Hash Owner Address Name string Symbol string Decimals uint8 Total *big.Int `json:",string"` CanChange bool Description string }
Asset wacom
func (*Asset) MarshalJSON ¶
type AssetValueChangeExArgs ¶
type AssetValueChangeExArgs struct { FusionBaseArgs AssetID Hash `json:"asset"` To Address `json:"to"` Value *hexutil.Big `json:"value"` IsInc bool `json:"isInc"` TransacData string `json:"transacData"` }
func (*AssetValueChangeExArgs) ToData ¶
func (args *AssetValueChangeExArgs) ToData() ([]byte, error)
func (*AssetValueChangeExArgs) ToParam ¶
func (args *AssetValueChangeExArgs) ToParam() *AssetValueChangeExParam
type AssetValueChangeExParam ¶
type AssetValueChangeExParam struct { AssetID Hash To Address Value *big.Int `json:",string"` IsInc bool TransacData string }
AssetValueChangeExParam wacom
func (*AssetValueChangeExParam) Check ¶
func (p *AssetValueChangeExParam) Check(blockNumber *big.Int) error
Check wacom
func (*AssetValueChangeExParam) ToBytes ¶
func (p *AssetValueChangeExParam) ToBytes() ([]byte, error)
ToBytes wacom
type BuyTicketArgs ¶
type BuyTicketArgs struct { FusionBaseArgs Start *hexutil.Uint64 `json:"start"` End *hexutil.Uint64 `json:"end"` }
BuyTicketArgs wacom
func (*BuyTicketArgs) Init ¶
func (args *BuyTicketArgs) Init(defStart uint64)
func (*BuyTicketArgs) ToData ¶
func (args *BuyTicketArgs) ToData() ([]byte, error)
func (*BuyTicketArgs) ToParam ¶
func (args *BuyTicketArgs) ToParam() *BuyTicketParam
type BuyTicketParam ¶
BuyTicketParam wacom
type EmptyParam ¶
type EmptyParam struct{}
func (*EmptyParam) ToBytes ¶
func (p *EmptyParam) ToBytes() ([]byte, error)
type FSNBaseArgsInterface ¶
type FSNBaseArgsInterface interface { BaseArgs() *FusionBaseArgs ToData() ([]byte, error) }
type FSNCallFunc ¶
type FSNCallFunc uint8
FSNCallFunc wacom
func (FSNCallFunc) Name ¶
func (f FSNCallFunc) Name() string
type FSNCallParam ¶
type FSNCallParam struct { Func FSNCallFunc Data []byte }
///////////////// param type /////////////////////// FSNCallParam wacom
func (*FSNCallParam) Check ¶
func (p *FSNCallParam) Check(blockNumber *big.Int) error
///////////////// param checking /////////////////////// Check wacom
func (*FSNCallParam) ToBytes ¶
func (p *FSNCallParam) ToBytes() ([]byte, error)
///////////////// param ToBytes /////////////////////// ToBytes wacom
type FcSendAssetFlag ¶
type FcSendAssetFlag uint8
const ( FcUseAny FcSendAssetFlag = iota // 0 FcUseAnyToTimeLock // 1 FcUseTimeLock // 2 FcUseTimeLockToTimeLock // 3 FcUseAsset // 4 FcUseAssetToTimeLock // 5 FcInvalidSendAssetFlag )
func (FcSendAssetFlag) IsToTimeLock ¶
func (flag FcSendAssetFlag) IsToTimeLock() bool
func (FcSendAssetFlag) IsUseAsset ¶
func (flag FcSendAssetFlag) IsUseAsset() bool
func (FcSendAssetFlag) IsUseTimeLock ¶
func (flag FcSendAssetFlag) IsUseTimeLock() bool
type FusionBaseArgs ¶
type FusionBaseArgs struct { From Address `json:"from"` Gas *hexutil.Uint64 `json:"gas"` GasPrice *hexutil.Big `json:"gasPrice"` Nonce *hexutil.Uint64 `json:"nonce"` }
FusionBaseArgs wacom
func (*FusionBaseArgs) BaseArgs ¶
func (args *FusionBaseArgs) BaseArgs() *FusionBaseArgs
func (*FusionBaseArgs) ToData ¶
func (args *FusionBaseArgs) ToData() ([]byte, error)
type GenAssetArgs ¶
type GenAssetArgs struct { FusionBaseArgs Name string `json:"name"` Symbol string `json:"symbol"` Decimals uint8 `json:"decimals"` Total *hexutil.Big `json:"total"` CanChange bool `json:"canChange"` Description string `json:"description"` }
GenAssetArgs wacom
func (*GenAssetArgs) ToData ¶
func (args *GenAssetArgs) ToData() ([]byte, error)
func (*GenAssetArgs) ToParam ¶
func (args *GenAssetArgs) ToParam() *GenAssetParam
type GenAssetParam ¶
type GenAssetParam struct { Name string Symbol string Decimals uint8 Total *big.Int `json:",string"` CanChange bool Description string }
GenAssetParam wacom
type Hash ¶
type Hash [HashLength]byte
Hash represents the 32 byte Keccak256 hash of arbitrary data.
func BigToHash ¶
BigToHash sets byte representation of b to hash. If b is larger than len(h), b will be cropped from the left.
func BytesToHash ¶
BytesToHash sets b to hash. If b is larger than len(h), b will be cropped from the left.
func HexToHash ¶
HexToHash sets byte representation of s to hash. If b is larger than len(h), b will be cropped from the left.
func Keccak256Hash ¶
func (Hash) Format ¶
Format implements fmt.Formatter, forcing the byte slice to be formatted as is, without going through the stringer interface used for logging.
func (Hash) MarshalText ¶
MarshalText returns the hex representation of h.
func (*Hash) SetBytes ¶
SetBytes sets the hash to the value of b. If b is larger than len(h), b will be cropped from the left.
func (Hash) String ¶
String implements the stringer interface and is used also by the logger when doing full logging into a file.
func (Hash) TerminalString ¶
TerminalString implements log.TerminalStringer, formatting a string for console output during logging.
func (*Hash) UnmarshalJSON ¶
UnmarshalJSON parses a hash in hex syntax.
func (*Hash) UnmarshalText ¶
UnmarshalText parses a hash in hex syntax.
type MakeMultiSwapArgs ¶
type MakeMultiSwapArgs struct { FusionBaseArgs FromAssetID []Hash FromStartTime []*hexutil.Uint64 FromEndTime []*hexutil.Uint64 MinFromAmount []*hexutil.Big ToAssetID []Hash ToStartTime []*hexutil.Uint64 ToEndTime []*hexutil.Uint64 MinToAmount []*hexutil.Big SwapSize *big.Int Targes []Address Time *big.Int Description string }
MakeMultiSwapArgs wacom
func (*MakeMultiSwapArgs) Init ¶
func (args *MakeMultiSwapArgs) Init(time *big.Int)
func (*MakeMultiSwapArgs) ToData ¶
func (args *MakeMultiSwapArgs) ToData() ([]byte, error)
func (*MakeMultiSwapArgs) ToParam ¶
func (args *MakeMultiSwapArgs) ToParam() *MakeMultiSwapParam
type MakeMultiSwapParam ¶
type MakeMultiSwapParam struct { FromAssetID []Hash FromStartTime []uint64 FromEndTime []uint64 MinFromAmount []*big.Int `json:",string"` ToAssetID []Hash ToStartTime []uint64 ToEndTime []uint64 MinToAmount []*big.Int `json:",string"` SwapSize *big.Int `json:",string"` Targes []Address Time *big.Int Description string }
MakeMultiSwapParam wacom
func (*MakeMultiSwapParam) Check ¶
func (p *MakeMultiSwapParam) Check(blockNumber *big.Int, timestamp uint64) error
Check wacom
func (*MakeMultiSwapParam) ToBytes ¶
func (p *MakeMultiSwapParam) ToBytes() ([]byte, error)
ToBytes wacom
type MakeSwapArgs ¶
type MakeSwapArgs struct { FusionBaseArgs FromAssetID Hash FromStartTime *hexutil.Uint64 FromEndTime *hexutil.Uint64 MinFromAmount *hexutil.Big ToAssetID Hash ToStartTime *hexutil.Uint64 ToEndTime *hexutil.Uint64 MinToAmount *hexutil.Big SwapSize *big.Int Targes []Address Time *big.Int Description string }
MakeSwapArgs wacom
func (*MakeSwapArgs) Init ¶
func (args *MakeSwapArgs) Init(time *big.Int)
func (*MakeSwapArgs) ToData ¶
func (args *MakeSwapArgs) ToData() ([]byte, error)
func (*MakeSwapArgs) ToParam ¶
func (args *MakeSwapArgs) ToParam() *MakeSwapParam
type MakeSwapParam ¶
type MakeSwapParam struct { FromAssetID Hash FromStartTime uint64 FromEndTime uint64 MinFromAmount *big.Int `json:",string"` ToAssetID Hash ToStartTime uint64 ToEndTime uint64 MinToAmount *big.Int `json:",string"` SwapSize *big.Int `json:",string"` Targes []Address Time *big.Int Description string }
MakeSwapParam wacom
type MixedcaseAddress ¶
type MixedcaseAddress struct {
// contains filtered or unexported fields
}
MixedcaseAddress retains the original string, which may or may not be correctly checksummed
func NewMixedcaseAddress ¶
func NewMixedcaseAddress(addr Address) MixedcaseAddress
NewMixedcaseAddress constructor (mainly for testing)
func NewMixedcaseAddressFromString ¶
func NewMixedcaseAddressFromString(hexaddr string) (*MixedcaseAddress, error)
NewMixedcaseAddressFromString is mainly meant for unit-testing
func (*MixedcaseAddress) Address ¶
func (ma *MixedcaseAddress) Address() Address
Address returns the address
func (*MixedcaseAddress) MarshalJSON ¶
func (ma *MixedcaseAddress) MarshalJSON() ([]byte, error)
MarshalJSON marshals the original value
func (*MixedcaseAddress) Original ¶
func (ma *MixedcaseAddress) Original() string
Original returns the mixed-case input string
func (*MixedcaseAddress) String ¶
func (ma *MixedcaseAddress) String() string
String implements fmt.Stringer
func (*MixedcaseAddress) UnmarshalJSON ¶
func (ma *MixedcaseAddress) UnmarshalJSON(input []byte) error
UnmarshalJSON parses MixedcaseAddress
func (*MixedcaseAddress) ValidChecksum ¶
func (ma *MixedcaseAddress) ValidChecksum() bool
ValidChecksum returns true if the address has valid checksum
type MultiSwap ¶
type MultiSwap struct { ID Hash Owner Address FromAssetID []Hash FromStartTime []uint64 FromEndTime []uint64 MinFromAmount []*big.Int `json:",string"` ToAssetID []Hash ToStartTime []uint64 ToEndTime []uint64 MinToAmount []*big.Int `json:",string"` SwapSize *big.Int `json:",string"` Targes []Address Time *big.Int // Provides information for TIME Description string Notation uint64 }
MultiSwap wacom
type PrettyAge ¶
PrettyAge is a pretty printed version of a time.Duration value that rounds the values up to a single most significant unit, days/weeks/years included.
type PrettyDuration ¶
PrettyDuration is a pretty printed version of a time.Duration value that cuts the unnecessary precision off from the formatted textual representation.
func (PrettyDuration) String ¶
func (d PrettyDuration) String() string
String implements the Stringer interface, allowing pretty printing of duration values rounded to three decimals.
type RecallMultiSwapArgs ¶
type RecallMultiSwapArgs struct { FusionBaseArgs SwapID Hash }
RecallMultiSwapArgs wacom
func (*RecallMultiSwapArgs) ToData ¶
func (args *RecallMultiSwapArgs) ToData() ([]byte, error)
func (*RecallMultiSwapArgs) ToParam ¶
func (args *RecallMultiSwapArgs) ToParam() *RecallMultiSwapParam
type RecallMultiSwapParam ¶
type RecallMultiSwapParam struct {
SwapID Hash
}
RecallMultiSwapParam wacom
func (*RecallMultiSwapParam) Check ¶
func (p *RecallMultiSwapParam) Check(blockNumber *big.Int, swap *MultiSwap) error
Check wacom
func (*RecallMultiSwapParam) ToBytes ¶
func (p *RecallMultiSwapParam) ToBytes() ([]byte, error)
ToBytes wacom
type RecallSwapArgs ¶
type RecallSwapArgs struct { FusionBaseArgs SwapID Hash }
RecallSwapArgs wacom
func (*RecallSwapArgs) ToData ¶
func (args *RecallSwapArgs) ToData() ([]byte, error)
func (*RecallSwapArgs) ToParam ¶
func (args *RecallSwapArgs) ToParam() *RecallSwapParam
type RecallSwapParam ¶
type RecallSwapParam struct {
SwapID Hash
}
RecallSwapParam wacom
type SendAssetArgs ¶
type SendAssetArgs struct { FusionBaseArgs AssetID Hash `json:"asset"` To Address `json:"to"` ToUSAN uint64 `json:"toUSAN"` Value *hexutil.Big `json:"value"` }
SendAssetArgs wacom
func (*SendAssetArgs) ToData ¶
func (args *SendAssetArgs) ToData() ([]byte, error)
func (*SendAssetArgs) ToParam ¶
func (args *SendAssetArgs) ToParam() *SendAssetParam
type SendAssetParam ¶
SendAssetParam wacom
type StorageSize ¶
type StorageSize float64
StorageSize is a wrapper around a float value that supports user friendly formatting.
func (StorageSize) String ¶
func (s StorageSize) String() string
String implements the stringer interface.
func (StorageSize) TerminalString ¶
func (s StorageSize) TerminalString() string
TerminalString implements log.TerminalStringer, formatting a string for console output during logging.
type Swap ¶
type Swap struct { ID Hash Owner Address FromAssetID Hash FromStartTime uint64 FromEndTime uint64 MinFromAmount *big.Int `json:",string"` ToAssetID Hash ToStartTime uint64 ToEndTime uint64 MinToAmount *big.Int `json:",string"` SwapSize *big.Int `json:",string"` Targes []Address Time *big.Int // Provides information for TIME Description string Notation uint64 }
Swap wacom
type TakeMultiSwapArgs ¶
type TakeMultiSwapArgs struct { FusionBaseArgs SwapID Hash Size *big.Int }
TakeSwapArgs wacom
func (*TakeMultiSwapArgs) ToData ¶
func (args *TakeMultiSwapArgs) ToData() ([]byte, error)
func (*TakeMultiSwapArgs) ToParam ¶
func (args *TakeMultiSwapArgs) ToParam() *TakeMultiSwapParam
type TakeMultiSwapParam ¶
TakeMultiSwapParam wacom
func (*TakeMultiSwapParam) ToBytes ¶
func (p *TakeMultiSwapParam) ToBytes() ([]byte, error)
ToBytes wacom
type TakeSwapArgs ¶
type TakeSwapArgs struct { FusionBaseArgs SwapID Hash Size *big.Int }
TakeSwapArgs wacom
func (*TakeSwapArgs) ToData ¶
func (args *TakeSwapArgs) ToData() ([]byte, error)
func (*TakeSwapArgs) ToParam ¶
func (args *TakeSwapArgs) ToParam() *TakeSwapParam
type Ticket ¶
type Ticket struct { Owner Address TicketBody }
func (*Ticket) MarshalJSON ¶
func (*Ticket) ToDisplay ¶
func (t *Ticket) ToDisplay() TicketDisplay
type TicketBody ¶
Ticket wacom
func (*TicketBody) BlockHeight ¶
func (t *TicketBody) BlockHeight() *big.Int
func (*TicketBody) IsInGenesis ¶
func (t *TicketBody) IsInGenesis() bool
func (*TicketBody) Value ¶
func (t *TicketBody) Value() *big.Int
type TicketBodySlice ¶
type TicketBodySlice []TicketBody
func (TicketBodySlice) DeepCopy ¶
func (s TicketBodySlice) DeepCopy() TicketBodySlice
type TicketDisplay ¶
type TicketPtrSlice ¶
type TicketPtrSlice []*Ticket
func (TicketPtrSlice) String ¶
func (s TicketPtrSlice) String() string
type TicketSlice ¶
type TicketSlice []Ticket
func (TicketSlice) DeepCopy ¶
func (s TicketSlice) DeepCopy() TicketSlice
func (TicketSlice) String ¶
func (s TicketSlice) String() string
func (TicketSlice) ToMap ¶
func (s TicketSlice) ToMap() map[Hash]TicketDisplay
type TicketsData ¶
type TicketsData struct { Owner Address Tickets TicketBodySlice }
func (TicketsData) DeepCopy ¶
func (s TicketsData) DeepCopy() TicketsData
func (TicketsData) ToMap ¶
func (s TicketsData) ToMap() map[Hash]TicketDisplay
func (TicketsData) ToTicketSlice ¶
func (s TicketsData) ToTicketSlice() TicketSlice
type TicketsDataSlice ¶
type TicketsDataSlice []TicketsData
func (TicketsDataSlice) AddTicket ¶
func (s TicketsDataSlice) AddTicket(ticket *Ticket) (TicketsDataSlice, error)
func (TicketsDataSlice) ClearExpiredTickets ¶
func (s TicketsDataSlice) ClearExpiredTickets(timestamp uint64) (TicketsDataSlice, error)
func (TicketsDataSlice) DeepCopy ¶
func (s TicketsDataSlice) DeepCopy() TicketsDataSlice
func (TicketsDataSlice) NumberOfOwners ¶
func (s TicketsDataSlice) NumberOfOwners() uint64
func (TicketsDataSlice) NumberOfTickets ¶
func (s TicketsDataSlice) NumberOfTickets() uint64
func (TicketsDataSlice) NumberOfTicketsAndOwners ¶
func (s TicketsDataSlice) NumberOfTicketsAndOwners() (uint64, uint64)
func (TicketsDataSlice) NumberOfTicketsByAddress ¶
func (s TicketsDataSlice) NumberOfTicketsByAddress(addr Address) uint64
func (TicketsDataSlice) RemoveTicket ¶
func (s TicketsDataSlice) RemoveTicket(id Hash) (TicketsDataSlice, error)
func (TicketsDataSlice) ToMap ¶
func (s TicketsDataSlice) ToMap() map[Hash]TicketDisplay
func (TicketsDataSlice) ToTicketSlice ¶
func (s TicketsDataSlice) ToTicketSlice() TicketSlice
type TimeLock ¶
type TimeLock struct {
Items []*TimeLockItem
}
///////////////////////////// TimeLock /////////////////////////// TimeLock wacom
func GetSurplusTimeLock ¶
func (*TimeLock) CheckValid ¶
func (z *TimeLock) CheckValid()
func (*TimeLock) ClearExpired ¶
func (*TimeLock) GetSpendableValue ¶
type TimeLockArgs ¶
type TimeLockArgs struct { SendAssetArgs StartTime *hexutil.Uint64 `json:"start"` EndTime *hexutil.Uint64 `json:"end"` TimeLockType TimeLockType `json:"type"` }
TimeLockArgs wacom
func (*TimeLockArgs) Init ¶
func (args *TimeLockArgs) Init(timeLockType TimeLockType)
func (*TimeLockArgs) ToData ¶
func (args *TimeLockArgs) ToData() ([]byte, error)
func (*TimeLockArgs) ToParam ¶
func (args *TimeLockArgs) ToParam() *TimeLockParam
type TimeLockItem ¶
TimeLockItem wacom
func (*TimeLockItem) Add ¶
func (z *TimeLockItem) Add(x *TimeLockItem) ([]*TimeLockItem, TailFlag)
func (*TimeLockItem) AdjustEnd ¶
func (z *TimeLockItem) AdjustEnd(endTime uint64) *TimeLockItem
func (*TimeLockItem) AdjustStart ¶
func (z *TimeLockItem) AdjustStart(startTime uint64) *TimeLockItem
func (*TimeLockItem) AdjustStartEnd ¶
func (z *TimeLockItem) AdjustStartEnd(startTime uint64, endTime uint64) *TimeLockItem
func (*TimeLockItem) CanMerge ¶
func (z *TimeLockItem) CanMerge(x *TimeLockItem) bool
func (*TimeLockItem) Clone ¶
func (z *TimeLockItem) Clone() *TimeLockItem
func (*TimeLockItem) EqualRange ¶
func (z *TimeLockItem) EqualRange(x *TimeLockItem) bool
func (*TimeLockItem) EqualTo ¶
func (z *TimeLockItem) EqualTo(x *TimeLockItem) bool
func (*TimeLockItem) IsValid ¶
func (z *TimeLockItem) IsValid() error
func (*TimeLockItem) MarshalJSON ¶
func (u *TimeLockItem) MarshalJSON() ([]byte, error)
func (*TimeLockItem) Merge ¶
func (z *TimeLockItem) Merge(x *TimeLockItem) *TimeLockItem
please ensure CanMerge condition is satisfied
func (*TimeLockItem) String ¶
func (z *TimeLockItem) String() string
func (*TimeLockItem) Sub ¶
func (z *TimeLockItem) Sub(x *TimeLockItem) ([]*TimeLockItem, *TimeLockItem)
type TimeLockParam ¶
type TimeLockParam struct { Type TimeLockType AssetID Hash To Address StartTime uint64 EndTime uint64 Value *big.Int `json:",string"` }
TimeLockParam wacom
type TimeLockType ¶
type TimeLockType uint
TimeLockType wacom
const ( AssetToTimeLock TimeLockType = iota TimeLockToTimeLock TimeLockToAsset SmartTransfer )
TimeLockTypes wacom
type TransferTimeLockParam ¶
type UnprefixedAddress ¶
type UnprefixedAddress Address
UnprefixedAddress allows marshaling an Address without 0x prefix.
func (UnprefixedAddress) MarshalText ¶
func (a UnprefixedAddress) MarshalText() ([]byte, error)
MarshalText encodes the address as hex.
func (*UnprefixedAddress) UnmarshalText ¶
func (a *UnprefixedAddress) UnmarshalText(input []byte) error
UnmarshalText decodes the address from hex. The 0x prefix is optional.
type UnprefixedHash ¶
type UnprefixedHash Hash
UnprefixedHash allows marshaling a Hash without 0x prefix.
func (UnprefixedHash) MarshalText ¶
func (h UnprefixedHash) MarshalText() ([]byte, error)
MarshalText encodes the hash as hex.
func (*UnprefixedHash) UnmarshalText ¶
func (h *UnprefixedHash) UnmarshalText(input []byte) error
UnmarshalText decodes the hash from hex. The 0x prefix is optional.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package bitutil implements fast bitwise operations.
|
Package bitutil implements fast bitwise operations. |
Package compiler wraps the Solidity compiler executable (solc).
|
Package compiler wraps the Solidity compiler executable (solc). |
Package hexutil implements hex encoding with 0x prefix.
|
Package hexutil implements hex encoding with 0x prefix. |
Package math provides integer math utilities.
|
Package math provides integer math utilities. |
Package mclock is a wrapper for a monotonic clock source
|
Package mclock is a wrapper for a monotonic clock source |
Package overflow offers overflow-checked integer arithmetic operations for int, int32, and int64.
|
Package overflow offers overflow-checked integer arithmetic operations for int, int32, and int64. |