types

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 15, 2018 License: Apache-2.0 Imports: 5 Imported by: 38

README

Lino Blockchain Types

This directory is used to define all models in our internal blockchain storage. For example we need to define account and post here.

For example, in account model, we need to define all account KVStore models and provide a middleware to interact with all models related operation.

Design Doc. Cosmos Example.

Documentation

Index

Constants

View Source
const (
	// Total decimals in Lino Blockchain
	Decimals = 100000

	// KVStoreKey presents store which used by app
	MainKVStoreKey      = "main"
	AccountKVStoreKey   = "account"
	PostKVStoreKey      = "post"
	ValidatorKVStoreKey = "validator"
	GlobalKVStoreKey    = "global"
	VoteKVStoreKey      = "vote"
	InfraKVStoreKey     = "infra"
	DeveloperKVStoreKey = "developer"
	ParamKVStoreKey     = "param"
	ProposalKVStoreKey  = "proposal"

	// RouterName for msg routing in app
	AccountRouterName   = "account"
	PostRouterName      = "post"
	ValidatorRouterName = "validator"
	VoteRouterName      = "vote"
	InfraRouterName     = "infra"
	DeveloperRouterName = "developer"
	ProposalRouterName  = "proposal"

	// Different permission level for msg
	UnknownPermission          = Permission(0)
	AppPermission              = Permission(1)
	TransactionPermission      = Permission(2)
	ResetPermission            = Permission(3)
	GrantAppPermission         = Permission(4)
	PreAuthorizationPermission = Permission(5)

	// Different proposal result
	ProposalNotPass = ProposalResult(0)
	ProposalPass    = ProposalResult(1)
	ProposalRevoked = ProposalResult(2)

	// Different proposal types
	ChangeParam       = ProposalType(0)
	ContentCensorship = ProposalType(1)
	ProtocolUpgrade   = ProposalType(2)

	// Different donation types
	DirectDeposit = DonationType(0)
	Inflation     = DonationType(1)

	// Different possible incomes
	TransferIn           = TransferDetailType(0)
	DonationIn           = TransferDetailType(1)
	ClaimReward          = TransferDetailType(2)
	ValidatorInflation   = TransferDetailType(3)
	DeveloperInflation   = TransferDetailType(4)
	InfraInflation       = TransferDetailType(5)
	VoteReturnCoin       = TransferDetailType(6)
	DelegationReturnCoin = TransferDetailType(7)
	ValidatorReturnCoin  = TransferDetailType(8)
	DeveloperReturnCoin  = TransferDetailType(9)
	InfraReturnCoin      = TransferDetailType(10)
	ProposalReturnCoin   = TransferDetailType(11)
	GenesisCoin          = TransferDetailType(12)

	// Different possible outcomes
	TransferOut      = TransferDetailType(13)
	DonationOut      = TransferDetailType(14)
	Delegate         = TransferDetailType(15)
	VoterDeposit     = TransferDetailType(16)
	ValidatorDeposit = TransferDetailType(17)
	DeveloperDeposit = TransferDetailType(18)
	InfraDeposit     = TransferDetailType(19)
	ProposalDeposit  = TransferDetailType(20)

	// punishment type
	UnknownPunish      = PunishType(0)
	PunishByzantine    = PunishType(1)
	PunishAbsentCommit = PunishType(2)
	PunishDidntVote    = PunishType(3)

	// UsernameReCheck is used to check user registration
	UsernameReCheck = "^[a-z0-9]([a-z0-9_]){2,20}$"

	// MinimumUsernameLength minimum username length
	MinimumUsernameLength = 3

	// MaximumUsernameLength maximum username length
	MaximumUsernameLength = 20

	// MaximumMemoLength denotes the maximum length of memo
	MaximumMemoLength = 100

	// MaximumJSONMeta denotes the maximum length of account JSON meta
	MaximumJSONMetaLength = 500

	// DefaultAcitivityBurden for user when account is registered
	DefaultActivityBurden = 100

	// MinimumUsernameLength minimum username length
	MaxPostTitleLength = 50

	// MaximumUsernameLength maximum username length
	MaxPostContentLength = 1000

	// MaxLikeWeight indicates the 100.00% maximum like weight.
	MaxLikeWeight = 10000

	// MinLikeWeight indicates the -100.00% maximum like weight.
	MinLikeWeight = -10000

	// KeySeparator used to separate different key component
	KeySeparator = "/"

	// as defined by a julian year of 365.25 days
	HoursPerYear = 8766

	// as defined by a julian year of 365.25 days
	MinutesPerYear = HoursPerYear * 60

	// as defined by a julian year of 365.25 days
	MinutesPerMonth = MinutesPerYear / 12

	// all decimals will around to allow at most 3 decimals
	PrecisionFactor = 10000000

	// precision used in sdk NewRatFromDecimal
	NewRatFromDecimalPrecision = 5

	// Maximum length of sdk.Rat can pass into blockchain
	MaximumSdkRatLength = 10

	// Maximum length of Links identifier
	MaximumLinkIdentifier = 20

	// Maximum length of Links URL
	MaximumLinkURL = 100

	// Maximum length of post ID
	MaximumLengthOfPostID = 50

	// Maximum number of links per post
	MaximumNumOfLinks = 10

	// Maximum length of developer website
	MaximumLengthOfDeveloperWebsite = 100

	// Maximum length of developer description
	MaximumLengthOfDeveloperDesctiption = 1000

	// Maximum length of developer App meta data
	MaximumLengthOfAppMetadata = 1000

	// Maximum length of proposal reason
	MaximumLengthOfProposalReason = 1000

	// Init account with full stake memo
	InitAccountWithFullStakeMemo = "init deposit"

	// Init account deposit fee memo
	InitAccountRegisterDepositMemo = "init deposit"

	// Permlink separator
	PermlinkSeparator = "#"

	// Bundle size for balance history
	BalanceHistoryBundleSize = 100
	// Bundle size for reward history
	RewardHistoryBundleSize = 100
)
View Source
const (
	// See https://github.com/cosmos/cosmos-sdk/issues/766
	LinoErrorCodeSpace = 11

	// Lino common errors reserve 100 ~ 149
	CodeInvalidUsername     sdk.CodeType = 100
	CodeAccountNotFound     sdk.CodeType = 101
	CodeFailedToMarshal     sdk.CodeType = 102
	CodeFailedToUnmarshal   sdk.CodeType = 103
	CodeIllegalWithdraw     sdk.CodeType = 104
	CodeInsufficientDeposit sdk.CodeType = 105
	CodeInvalidCoin         sdk.CodeType = 106
	CodePostNotFound        sdk.CodeType = 107
	CodeDeveloperNotFound   sdk.CodeType = 108
	CodeInvalidCoins        sdk.CodeType = 109

	// Lino authenticate errors reserve 150 ~ 199
	CodeIncorrectStdTxType   sdk.CodeType = 150
	CodeNoSignatures         sdk.CodeType = 151
	CodeUnknownMsgType       sdk.CodeType = 152
	CodeWrongNumberOfSigners sdk.CodeType = 153
	CodeInvalidSequence      sdk.CodeType = 154
	CodeUnverifiedBytes      sdk.CodeType = 155

	// ABCI Response Codes
	CodeGenesisFailed sdk.CodeType = 200

	// Lino account errors reserve 300 ~ 399
	CodeRewardNotFound                     sdk.CodeType = 300
	CodeAccountMetaNotFound                sdk.CodeType = 301
	CodeAccountInfoNotFound                sdk.CodeType = 302
	CodeAccountBankNotFound                sdk.CodeType = 303
	CodePendingStakeQueueNotFound          sdk.CodeType = 304
	CodeGrantPubKeyNotFound                sdk.CodeType = 305
	CodeFailedToMarshalAccountInfo         sdk.CodeType = 306
	CodeFailedToMarshalAccountBank         sdk.CodeType = 307
	CodeFailedToMarshalAccountMeta         sdk.CodeType = 308
	CodeFailedToMarshalFollowerMeta        sdk.CodeType = 309
	CodeFailedToMarshalFollowingMeta       sdk.CodeType = 310
	CodeFailedToMarshalReward              sdk.CodeType = 311
	CodeFailedToMarshalPendingStakeQueue   sdk.CodeType = 312
	CodeFailedToMarshalGrantPubKey         sdk.CodeType = 313
	CodeFailedToMarshalRelationship        sdk.CodeType = 314
	CodeFailedToMarshalBalanceHistory      sdk.CodeType = 315
	CodeFailedToUnmarshalAccountInfo       sdk.CodeType = 316
	CodeFailedToUnmarshalAccountBank       sdk.CodeType = 317
	CodeFailedToUnmarshalAccountMeta       sdk.CodeType = 318
	CodeFailedToUnmarshalReward            sdk.CodeType = 319
	CodeFailedToUnmarshalPendingStakeQueue sdk.CodeType = 320
	CodeFailedToUnmarshalGrantPubKey       sdk.CodeType = 321
	CodeFailedToUnmarshalRelationship      sdk.CodeType = 322
	CodeFailedToUnmarshalBalanceHistory    sdk.CodeType = 323
	CodeFolloweeNotFound                   sdk.CodeType = 324
	CodeFollowerNotFound                   sdk.CodeType = 325
	CodeReceiverNotFound                   sdk.CodeType = 326
	CodeSenderNotFound                     sdk.CodeType = 327
	CodeReferrerNotFound                   sdk.CodeType = 328
	CodeAddSavingCoinWithFullStake         sdk.CodeType = 329
	CodeAddSavingCoin                      sdk.CodeType = 330
	CodeInvalidMemo                        sdk.CodeType = 331
	CodeInvalidJSONMeta                    sdk.CodeType = 332
	CodeCheckResetKey                      sdk.CodeType = 333
	CodeCheckTransactionKey                sdk.CodeType = 334
	CodeCheckGrantAppKey                   sdk.CodeType = 335
	CodeCheckAuthenticatePubKeyOwner       sdk.CodeType = 336
	CodeGrantKeyExpired                    sdk.CodeType = 337
	CodeGrantKeyNoLeftTimes                sdk.CodeType = 338
	CodeGrantKeyMismatch                   sdk.CodeType = 339
	CodeAppGrantKeyMismatch                sdk.CodeType = 340
	CodeGetResetKey                        sdk.CodeType = 341
	CodeGetTransactionKey                  sdk.CodeType = 342
	CodeGetAppKey                          sdk.CodeType = 343
	CodeGetSavingFromBank                  sdk.CodeType = 344
	CodeGetSequence                        sdk.CodeType = 345
	CodeGetLastReportOrUpvoteAt            sdk.CodeType = 346
	CodeUpdateLastReportOrUpvoteAt         sdk.CodeType = 347
	CodeGetFrozenMoneyList                 sdk.CodeType = 348
	CodeIncreaseSequenceByOne              sdk.CodeType = 349
	CodeGrantTimesExceedsLimitation        sdk.CodeType = 350
	CodeUnsupportGrantLevel                sdk.CodeType = 351
	CodeRevokePermissionLevelMismatch      sdk.CodeType = 352
	CodeCheckUserTPSCapacity               sdk.CodeType = 353
	CodeAccountTPSCapacityNotEnough        sdk.CodeType = 354
	CodeAccountSavingCoinNotEnough         sdk.CodeType = 355
	CodeAccountAlreadyExists               sdk.CodeType = 356
	CodeRegisterFeeInsufficient            sdk.CodeType = 357
	CodeFailedToMarshalRewardHistory       sdk.CodeType = 358
	CodeFailedToUnmarshalRewardHistory     sdk.CodeType = 359

	// Lino post errors reserve 400 ~ 499
	CodePostMetaNotFound                     sdk.CodeType = 400
	CodePostReportOrUpvoteNotFound           sdk.CodeType = 401
	CodePostCommentNotFound                  sdk.CodeType = 402
	CodePostViewNotFound                     sdk.CodeType = 403
	CodePostDonationNotFound                 sdk.CodeType = 404
	CodeFailedToMarshalPostInfo              sdk.CodeType = 405
	CodeFailedToMarshalPostMeta              sdk.CodeType = 406
	CodeFailedToMarshalPostReportOrUpvote    sdk.CodeType = 407
	CodeFailedToMarshalPostComment           sdk.CodeType = 408
	CodeFailedToMarshalPostView              sdk.CodeType = 409
	CodeFailedToMarshalPostDonations         sdk.CodeType = 410
	CodeFailedToUnmarshalPostInfo            sdk.CodeType = 411
	CodeFailedToUnmarshalPostMeta            sdk.CodeType = 412
	CodeFailedToUnmarshalPostReportOrUpvote  sdk.CodeType = 413
	CodeFailedToUnmarshalPostComment         sdk.CodeType = 414
	CodeFailedToUnmarshalPostView            sdk.CodeType = 415
	CodeFailedToUnmarshalPostDonations       sdk.CodeType = 416
	CodePostAlreadyExist                     sdk.CodeType = 417
	CodeInvalidPostRedistributionSplitRate   sdk.CodeType = 418
	CodeDonatePostIsDeleted                  sdk.CodeType = 419
	CodeCannotDonateToSelf                   sdk.CodeType = 420
	CodeProcessSourceDonation                sdk.CodeType = 421
	CodeProcessDonation                      sdk.CodeType = 422
	CodeUpdatePostIsDeleted                  sdk.CodeType = 423
	CodeReportOrUpvoteTooOften               sdk.CodeType = 424
	CodeReportOrUpvoteAlreadyExist           sdk.CodeType = 425
	CodeNoPostID                             sdk.CodeType = 426
	CodePostIDTooLong                        sdk.CodeType = 427
	CodeNoAuthor                             sdk.CodeType = 428
	CodeNoUsername                           sdk.CodeType = 429
	CodeCommentAndRepostConflict             sdk.CodeType = 430
	CodePostTitleExceedMaxLength             sdk.CodeType = 431
	CodePostContentExceedMaxLength           sdk.CodeType = 432
	CodeRedistributionSplitRateLengthTooLong sdk.CodeType = 433
	CodeIdentifierLengthTooLong              sdk.CodeType = 434
	CodeURLLengthTooLong                     sdk.CodeType = 435
	CodeTooManyURL                           sdk.CodeType = 436
	CodeInvalidTarget                        sdk.CodeType = 437
	CodeCreatePostSourceInvalid              sdk.CodeType = 438
	CodeGetSourcePost                        sdk.CodeType = 439

	// Lino validator errors reserve 500 ~ 599
	CodeValidatorNotFound              sdk.CodeType = 500
	CodeValidatorListNotFound          sdk.CodeType = 501
	CodeFailedToMarshalValidator       sdk.CodeType = 502
	CodeFailedToMarshalValidatorList   sdk.CodeType = 503
	CodeFailedToUnmarshalValidator     sdk.CodeType = 504
	CodeFailedToUnmarshalValidatorList sdk.CodeType = 505
	CodeUnbalancedAccount              sdk.CodeType = 506
	CodeValidatorPubKeyAlreadyExist    sdk.CodeType = 507

	// Lino global errors reserve 600 ~ 699
	CodeInfraInflationCoinConversion     sdk.CodeType = 600
	CodeContentCreatorCoinConversion     sdk.CodeType = 601
	CodeDeveloperCoinConversion          sdk.CodeType = 602
	CodeValidatorCoinConversion          sdk.CodeType = 603
	CodeGlobalMetaNotFound               sdk.CodeType = 604
	CodeInflationPoolNotFound            sdk.CodeType = 605
	CodeGlobalConsumptionMetaNotFound    sdk.CodeType = 606
	CodeGlobalTPSNotFound                sdk.CodeType = 607
	CodeFailedToMarshalTimeEventList     sdk.CodeType = 608
	CodeFailedToMarshalGlobalMeta        sdk.CodeType = 609
	CodeFailedToMarshalInflationPoll     sdk.CodeType = 610
	CodeFailedToMarshalConsumptionMeta   sdk.CodeType = 611
	CodeFailedToMarshalTPS               sdk.CodeType = 612
	CodeFailedToUnmarshalTimeEventList   sdk.CodeType = 613
	CodeFailedToUnmarshalGlobalMeta      sdk.CodeType = 614
	CodeFailedToUnmarshalInflationPool   sdk.CodeType = 615
	CodeFailedToUnmarshalConsumptionMeta sdk.CodeType = 616
	CodeFailedToUnmarshalTPS             sdk.CodeType = 617
	CodeRegisterExpiredEvent             sdk.CodeType = 618
	CodeFailedToUnmarshalTime            sdk.CodeType = 619
	CodeFailedToMarshalTime              sdk.CodeType = 620
	CodeGlobalTimeNotFound               sdk.CodeType = 621

	// Vote errors reserve 700 ~ 799
	CodeVoterNotFound                  sdk.CodeType = 700
	CodeVoteNotFound                   sdk.CodeType = 701
	CodeReferenceListNotFound          sdk.CodeType = 702
	CodeDelegationNotFound             sdk.CodeType = 703
	CodeFailedToMarshalVoter           sdk.CodeType = 704
	CodeFailedToMarshalVote            sdk.CodeType = 705
	CodeFailedToMarshalDelegation      sdk.CodeType = 706
	CodeFailedToMarshalReferenceList   sdk.CodeType = 707
	CodeFailedToUnmarshalVoter         sdk.CodeType = 708
	CodeFailedToUnmarshalVote          sdk.CodeType = 709
	CodeFailedToUnmarshalDelegation    sdk.CodeType = 710
	CodeFailedToUnmarshalReferenceList sdk.CodeType = 711
	CodeValidatorCannotRevoke          sdk.CodeType = 712
	CodeVoteAlreadyExist               sdk.CodeType = 713

	// Lino infra errors reserve 800 ~ 899
	CodeInfraProviderNotFound              sdk.CodeType = 800
	CodeInfraProviderListNotFound          sdk.CodeType = 801
	CodeFailedToMarshalInfraProvider       sdk.CodeType = 802
	CodeFailedToMarshalInfraProviderList   sdk.CodeType = 803
	CodeFailedToUnmarshalInfraProvider     sdk.CodeType = 804
	CodeFailedToUnmarshalInfraProviderList sdk.CodeType = 805
	CodeInvalidUsage                       sdk.CodeType = 806

	// Lino developer errors reserve 900 ~ 999
	CodeDeveloperListNotFound          sdk.CodeType = 900
	CodeFailedToMarshalDeveloper       sdk.CodeType = 901
	CodeFailedToMarshalDeveloperList   sdk.CodeType = 902
	CodeFailedToUnmarshalDeveloper     sdk.CodeType = 903
	CodeFailedToUnmarshalDeveloperList sdk.CodeType = 904
	CodeDeveloperAlreadyExist          sdk.CodeType = 905
	CodeInsufficientDeveloperDeposit   sdk.CodeType = 906
	CodeInvalidAuthorizedApp           sdk.CodeType = 907
	CodeInvalidValidityPeriod          sdk.CodeType = 908
	CodeGrantPermissionTooHigh         sdk.CodeType = 909
	CodeInvalidWebsite                 sdk.CodeType = 910
	CodeInvalidDescription             sdk.CodeType = 911
	CodeInvalidAppMetadata             sdk.CodeType = 912

	// Param errors reserve 1000 ~ 1099
	CodeParamHolderGenesisError                       sdk.CodeType = 1000
	CodeDeveloperParamNotFound                        sdk.CodeType = 1001
	CodeValidatorParamNotFound                        sdk.CodeType = 1002
	CodeCoinDayParamNotFound                          sdk.CodeType = 1003
	CodeBandwidthParamNotFound                        sdk.CodeType = 1004
	CodeAccountParamNotFound                          sdk.CodeType = 1005
	CodeVoteParamNotFound                             sdk.CodeType = 1006
	CodeProposalParamNotFound                         sdk.CodeType = 1007
	CodeGlobalAllocationParamNotFound                 sdk.CodeType = 1008
	CodeInfraAllocationParamNotFound                  sdk.CodeType = 1009
	CodePostParamNotFound                             sdk.CodeType = 1010
	CodeInvalidaParameter                             sdk.CodeType = 1011
	CodeEvaluateOfContentValueParamNotFound           sdk.CodeType = 1012
	CodeFailedToUnmarshalGlobalAllocationParam        sdk.CodeType = 1013
	CodeFailedToUnmarshalPostParam                    sdk.CodeType = 1014
	CodeFailedToUnmarshalValidatorParam               sdk.CodeType = 1015
	CodeFailedToUnmarshalEvaluateOfContentValueParam  sdk.CodeType = 1016
	CodeFailedToUnmarshalInfraInternalAllocationParam sdk.CodeType = 1017
	CodeFailedToUnmarshalDeveloperParam               sdk.CodeType = 1018
	CodeFailedToUnmarshalVoteParam                    sdk.CodeType = 1019
	CodeFailedToUnmarshalProposalParam                sdk.CodeType = 1020
	CodeFailedToUnmarshalCoinDayParam                 sdk.CodeType = 1021
	CodeFailedToUnmarshalBandwidthParam               sdk.CodeType = 1022
	CodeFailedToUnmarshalAccountParam                 sdk.CodeType = 1023
	CodeFailedToMarshalGlobalAllocationParam          sdk.CodeType = 1024
	CodeFailedToMarshalPostParam                      sdk.CodeType = 1025
	CodeFailedToMarshalValidatorParam                 sdk.CodeType = 1026
	CodeFailedToMarshalEvaluateOfContentValueParam    sdk.CodeType = 1027
	CodeFailedToMarshalInfraInternalAllocationParam   sdk.CodeType = 1028
	CodeFailedToMarshalDeveloperParam                 sdk.CodeType = 1029
	CodeFailedToMarshalVoteParam                      sdk.CodeType = 1030
	CodeFailedToMarshalProposalParam                  sdk.CodeType = 1031
	CodeFailedToMarshalCoinDayParam                   sdk.CodeType = 1032
	CodeFailedToMarshalBandwidthParam                 sdk.CodeType = 1033
	CodeFailedToMarshalAccountParam                   sdk.CodeType = 1034

	// Proposal errors reserve 1100 ~ 1199
	CodeOngoingProposalNotFound         sdk.CodeType = 1100
	CodeCensorshipPostNotFound          sdk.CodeType = 1101
	CodeProposalNotFound                sdk.CodeType = 1102
	CodeProposalListNotFound            sdk.CodeType = 1103
	CodeNextProposalIDNotFound          sdk.CodeType = 1104
	CodeFailedToMarshalProposal         sdk.CodeType = 1105
	CodeFailedToMarshalProposalList     sdk.CodeType = 1106
	CodeFailedToMarshalNextProposalID   sdk.CodeType = 1107
	CodeFailedToUnmarshalProposal       sdk.CodeType = 1108
	CodeFailedToUnmarshalProposalList   sdk.CodeType = 1109
	CodeFailedToUnmarshalNextProposalID sdk.CodeType = 1110
	CodeCensorshipPostIsDeleted         sdk.CodeType = 1111
	CodeNotOngoingProposal              sdk.CodeType = 1112
	CodeIncorrectProposalType           sdk.CodeType = 1113
	CodeInvalidPermlink                 sdk.CodeType = 1114
	CodeInvalidLink                     sdk.CodeType = 1115
	CodeIllegalParameter                sdk.CodeType = 1116
	CodeReasonTooLong                   sdk.CodeType = 1117
)

Variables

View Source
var (
	LowerBoundRat = big.NewRat(1, Decimals)
	UpperBoundRat = big.NewRat(math.MaxInt64/Decimals, 1)
)

Functions

func ErrInvalidCoins

func ErrInvalidCoins(msg string) sdk.Error

func NewError

func NewError(code sdk.CodeType, msg string) sdk.Error

NewError - create an error

func RegisterWire

func RegisterWire(cdc *wire.Codec)

Register the lino message type

Types

type AccountKey

type AccountKey string

AccountKey key format in KVStore

type CapacityLevel

type CapacityLevel int

msg CapacityLevel, different level cost different user capacity

type Coin

type Coin struct {
	// Amount *big.Int `json:"amount"`
	Amount sdk.Int `json:"amount"`
}

Coin holds some amount of one currency

func LinoToCoin

func LinoToCoin(lino LNO) (Coin, sdk.Error)

func NewCoinFromBigInt

func NewCoinFromBigInt(amount *big.Int) Coin

func NewCoinFromInt64

func NewCoinFromInt64(amount int64) Coin

func NewCoinFromString

func NewCoinFromString(amount string) (Coin, bool)

func RatToCoin

func RatToCoin(rat sdk.Rat) Coin

func (Coin) IsEqual

func (coin Coin) IsEqual(other Coin) bool

IsEqual returns true if the two sets of Coins have the same value

func (Coin) IsGT

func (coin Coin) IsGT(other Coin) bool

IsGT returns true if the receiver is greater value

func (Coin) IsGTE

func (coin Coin) IsGTE(other Coin) bool

IsGTE returns true if they are the same type and the receiver is an equal or greater value

func (Coin) IsNotNegative

func (coin Coin) IsNotNegative() bool

IsNotNegative returns true if coin amount is not negative

func (Coin) IsPositive

func (coin Coin) IsPositive() bool

IsPositive returns true if coin amount is positive

func (Coin) IsZero

func (coin Coin) IsZero() bool

IsZero returns if this represents no money

func (Coin) Minus

func (coin Coin) Minus(coinB Coin) Coin

Subtracts amounts of two coins with same denom

func (Coin) Plus

func (coin Coin) Plus(coinB Coin) Coin

Adds amounts of two coins with same denom

func (Coin) String

func (coin Coin) String() string

String provides a human-readable representation of a coin

func (Coin) ToInt64

func (coin Coin) ToInt64() int64

func (Coin) ToRat

func (coin Coin) ToRat() sdk.Rat

type DonationType

type DonationType int

indicates donation type

type Event

type Event interface{}

type IDToURLMapping

type IDToURLMapping struct {
	Identifier string `json:"identifier"`
	URL        string `json:"url"`
}

Donation struct, only used in Donation

type LNO

type LNO = string

type Msg

type Msg interface {
	sdk.Msg
	GetPermission() Permission
	GetConsumeAmount() Coin
}

Transactions messages must fulfill the Msg

type PenaltyList

type PenaltyList struct {
	PenaltyList []AccountKey `json:"penalty_list"`
}

type Permission

type Permission int

user permission type to present different permission for different msg

type Permlink string

Permlink key format in KVStore

func GetPermlink(author AccountKey, postID string) Permlink

GetPostKey try to generate PostKey from types.AccountKey and PostID

type ProposalKey

type ProposalKey string

ProposalKey key format in KVStore

type ProposalResult

type ProposalResult int

indicates the current proposal status

type ProposalType

type ProposalType int

indicates proposal type

type PunishType

type PunishType int

indicates the type of punishment for oncall validators

type TimeEventList

type TimeEventList struct {
	Events []Event `json:"events"`
}

Minute -> TimeEventList

type TransferDetailType

type TransferDetailType int

indicates all possible balance behavior types

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL