Documentation ¶
Index ¶
- Constants
- Variables
- func CanUpgrade(currentMembershipType string, newMembershipType string) bool
- func IsMembershipTypeValid(membershipType string) bool
- func RegisterCodec(cdc *codec.Codec)
- type Credential
- type Credentials
- type Invite
- type InviteStatus
- type Invites
- type Membership
- type Memberships
- type MsgAddTsp
- type MsgBuyMembership
- type MsgDepositIntoLiquidityPool
- func (msg MsgDepositIntoLiquidityPool) GetSignBytes() []byte
- func (msg MsgDepositIntoLiquidityPool) GetSigners() []sdk.AccAddress
- func (msg MsgDepositIntoLiquidityPool) Route() string
- func (msg MsgDepositIntoLiquidityPool) Type() string
- func (msg MsgDepositIntoLiquidityPool) ValidateBasic() sdk.Error
- type MsgInviteUser
- type MsgSetBlackMembership
- type MsgSetUserVerified
Constants ¶
const ( ModuleName = "accreditations" StoreKey = ModuleName RouterKey = ModuleName QuerierRoute = ModuleName // --- Keeper MembershipsStorageKey = StoreKey + ":storage:" StableCreditsStoreKey = StoreKey + ":stableCreditsDenom" TrustedSignersStoreKey = StoreKey + ":signers" InviteStorePrefix = "invite:" CredentialsStorePrefix = "credentials:" // --- Messages MsgTypeInviteUser = "inviteUser" MsgTypeSetUserVerified = "setUserVerified" MsgTypesDepositIntoLiquidityPool = "depositIntoLiquidityPool" MsgTypeAddTsp = "addTsp" MsgTypeBuyMembership = "buyMembership" MsgTypeSetBlackMembership = "setBlackMembership" QueryGetInvites = "invites" QueryGetTrustedServiceProviders = "tsps" QueryGetPoolFunds = "poolFunds" QueryGetMembership = "memberships" )
const ( MembershipTypeBronze = "bronze" MembershipTypeSilver = "silver" MembershipTypeGold = "gold" MembershipTypeBlack = "black" )
Variables ¶
var ModuleCdc *codec.Codec
Functions ¶
func CanUpgrade ¶
CanUpgrade returns true iff the currentMembershipType is a less important than the newMembership type and thus a user having a membership of the first type can upgrade to a one of the second type.
func IsMembershipTypeValid ¶
IsMembershipTypeValid returns true iff the given membership type if valid
func RegisterCodec ¶
RegisterCodec registers concrete types on wire codec
Types ¶
type Credential ¶ added in v1.3.0
type Credential struct { Timestamp int64 `json:"timestamp"` // Block height at which the credential has been inserted User sdk.AccAddress `json:"user"` Verifier sdk.AccAddress `json:"verifier"` }
func NewCredential ¶ added in v1.3.2
func NewCredential(user, verifier sdk.AccAddress, blockHeight int64) Credential
func (Credential) Empty ¶ added in v1.3.2
func (c Credential) Empty() bool
func (Credential) Equals ¶ added in v1.3.0
func (c Credential) Equals(other Credential) bool
type Credentials ¶ added in v1.3.0
type Credentials []Credential
Credentials represent a slice of Credential objects
func (Credentials) AppendIfMissing ¶ added in v1.3.0
func (credentials Credentials) AppendIfMissing(credential Credential) (Credentials, bool)
AppendIfMissing returns a new Credentials object containing the given credential. If the credential has been appended because previously missing, returns true. Otherwise returns false.
func (Credentials) Contains ¶ added in v1.3.0
func (credentials Credentials) Contains(credential Credential) bool
Contains returns true of the given credentials is contained inside the credentials slice
type Invite ¶ added in v1.3.0
type Invite struct { Sender sdk.AccAddress `json:"sender"` // User that has sent the invitation SenderMembership string `json:"sender_membership"` // Membership of Sender when the invite was created User sdk.AccAddress `json:"user"` // Invited user Status InviteStatus `json:"status"` // Tells if the invite is pending, rewarded or invalid }
Invite represents an invitation that a user has made towards another user
func NewInvite ¶ added in v1.3.2
func NewInvite(sender, user sdk.AccAddress, senderMembership string) Invite
NewInvite creates a new invite object representing an invitation from the sender to the specified user. By default, NewInvite returns a Pending invite.
func (Invite) Equals ¶ added in v1.3.2
Equals returns true iff invite contains the same data of the other invite
func (Invite) ValidateBasic ¶ added in v1.5.0
type InviteStatus ¶ added in v1.5.0
type InviteStatus uint8
const ( InviteStatusPending InviteStatus = iota InviteStatusRewarded InviteStatusInvalid )
type Membership ¶
type Membership struct { Owner sdk.AccAddress `json:"owner"` MembershipType string `json:"membership_type"` }
Membership contains the data of a membership associated to a specific user
func NewMembership ¶ added in v1.3.2
func NewMembership(membershipType string, owner sdk.AccAddress) Membership
NewMembership returns a new memberships containing the given data
func (Membership) Equals ¶ added in v1.3.2
func (m Membership) Equals(other Membership) bool
Equals returns true iff m and other contain the same data
type Memberships ¶ added in v1.3.2
type Memberships []Membership
Memberships represents a slice of Membership objects
func (Memberships) AppendIfMissing ¶ added in v1.3.2
func (slice Memberships) AppendIfMissing(other Membership) (Memberships, bool)
AppendIfMissing appends the other membership to the given slice, returning the result of the appending
func (Memberships) Equals ¶ added in v1.3.2
func (slice Memberships) Equals(other Memberships) bool
Equals returns true if this slice and the other one contain the same memberships in the same exact order
type MsgAddTsp ¶ added in v1.3.0
type MsgAddTsp struct { Tsp sdk.AccAddress `json:"tsp"` Government sdk.AccAddress `json:"government"` }
MsgAddTsp should be used when wanting to add a new address as a Trusted Service Provider (TSP). TSPs will be able to sign rewarding-giving transactions so should be only a handful of very trusted accounts.
func NewMsgAddTsp ¶ added in v1.3.0
func NewMsgAddTsp(tsp, government sdk.AccAddress) MsgAddTsp
func (MsgAddTsp) GetSignBytes ¶ added in v1.3.0
GetSignBytes Implements Msg.
func (MsgAddTsp) GetSigners ¶ added in v1.3.0
func (msg MsgAddTsp) GetSigners() []sdk.AccAddress
GetSigners Implements Msg.
func (MsgAddTsp) ValidateBasic ¶ added in v1.3.0
ValidateBasic Implements Msg.
type MsgBuyMembership ¶ added in v1.3.0
type MsgBuyMembership struct { MembershipType string `json:"membership_type"` // Membership type to be bought Buyer sdk.AccAddress `json:"buyer"` // Buyer address }
MsgBuyMembership allows a user to buy a membership. In order to be able to perform such an action, the following requirements should be met: 1. The user has been invited from a member already having a membership 2. The user has been verified from a TSP 3. The user has enough stable credits in his wallet
func NewMsgBuyMembership ¶ added in v1.3.0
func NewMsgBuyMembership(membershipType string, buyer sdk.AccAddress) MsgBuyMembership
func (MsgBuyMembership) GetSignBytes ¶ added in v1.3.0
func (msg MsgBuyMembership) GetSignBytes() []byte
GetSignBytes Implements Msg.
func (MsgBuyMembership) GetSigners ¶ added in v1.3.0
func (msg MsgBuyMembership) GetSigners() []sdk.AccAddress
GetSigners Implements Msg.
func (MsgBuyMembership) Route ¶ added in v1.3.0
func (msg MsgBuyMembership) Route() string
Route Implements Msg.
func (MsgBuyMembership) Type ¶ added in v1.3.0
func (msg MsgBuyMembership) Type() string
Type Implements Msg.
func (MsgBuyMembership) ValidateBasic ¶ added in v1.3.0
func (msg MsgBuyMembership) ValidateBasic() sdk.Error
ValidateBasic Implements Msg.
type MsgDepositIntoLiquidityPool ¶ added in v1.3.0
type MsgDepositIntoLiquidityPool struct { Depositor sdk.AccAddress `json:"depositor"` Amount sdk.Coins `json:"amount"` }
MsgDepositIntoLiquidityPool should be used when wanting to deposit a specific amount into the liquidity pool which contains the total amount of rewards to be distributed upon an accreditation
func NewMsgDepositIntoLiquidityPool ¶ added in v1.3.0
func NewMsgDepositIntoLiquidityPool(amount sdk.Coins, depositor sdk.AccAddress) MsgDepositIntoLiquidityPool
func (MsgDepositIntoLiquidityPool) GetSignBytes ¶ added in v1.3.0
func (msg MsgDepositIntoLiquidityPool) GetSignBytes() []byte
GetSignBytes Implements Msg.
func (MsgDepositIntoLiquidityPool) GetSigners ¶ added in v1.3.0
func (msg MsgDepositIntoLiquidityPool) GetSigners() []sdk.AccAddress
GetSigners Implements Msg.
func (MsgDepositIntoLiquidityPool) Route ¶ added in v1.3.0
func (msg MsgDepositIntoLiquidityPool) Route() string
Route Implements Msg.
func (MsgDepositIntoLiquidityPool) Type ¶ added in v1.3.0
func (msg MsgDepositIntoLiquidityPool) Type() string
Type Implements Msg.
func (MsgDepositIntoLiquidityPool) ValidateBasic ¶ added in v1.3.0
func (msg MsgDepositIntoLiquidityPool) ValidateBasic() sdk.Error
ValidateBasic Implements Msg.
type MsgInviteUser ¶ added in v1.3.0
type MsgInviteUser struct { Recipient sdk.AccAddress `json:"recipient"` Sender sdk.AccAddress `json:"sender"` }
MsgInviteUser allows to properly invite a user. Te invitation system should be a one-invite-only system, where invites consecutive to the first one should be discarded.
func NewMsgInviteUser ¶ added in v1.3.0
func NewMsgInviteUser(sender, recipient sdk.AccAddress) MsgInviteUser
func (MsgInviteUser) GetSignBytes ¶ added in v1.3.0
func (msg MsgInviteUser) GetSignBytes() []byte
GetSignBytes Implements Msg.
func (MsgInviteUser) GetSigners ¶ added in v1.3.0
func (msg MsgInviteUser) GetSigners() []sdk.AccAddress
GetSigners Implements Msg.
func (MsgInviteUser) Route ¶ added in v1.3.0
func (msg MsgInviteUser) Route() string
Route Implements Msg.
func (MsgInviteUser) Type ¶ added in v1.3.0
func (msg MsgInviteUser) Type() string
Type Implements Msg.
func (MsgInviteUser) ValidateBasic ¶ added in v1.3.0
func (msg MsgInviteUser) ValidateBasic() sdk.Error
ValidateBasic Implements Msg.
type MsgSetBlackMembership ¶ added in v1.5.0
type MsgSetBlackMembership struct { GovernmentAddress sdk.AccAddress `json:"government_address"` Subscriber sdk.AccAddress `json:"subscriber"` }
MsgSetBlackMembership allows government to assign a black membership to Subscriber, which has been already invited by another black membership user.
func NewMsgSetBlackMembership ¶ added in v1.5.0
func NewMsgSetBlackMembership(subscriber sdk.AccAddress, govAddr sdk.AccAddress) MsgSetBlackMembership
func (MsgSetBlackMembership) GetSignBytes ¶ added in v1.5.0
func (msg MsgSetBlackMembership) GetSignBytes() []byte
GetSignBytes Implements Msg.
func (MsgSetBlackMembership) GetSigners ¶ added in v1.5.0
func (msg MsgSetBlackMembership) GetSigners() []sdk.AccAddress
GetSigners Implements Msg.
func (MsgSetBlackMembership) Route ¶ added in v1.5.0
func (msg MsgSetBlackMembership) Route() string
Route Implements Msg.
func (MsgSetBlackMembership) Type ¶ added in v1.5.0
func (msg MsgSetBlackMembership) Type() string
Type Implements Msg.
func (MsgSetBlackMembership) ValidateBasic ¶ added in v1.5.0
func (msg MsgSetBlackMembership) ValidateBasic() sdk.Error
ValidateBasic Implements Msg.
type MsgSetUserVerified ¶ added in v1.3.0
type MsgSetUserVerified struct { User sdk.AccAddress `json:"user"` Verifier sdk.AccAddress `json:"verifier"` }
MsgSetUserVerified is used to set a specific user as properly verified. Note that the verifier address should identify a Trusted Service Provider account.
func NewMsgSetUserVerified ¶ added in v1.3.0
func NewMsgSetUserVerified(user, verifier sdk.AccAddress) MsgSetUserVerified
func (MsgSetUserVerified) GetSignBytes ¶ added in v1.3.0
func (msg MsgSetUserVerified) GetSignBytes() []byte
GetSignBytes Implements Msg.
func (MsgSetUserVerified) GetSigners ¶ added in v1.3.0
func (msg MsgSetUserVerified) GetSigners() []sdk.AccAddress
GetSigners Implements Msg.
func (MsgSetUserVerified) Route ¶ added in v1.3.0
func (msg MsgSetUserVerified) Route() string
Route Implements Msg.
func (MsgSetUserVerified) Type ¶ added in v1.3.0
func (msg MsgSetUserVerified) Type() string
Type Implements Msg.
func (MsgSetUserVerified) ValidateBasic ¶ added in v1.3.0
func (msg MsgSetUserVerified) ValidateBasic() sdk.Error
ValidateBasic Implements Msg.