sila

package module
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Nov 6, 2020 License: MIT Imports: 13 Imported by: 0

README

Sila Client

This project creates a native SDK for the Sila API in Golang. To learn more about Sila and how it works, please go to their website as well as read the documentation.

Implemented Endpoints

The current version of this library implements the following endpoints according to the Sila API v0.2.

Entities
Accounts
Wallets
Transactions
Parameters

Usage

To use the Sila SDK, first import:

import "github.com/bpancost/sila"

From there, create a new client by using

// The the auth private key as a hex string, without the "0x" prefixed
privateKeyHex := "badba7368134dcd61c60f9b56979c09196d03f5891a20c1557b1afac0202a97c"
// The handle associated with your auth account
authHandle := "handle.silamoney.eth"
// A production client can be created by using sila.Production instead of sila.Sandbox
client, err := sila.NewClient(privateKeyHex, authHandle, sila.Sandbox)

With the client, it is possible to make any of the included calls. Each is a chainable series of method calls, ending with a call to the Do method. For example, to get a list of entities you could use

response, err := silaClient.GetEntities().
                            SetPage(1).
                            SetPerPage(20).
                            Do()

There are several functions within the github.com/bpancost/sila package which can be used to manipulate or create keys for wallets, which will be required for certain calls.

  • GenerateNewPrivateKey() (string, error)
    • Generates a private key for a new wallet. This should generally not be shared or shown outside of your system and will be used for subsequent calls related to the wallet, or as a means of identifying the user who owns the wallet.
  • GetWalletAddress(privateKeyHex string) (string, error)
    • Gets the public address for the wallet. This is used to publicly indicate a wallet and is always visible on the blockchain, including any transactions.
  • GenerateWalletSignature(message []byte, walletPrivateKeyHex string) (string, error)
    • Signs an arbitrary message using a wallet's private key as a hex string.

Integration Tests

To use the included integration tests, create a file named test_config.yaml using the test_config_sample.yaml as a template. Provide your auth key as a hex string, your auth handle, a unique user handle specifically for this testing, and a private key as a hex string for the integration user's wallet which will be their main wallet. You can use a tool like Vanity-Eth to help generate a new wallet address and private key.

Most tests will complete quickly, though the transaction tests require several minute sleeps to verify they completed and will take around 10 minutes to complete.

If you would like to view the integration test progress via a web page, you can use goconvey from a terminal and then navigate to http://127.0.0.1:8080.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GenerateNewPrivateKey

func GenerateNewPrivateKey() (string, error)

Generates a new private key as a hex string for a wallet

func GenerateWalletSignature

func GenerateWalletSignature(message []byte, walletPrivateKeyHex string) (string, error)

Generates a signature for a message with one of a user's wallet private keys (in hex) as provided.

func GetWalletAddress

func GetWalletAddress(privateKeyHex string) (string, error)

Gets a wallet address from a wallet's private key as a hex string and returns the wallet address

Types

type AddRegistrationData

type AddRegistrationData interface {
	// Sets the email to add
	SetEmail(email string) AddRegistrationData
	// Sets the phone number to add
	SetPhone(phone string) AddRegistrationData
	// Sets the identity information to add. Note that there can not be two of the same type of identity information (SSN or EIN).
	SetIdentity(identityAlias string, identityValue string) AddRegistrationData
	// Sets the address information to add
	SetAddress(address domain.RegistrationAddress) AddRegistrationData
	// Execute the Add Registration Data call, signing with one of the user's private wallet keys
	Do(userWalletPrivateKey string) (domain.ModifyRegistrationDataResponse, error)
}

type AddRegistrationDataMsg

type AddRegistrationDataMsg struct {
	Header         *Header                     `json:"header"`
	Email          string                      `json:"email,omitempty"`
	Phone          string                      `json:"phone,omitempty"`
	IdentityAlias  string                      `json:"identity_alias,omitempty"`
	IdentityValue  string                      `json:"identity_value,omitempty"`
	AddressAlias   string                      `json:"address_alias,omitempty"`
	StreetAddress1 string                      `json:"street_address_1,omitempty"`
	StreetAddress2 string                      `json:"street_address_2,omitempty"`
	City           string                      `json:"city,omitempty"`
	State          string                      `json:"state,omitempty"`
	Country        string                      `json:"country,omitempty"`
	PostalCode     string                      `json:"postal_code,omitempty"`
	DataType       domain.RegistrationDataType `json:"-"`
}

func (*AddRegistrationDataMsg) Do

func (msg *AddRegistrationDataMsg) Do(userWalletPrivateKey string) (domain.ModifyRegistrationDataResponse, error)

func (*AddRegistrationDataMsg) SetAddress

func (*AddRegistrationDataMsg) SetEmail

func (msg *AddRegistrationDataMsg) SetEmail(email string) AddRegistrationData

func (*AddRegistrationDataMsg) SetIdentity

func (msg *AddRegistrationDataMsg) SetIdentity(identityAlias string, identityValue string) AddRegistrationData

func (*AddRegistrationDataMsg) SetPhone

func (msg *AddRegistrationDataMsg) SetPhone(phone string) AddRegistrationData

type CancelTransactions

type CancelTransactions interface {
	SetRef(ref string) CancelTransactions
	Do(userWalletPrivateKey string) (domain.SuccessResponse, error)
}

type CancelTransactionsMsg

type CancelTransactionsMsg struct {
	Header        *Header `json:"header"`
	TransactionId string  `json:"transaction_id"`
}

func (*CancelTransactionsMsg) Do

func (msg *CancelTransactionsMsg) Do(userWalletPrivateKey string) (domain.SuccessResponse, error)

The wallet key passed should be registered to the user which initiated the transaction to cancel

func (*CancelTransactionsMsg) SetRef

type CertifyBeneficialOwner

type CertifyBeneficialOwner interface {
	// The certification token can be fetched from calling GetEntity on a user after the individual to be certified has
	// finished KYC and the business has finished the validation portion of KYC. Calling GetEntity gives the admin user
	// a chance to review the beneficial owner's information is 100% correct.
	SetCertificationToken(userHandleToCertify string, certificationToken string) CertifyBeneficialOwner
	// Execute the Certify Beneficial Owner call, signing with one of the user's private wallet keys and one of the business's private wallet keys
	Do(userWalletPrivateKey string, businessWalletPrivateKey string) (domain.SuccessResponse, error)
}

type CertifyBeneficialOwnerMsg

type CertifyBeneficialOwnerMsg struct {
	Header             *Header `json:"header"`
	MemberHandle       string  `json:"member_handle"`
	CertificationToken string  `json:"certification_token"`
}

func (*CertifyBeneficialOwnerMsg) Do

func (msg *CertifyBeneficialOwnerMsg) Do(userWalletPrivateKey string, businessWalletPrivateKey string) (domain.SuccessResponse, error)

func (*CertifyBeneficialOwnerMsg) SetCertificationToken

func (msg *CertifyBeneficialOwnerMsg) SetCertificationToken(userHandleToCertify string, certificationToken string) CertifyBeneficialOwner

type CertifyBusiness

type CertifyBusiness interface {
	// Execute the Certify Business call, signing with one of the user's private wallet keys and one of the business's private wallet keys
	Do(userWalletPrivateKey string, businessWalletPrivateKey string) (domain.SuccessResponse, error)
}

type CertifyBusinessMsg

type CertifyBusinessMsg struct {
	Header *Header `json:"header"`
}

func (*CertifyBusinessMsg) Do

func (msg *CertifyBusinessMsg) Do(userWalletPrivateKey string, businessWalletPrivateKey string) (domain.SuccessResponse, error)

type CheckHandle

type CheckHandle interface {
	// Sets a reference ID tagging the request which will also be passed back in the response
	SetRef(ref string) CheckHandle
	// Execute the Check Handle call
	Do() (domain.SuccessResponse, error)
}

type CheckHandleMsg

type CheckHandleMsg struct {
	Header  *Header `json:"header"`
	Message string  `json:"message"`
}

func (*CheckHandleMsg) Do

func (*CheckHandleMsg) SetRef

func (msg *CheckHandleMsg) SetRef(ref string) CheckHandle

type CheckKyc

type CheckKyc interface {
	// Sets a reference ID tagging the request which will also be passed back in the response
	SetRef(ref string) CheckKyc
	// Sets the level of the KYC checks, if multiple levels are defined and a non-base level should be checked. Not required for most use cases.
	SetKycLevel(kycLevel string) CheckKyc
	// Execute the Check KYC call, signing with one of the user's private wallet keys
	Do(userWalletPrivateKey string) (domain.CheckKycResponse, error)
}

type CheckKycMsg

type CheckKycMsg struct {
	Header   *Header `json:"header"`
	Message  string  `json:"message"`
	KycLevel string  `json:"kyc_level,omitempty"`
}

func (*CheckKycMsg) Do

func (msg *CheckKycMsg) Do(userWalletPrivateKey string) (domain.CheckKycResponse, error)

func (*CheckKycMsg) SetKycLevel

func (msg *CheckKycMsg) SetKycLevel(kycLevel string) CheckKyc

func (*CheckKycMsg) SetRef

func (msg *CheckKycMsg) SetRef(ref string) CheckKyc

type Client

type Client interface {
	// Determine if a handle is currently on use in the network
	CheckHandle(userHandle string) CheckHandle
	// Register an individual or business user to a handle, add basic KYC data, and an initial wallet
	Register(userOrBusinessHandle string) Register
	// Request KYC for an individual user
	RequestKyc(userHandle string) RequestKyc
	// Check the status of KYC for an individual user
	CheckKyc(userHandle string) CheckKyc
	// Gets an information about a user
	GetEntity(userHandle string) GetEntity
	// Searches for user information
	GetEntities() GetEntities
	// Links an individual user to a business user, indicating the individual is part of that business
	LinkBusinessMember(userHandle string, businessHandle string) LinkBusinessMember
	// Unlinks an individual user from a business user, indicating that they are not part of that business
	UnlinkBusinessMember(userHandle string, businessHandle string) UnlinkBusinessMember
	// Have a business's admin user certify that the information about a beneficial owner (who has ownership stake in the business) has correct information
	CertifyBeneficialOwner(adminUserHandle string, businessHandle string) CertifyBeneficialOwner
	// Have a business's admin user certify that all information about a business has been entered correctly and the business should be allowed to transact on the network
	CertifyBusiness(adminUserHandle string, businessHandle string) CertifyBusiness
	// Add registration data to a user after registration
	AddRegistrationData(userHandle string) AddRegistrationData
	// Update a user's registration data after registration
	UpdateRegistrationData(userHandle string) UpdateRegistrationData
	// Delete a user's registration data after registration
	DeleteRegistrationData(userHandle string) DeleteRegistrationData

	// Link a bank account to a user, either directly or via Plaid
	LinkAccount(userHandle string) LinkAccount
	// Complete same day auth with Plaid
	PlaidSameDayAuth(userHandle string, accountName string) PlaidSameDayAuth
	// Get a user's linked accounts
	GetAccounts(userHandle string) GetAccounts
	// Get the balances for a user's linked accounts
	GetAccountBalance(userHandle string, accountName string) GetAccountBalance

	// Register a new wallet to a user
	RegisterWallet(userHandle string) RegisterWallet
	// Get a user's wallet
	GetWallet(userHandle string) GetWallet
	// Get several of a user's wallets
	GetWallets(userHandle string) GetWallets
	// Update information about a user's wallet
	UpdateWallet(userHandle string) UpdateWallet
	// Get the current Sila coin balance of a user's wallet
	GetWalletBalance(walletAddress string) GetSilaBalance
	// Delete a user's wallet
	DeleteWallet(userHandle string) DeleteWallet

	// Issue Sila coin to a wallet from a linked bank account
	IssueSila(userHandle string) IssueSila
	// Transfer Sila coin from one wallet to another
	TransferSila(userHandle string) TransferSila
	// Redeem Sila coin from a user's wallet to a linked bank account
	RedeemSila(userHandle string) RedeemSila
	// Get a list of transactions related to a user's wallet
	GetTransactions(userHandle string) GetTransactions
	// Cancel a user's transaction if still in progress
	CancelTransaction(userHandle string, transactionId string) CancelTransactions

	// Get a list of business types
	GetBusinessTypes() GetBusinessTypes
	// Get a list of business roles
	GetBusinessRoles() GetBusinessRoles
	// Get a list of NAICS categories and their codes
	GetNaicsCategories() GetNaicsCategories
}

func NewClient

func NewClient(privateKeyHex string, authHandle string, environment Environment) (Client, error)

Creates a new Sila client using your system's auth private key as a hex string, your system's auth handle, and the environment to send requests to (sandbox or production).

type ClientImpl

type ClientImpl struct {
	// contains filtered or unexported fields
}

The Sila client for handling calls to the Sila API

func (ClientImpl) AddRegistrationData

func (client ClientImpl) AddRegistrationData(userHandle string) AddRegistrationData

func (ClientImpl) CancelTransaction

func (client ClientImpl) CancelTransaction(userHandle string, transactionId string) CancelTransactions

func (ClientImpl) CertifyBeneficialOwner

func (client ClientImpl) CertifyBeneficialOwner(adminUserHandle string, businessHandle string) CertifyBeneficialOwner

func (ClientImpl) CertifyBusiness

func (client ClientImpl) CertifyBusiness(adminUserHandle string, businessHandle string) CertifyBusiness

func (ClientImpl) CheckHandle

func (client ClientImpl) CheckHandle(userHandle string) CheckHandle

func (ClientImpl) CheckKyc

func (client ClientImpl) CheckKyc(userHandle string) CheckKyc

func (ClientImpl) DeleteRegistrationData

func (client ClientImpl) DeleteRegistrationData(userHandle string) DeleteRegistrationData

func (ClientImpl) DeleteWallet

func (client ClientImpl) DeleteWallet(userHandle string) DeleteWallet

func (ClientImpl) GetAccountBalance

func (client ClientImpl) GetAccountBalance(userHandle string, accountName string) GetAccountBalance

func (ClientImpl) GetAccounts

func (client ClientImpl) GetAccounts(userHandle string) GetAccounts

func (ClientImpl) GetBusinessRoles

func (client ClientImpl) GetBusinessRoles() GetBusinessRoles

func (ClientImpl) GetBusinessTypes

func (client ClientImpl) GetBusinessTypes() GetBusinessTypes

func (ClientImpl) GetEntities

func (client ClientImpl) GetEntities() GetEntities

func (ClientImpl) GetEntity

func (client ClientImpl) GetEntity(userHandle string) GetEntity

func (ClientImpl) GetNaicsCategories

func (client ClientImpl) GetNaicsCategories() GetNaicsCategories

func (ClientImpl) GetTransactions

func (client ClientImpl) GetTransactions(userHandle string) GetTransactions

func (ClientImpl) GetWallet

func (client ClientImpl) GetWallet(userHandle string) GetWallet

func (ClientImpl) GetWalletBalance

func (client ClientImpl) GetWalletBalance(walletAddress string) GetSilaBalance

func (ClientImpl) GetWallets

func (client ClientImpl) GetWallets(userHandle string) GetWallets

func (ClientImpl) IssueSila

func (client ClientImpl) IssueSila(userHandle string) IssueSila

func (ClientImpl) LinkAccount

func (client ClientImpl) LinkAccount(userHandle string) LinkAccount

func (ClientImpl) LinkBusinessMember

func (client ClientImpl) LinkBusinessMember(userHandle string, businessHandle string) LinkBusinessMember

Link a business member to the specified business. If the user handle is an admin of the business, a different user handle should be specified to link to the business (use "AsAdmin" methods). If the user handle is not an admin of the business, that handle will be linked.

func (ClientImpl) PlaidSameDayAuth

func (client ClientImpl) PlaidSameDayAuth(userHandle string, accountName string) PlaidSameDayAuth

func (ClientImpl) RedeemSila

func (client ClientImpl) RedeemSila(userHandle string) RedeemSila

func (ClientImpl) Register

func (client ClientImpl) Register(userOrBusinessHandle string) Register

Register the user or business handle on Sila

func (ClientImpl) RegisterWallet

func (client ClientImpl) RegisterWallet(userHandle string) RegisterWallet

func (ClientImpl) RequestKyc

func (client ClientImpl) RequestKyc(userHandle string) RequestKyc

func (ClientImpl) TransferSila

func (client ClientImpl) TransferSila(userHandle string) TransferSila

func (ClientImpl) UnlinkBusinessMember

func (client ClientImpl) UnlinkBusinessMember(userHandle string, businessHandle string) UnlinkBusinessMember

func (ClientImpl) UpdateRegistrationData

func (client ClientImpl) UpdateRegistrationData(userHandle string) UpdateRegistrationData

func (ClientImpl) UpdateWallet

func (client ClientImpl) UpdateWallet(userHandle string) UpdateWallet

type Contact

type Contact struct {
	Phone        string `json:"phone,omitempty"`
	ContactAlias string `json:"contact_alias"`
	Email        string `json:"email,omitempty"`
}

type CryptoEntry

type CryptoEntry struct {
	CryptoAlias   string `json:"crypto_alias"`
	CryptoAddress string `json:"crypto_address"`
	CryptoCode    string `json:"crypto_code"`
}

type DeleteRegistrationData

type DeleteRegistrationData interface {
	// Sets the UUID of the email data to remove from the user's registration data.
	// The UUID can be fetched from GetEntity.
	SetEmail(emailUuid string) DeleteRegistrationData
	// Sets the UUID of the phone number data to remove from the user's registration data.
	// The UUID can be fetched from GetEntity.
	SetPhone(phoneUuid string) DeleteRegistrationData
	// Sets the UUID of the identity data to remove from the user's registration data.
	// The UUID can be fetched from GetEntity.
	SetIdentity(identityUuid string) DeleteRegistrationData
	// Sets the UUID of the address data to remove from the user's registration data.
	// The UUID can be fetched from GetEntity.
	SetAddress(addressUuid string) DeleteRegistrationData
	// Execute the Delete Registration Data call, signing with one of the user's private wallet keys
	Do(userWalletPrivateKey string) (domain.SuccessResponse, error)
}

type DeleteRegistrationDataMsg

type DeleteRegistrationDataMsg struct {
	Header   *Header                     `json:"header"`
	Uuid     string                      `json:"uuid"`
	DataType domain.RegistrationDataType `json:"-"`
}

func (*DeleteRegistrationDataMsg) Do

func (msg *DeleteRegistrationDataMsg) Do(userWalletPrivateKey string) (domain.SuccessResponse, error)

func (*DeleteRegistrationDataMsg) SetAddress

func (msg *DeleteRegistrationDataMsg) SetAddress(addressUuid string) DeleteRegistrationData

func (*DeleteRegistrationDataMsg) SetEmail

func (msg *DeleteRegistrationDataMsg) SetEmail(addressUuid string) DeleteRegistrationData

func (*DeleteRegistrationDataMsg) SetIdentity

func (msg *DeleteRegistrationDataMsg) SetIdentity(identityUuid string) DeleteRegistrationData

func (*DeleteRegistrationDataMsg) SetPhone

func (msg *DeleteRegistrationDataMsg) SetPhone(phoneUuid string) DeleteRegistrationData

type DeleteWallet

type DeleteWallet interface {
	SetRef(ref string) DeleteWallet
	Do(userWalletPrivateKey string) (domain.SuccessResponse, error)
}

type DeleteWalletMsg

type DeleteWalletMsg struct {
	Header *Header `json:"header"`
}

func (*DeleteWalletMsg) Do

func (msg *DeleteWalletMsg) Do(userWalletPrivateKey string) (domain.SuccessResponse, error)

The wallet key passed in is what determines the wallet deleted

func (*DeleteWalletMsg) SetRef

func (msg *DeleteWalletMsg) SetRef(ref string) DeleteWallet

type Environment

type Environment string

Which API environment to run in

const (
	Sandbox    Environment = "https://sandbox.silamoney.com/"
	Production             = "https://api.silamoney.com/"
)

type GetAccountBalance

type GetAccountBalance interface {
	SetRef(ref string) GetAccountBalance
	Do(userWalletPrivateKey string) (domain.GetAccountBalanceResponse, error)
}

type GetAccountBalanceMsg

type GetAccountBalanceMsg struct {
	Header      *Header `json:"header"`
	AccountName string  `json:"account_name"`
}

func (*GetAccountBalanceMsg) Do

func (msg *GetAccountBalanceMsg) Do(userWalletPrivateKey string) (domain.GetAccountBalanceResponse, error)

func (*GetAccountBalanceMsg) SetRef

type GetAccounts

type GetAccounts interface {
	Do(userWalletPrivateKey string) (domain.GetAccountsResponse, error)
}

type GetAccountsMsg

type GetAccountsMsg struct {
	Header  *Header `json:"header"`
	Message string  `json:"message"`
}

func (*GetAccountsMsg) Do

func (msg *GetAccountsMsg) Do(userWalletPrivateKey string) (domain.GetAccountsResponse, error)

type GetBusinessRoles

type GetBusinessRoles interface {
	Do() (domain.GetBusinessRolesResponse, error)
}

type GetBusinessRolesMsg

type GetBusinessRolesMsg struct {
	Header *Header `json:"header"`
}

func (*GetBusinessRolesMsg) Do

type GetBusinessTypes

type GetBusinessTypes interface {
	Do() (domain.GetBusinessTypesResponse, error)
}

type GetBusinessTypesMsg

type GetBusinessTypesMsg struct {
	Header *Header `json:"header"`
}

func (*GetBusinessTypesMsg) Do

type GetEntities

type GetEntities interface {
	// The type of the entity (individual or business)
	SetEntityType(entityType string) GetEntities
	// Which page to fetch
	SetPage(page int32) GetEntities
	// How many entities should be returned per page
	SetPerPage(perPage int32) GetEntities
	// Execute the Get Entities call
	Do() (domain.GetEntitiesResponse, error)
}

type GetEntitiesMsg

type GetEntitiesMsg struct {
	Header     *Header `json:"header"`
	Message    string  `json:"message"`
	EntityType string  `json:"entity_type,omitempty"`
	Page       int32   `json:"-"`
	PerPage    int32   `json:"-"`
}

func (*GetEntitiesMsg) Do

func (*GetEntitiesMsg) SetEntityType

func (msg *GetEntitiesMsg) SetEntityType(entityType string) GetEntities

func (*GetEntitiesMsg) SetPage

func (msg *GetEntitiesMsg) SetPage(page int32) GetEntities

func (*GetEntitiesMsg) SetPerPage

func (msg *GetEntitiesMsg) SetPerPage(perPage int32) GetEntities

type GetEntity

type GetEntity interface {
	// Execute the call
	Do(userWalletPrivateKey string) (domain.GetEntityResponse, error)
}

type GetEntityMsg

type GetEntityMsg struct {
	Header *Header `json:"header"`
}

func (*GetEntityMsg) Do

func (msg *GetEntityMsg) Do(userWalletPrivateKey string) (domain.GetEntityResponse, error)

Get wallet key should belong to the user/entity to fetch

type GetNaicsCategories

type GetNaicsCategories interface {
	Do() (domain.GetNaicsCategoriesResponse, error)
}

type GetNaicsCategoriesMsg

type GetNaicsCategoriesMsg struct {
	Header *Header `json:"header"`
}

func (*GetNaicsCategoriesMsg) Do

type GetSilaBalance

type GetSilaBalance interface {
	Do() (domain.GetSilaBalanceResponse, error)
}

type GetSilaBalanceMsg

type GetSilaBalanceMsg struct {
	Address string `json:"address"`
}

func (*GetSilaBalanceMsg) Do

type GetTransactions

type GetTransactions interface {
	SetSearchFilters(searchFilters domain.TransactionSearchFilters) GetTransactions
	Do(userWalletPrivateKey string) (domain.GetTransactionsResponse, error)
}

type GetTransactionsMsg

type GetTransactionsMsg struct {
	Header        *Header                         `json:"header"`
	Message       string                          `json:"message"`
	SearchFilters domain.TransactionSearchFilters `json:"search_filters,omitempty"`
}

func (*GetTransactionsMsg) Do

func (msg *GetTransactionsMsg) Do(userWalletPrivateKey string) (domain.GetTransactionsResponse, error)

The wallet key passed should be registered to the user which initiated the transaction to cancel

func (*GetTransactionsMsg) SetSearchFilters

func (msg *GetTransactionsMsg) SetSearchFilters(searchFilters domain.TransactionSearchFilters) GetTransactions

type GetWallet

type GetWallet interface {
	SetRef(ref string) GetWallet
	Do(userWalletPrivateKey string) (domain.GetWalletResponse, error)
}

type GetWalletMsg

type GetWalletMsg struct {
	Header *Header `json:"header"`
}

func (*GetWalletMsg) Do

func (msg *GetWalletMsg) Do(userWalletPrivateKey string) (domain.GetWalletResponse, error)

The wallet key passed in is what determines the wallet returned

func (*GetWalletMsg) SetRef

func (msg *GetWalletMsg) SetRef(ref string) GetWallet

type GetWallets

type GetWallets interface {
	SetSearchFilters(filters domain.WalletSearchFilters) GetWallets
	Do(userWalletPrivateKey string) (domain.GetWalletsResponse, error)
}

type GetWalletsMsg

type GetWalletsMsg struct {
	Header        *Header                    `json:"header"`
	SearchFilters domain.WalletSearchFilters `json:"search_filters,omitempty"`
}

func (*GetWalletsMsg) Do

func (msg *GetWalletsMsg) Do(userWalletPrivateKey string) (domain.GetWalletsResponse, error)

func (*GetWalletsMsg) SetSearchFilters

func (msg *GetWalletsMsg) SetSearchFilters(filters domain.WalletSearchFilters) GetWallets
type Header struct {
	Created        int64  `json:"created"`
	AuthHandle     string `json:"auth_handle"`
	UserHandle     string `json:"user_handle,omitempty"`
	BusinessHandle string `json:"business_handle,omitempty"`
	Version        string `json:"version"`
	Crypto         string `json:"crypto"`
	Reference      string `json:"reference,omitempty"`
}

The header segment for every request made to Sila

type IssueSila

type IssueSila interface {
	SetRef(ref string) IssueSila
	SetAmountFromAccount(amount int64, accountName string) IssueSila
	SetDescriptor(descriptor string) IssueSila
	SetBusinessUuid(businessUuid string) IssueSila
	SetProcessingType(processingType string) IssueSila
	Do(userWalletPrivateKey string) (domain.IssueSilaResponse, error)
}

type IssueSilaMsg

type IssueSilaMsg struct {
	Header         *Header `json:"header"`
	Message        string  `json:"message"`
	Amount         int64   `json:"amount"`
	AccountName    string  `json:"account_name"`
	Descriptor     string  `json:"descriptor,omitempty"`
	BusinessUuid   string  `json:"business_uuid,omitempty"`
	ProcessingType string  `json:"processing_type,omitempty"`
}

func (*IssueSilaMsg) Do

func (msg *IssueSilaMsg) Do(userWalletPrivateKey string) (domain.IssueSilaResponse, error)

The wallet key passed in is what determines the which wallet receives the Sila coin

func (*IssueSilaMsg) SetAmountFromAccount

func (msg *IssueSilaMsg) SetAmountFromAccount(amount int64, accountName string) IssueSila

Sets the amount to take from the named linked account and put into the Sila wallet

func (*IssueSilaMsg) SetBusinessUuid

func (msg *IssueSilaMsg) SetBusinessUuid(businessUuid string) IssueSila

func (*IssueSilaMsg) SetDescriptor

func (msg *IssueSilaMsg) SetDescriptor(descriptor string) IssueSila

func (*IssueSilaMsg) SetProcessingType

func (msg *IssueSilaMsg) SetProcessingType(processingType string) IssueSila

func (*IssueSilaMsg) SetRef

func (msg *IssueSilaMsg) SetRef(ref string) IssueSila

type LinkAccount

type LinkAccount interface {
	SetRef(ref string) LinkAccount
	SetPlaidLinkAccount(publicToken string, selectedAccountId string) LinkAccount
	SetDirectLinkAccount(accountNumber string, routingNumber string) LinkAccount
	SetAccountType(accountType string) LinkAccount
	SetAccountName(accountName string) LinkAccount
	Do(userWalletPrivateKey string) (domain.LinkAccountResponse, error)
}

type LinkAccountMsg

type LinkAccountMsg struct {
	Header            *Header `json:"header"`
	Message           string  `json:"message"`
	PublicToken       string  `json:"public_token,omitempty"`
	SelectedAccountId string  `json:"selected_account_id,omitempty"`
	AccountNumber     string  `json:"account_number,omitempty"`
	RoutingNumber     string  `json:"routing_number,omitempty"`
	AccountType       string  `json:"account_type,omitempty"`
	AccountName       string  `json:"account_name,omitempty"`
}

func (*LinkAccountMsg) Do

func (msg *LinkAccountMsg) Do(userWalletPrivateKey string) (domain.LinkAccountResponse, error)

func (*LinkAccountMsg) SetAccountName

func (msg *LinkAccountMsg) SetAccountName(accountName string) LinkAccount

func (*LinkAccountMsg) SetAccountType

func (msg *LinkAccountMsg) SetAccountType(accountType string) LinkAccount

func (*LinkAccountMsg) SetDirectLinkAccount

func (msg *LinkAccountMsg) SetDirectLinkAccount(accountNumber string, routingNumber string) LinkAccount

func (*LinkAccountMsg) SetPlaidLinkAccount

func (msg *LinkAccountMsg) SetPlaidLinkAccount(publicToken string, selectedAccountId string) LinkAccount

func (*LinkAccountMsg) SetRef

func (msg *LinkAccountMsg) SetRef(ref string) LinkAccount

type LinkBusinessMember

type LinkBusinessMember interface {
	// As an admin member, set a different member's user handle as an admin of this business.
	// Admins can link others to the business on their behalf.
	SetAdminMemberAsAdmin(newMemberHandle string) LinkBusinessMember
	// Set the current member whose user handle was already provided as an admin.
	// Admins can link others to the business on their behalf.
	SetAdminMember() LinkBusinessMember
	// As an admin member, set a different member's user handle as a controlling officer of this business.
	// Controlling officers have leadership roles in the business and have the ability to sign contracts for the business.
	SetControllingOfficerMemberAsAdmin(newMemberHandle string) LinkBusinessMember
	// Set the current member whose user handle was already provided as a controlling officer.
	// Controlling officers have leadership roles in the business and have the ability to sign contracts for the business.
	SetControllingOfficerMember() LinkBusinessMember
	// As an admin member, set a different member's user handle as a beneficial owner of this business.
	// Beneficial owners have some ownership stake in the business, which should be included.
	SetBeneficialOwnerMemberAsAdmin(newMemberHandle string, ownershipStake float64) LinkBusinessMember
	// Set the current member whose user handle was already provided as a beneficial owner of this business.
	// Beneficial owners have some ownership stake in the business, which should be included.
	SetBeneficialOwnerMember(ownershipStake float64) LinkBusinessMember
	// Optionally set the description of the member being linked, which can be used to distinguish people and their roles at a later date.
	SetMemberDescription(description string) LinkBusinessMember
	// Execute the Link Business Member call, signing with one of the user's private wallet keys and one of the business's private wallet keys
	Do(userWalletPrivateKey string, businessWalletPrivateKey string) (domain.LinkBusinessMemberResponse, error)
}

type LinkBusinessMemberMsg

type LinkBusinessMemberMsg struct {
	Header         *Header `json:"header"`
	MemberHandle   string  `json:"member_handle,omitempty"`
	Role           string  `json:"role"`
	OwnershipStake float64 `json:"ownership_stake,omitempty"`
	Description    string  `json:"description,omitempty"`
}

func (*LinkBusinessMemberMsg) Do

func (msg *LinkBusinessMemberMsg) Do(userWalletPrivateKey string, businessWalletPrivateKey string) (domain.LinkBusinessMemberResponse, error)

func (*LinkBusinessMemberMsg) SetAdminMember

func (msg *LinkBusinessMemberMsg) SetAdminMember() LinkBusinessMember

func (*LinkBusinessMemberMsg) SetAdminMemberAsAdmin

func (msg *LinkBusinessMemberMsg) SetAdminMemberAsAdmin(newMemberHandle string) LinkBusinessMember

func (*LinkBusinessMemberMsg) SetBeneficialOwnerMember

func (msg *LinkBusinessMemberMsg) SetBeneficialOwnerMember(ownershipStake float64) LinkBusinessMember

func (*LinkBusinessMemberMsg) SetBeneficialOwnerMemberAsAdmin

func (msg *LinkBusinessMemberMsg) SetBeneficialOwnerMemberAsAdmin(newMemberHandle string, ownershipStake float64) LinkBusinessMember

func (*LinkBusinessMemberMsg) SetControllingOfficerMember

func (msg *LinkBusinessMemberMsg) SetControllingOfficerMember() LinkBusinessMember

func (*LinkBusinessMemberMsg) SetControllingOfficerMemberAsAdmin

func (msg *LinkBusinessMemberMsg) SetControllingOfficerMemberAsAdmin(newMemberHandle string) LinkBusinessMember

func (*LinkBusinessMemberMsg) SetMemberDescription

func (msg *LinkBusinessMemberMsg) SetMemberDescription(description string) LinkBusinessMember

type PlaidSameDayAuth

type PlaidSameDayAuth interface {
	Do() (domain.PlaidSameDayAuthResponse, error)
}

type PlaidSameDayAuthMsg

type PlaidSameDayAuthMsg struct {
	Header      *Header `json:"header"`
	AccountName string  `json:"account_name"`
}

func (*PlaidSameDayAuthMsg) Do

type RedeemSila

type RedeemSila interface {
	SetRef(ref string) RedeemSila
	SetAmountToAccount(amount int64, accountName string) RedeemSila
	SetDescriptor(descriptor string) RedeemSila
	SetBusinessUuid(businessUuid string) RedeemSila
	SetProcessingType(processingType string) RedeemSila
	Do(userWalletPrivateKey string) (domain.RedeemSilaResponse, error)
}

type RedeemSilaMsg

type RedeemSilaMsg struct {
	Header         *Header `json:"header"`
	Message        string  `json:"message"`
	Amount         int64   `json:"amount"`
	AccountName    string  `json:"account_name"`
	Descriptor     string  `json:"descriptor,omitempty"`
	BusinessUuid   string  `json:"business_uuid,omitempty"`
	ProcessingType string  `json:"processing_type,omitempty"`
}

func (*RedeemSilaMsg) Do

func (msg *RedeemSilaMsg) Do(userWalletPrivateKey string) (domain.RedeemSilaResponse, error)

The wallet key passed in is what determines the which wallet redeems the Sila coin

func (*RedeemSilaMsg) SetAmountToAccount

func (msg *RedeemSilaMsg) SetAmountToAccount(amount int64, accountName string) RedeemSila

Sets the amount to take from the Sila wallet and put into the named linked account

func (*RedeemSilaMsg) SetBusinessUuid

func (msg *RedeemSilaMsg) SetBusinessUuid(businessUuid string) RedeemSila

func (*RedeemSilaMsg) SetDescriptor

func (msg *RedeemSilaMsg) SetDescriptor(descriptor string) RedeemSila

func (*RedeemSilaMsg) SetProcessingType

func (msg *RedeemSilaMsg) SetProcessingType(processingType string) RedeemSila

func (*RedeemSilaMsg) SetRef

func (msg *RedeemSilaMsg) SetRef(ref string) RedeemSila

type Register

type Register interface {
	// Sets a reference ID tagging the request which will also be passed back in the response
	SetRef(ref string) Register
	// Sets the user's address
	SetAddress(address domain.RegistrationAddress) Register
	// Sets the uniquely identifying information for the individual (SSN) or business (EIN). This is required to register.
	SetIdentity(identityType domain.IdentityType, identityValue string) Register
	// Sets the user's contact information.
	SetContact(contactAlias string, phone string, email string) Register
	// Sets the user's first wallet address and nickname. This is required to register. If the nickname is "default", it will be used by default for all transactions.
	SetCrypto(nickname string, address string) Register
	// Sets required entity information that is specific to an individual user.
	SetIndividualEntity(firstName string, lastName string, birthDate string) Register
	// Sets required entity information that is specific to a business.
	SetBusinessEntity(entityName string, businessType string, naicsCode int) Register
	// Sets a business website, if one exists
	SetBusinessWebsite(businessWebsite string) Register
	// Sets a business's Doing Business As name (the name they actually do business under, if different from the entity name).
	SetDoingBusinessAs(dba string) Register
	// Execute the Register call
	Do() (domain.SuccessResponse, error)
}

type RegisterMsg

type RegisterMsg struct {
	Header      *Header                    `json:"header"`
	Message     string                     `json:"message"`
	Address     domain.RegistrationAddress `json:"address,omitempty"`
	Identity    RegistrationIdentity       `json:"identity,omitempty"`
	Contact     Contact                    `json:"contact,omitempty"`
	CryptoEntry CryptoEntry                `json:"crypto_entry"`
	Entity      RegistrationEntity         `json:"entity"`
}

func (*RegisterMsg) Do

func (msg *RegisterMsg) Do() (domain.SuccessResponse, error)

func (*RegisterMsg) SetAddress

func (msg *RegisterMsg) SetAddress(address domain.RegistrationAddress) Register

func (*RegisterMsg) SetBusinessEntity

func (msg *RegisterMsg) SetBusinessEntity(entityName string, businessType string, naicsCode int) Register

func (*RegisterMsg) SetBusinessWebsite

func (msg *RegisterMsg) SetBusinessWebsite(businessWebsite string) Register

func (*RegisterMsg) SetContact

func (msg *RegisterMsg) SetContact(contactAlias string, phone string, email string) Register

func (*RegisterMsg) SetCrypto

func (msg *RegisterMsg) SetCrypto(nickname string, address string) Register

func (*RegisterMsg) SetDoingBusinessAs

func (msg *RegisterMsg) SetDoingBusinessAs(dba string) Register

func (*RegisterMsg) SetIdentity

func (msg *RegisterMsg) SetIdentity(identityType domain.IdentityType, identityValue string) Register

func (*RegisterMsg) SetIndividualEntity

func (msg *RegisterMsg) SetIndividualEntity(firstName string, lastName string, birthDate string) Register

func (*RegisterMsg) SetRef

func (msg *RegisterMsg) SetRef(ref string) Register

type RegisterWallet

type RegisterWallet interface {
	SetRef(ref string) RegisterWallet
	SetWallet(nickname string, address string, newWalletSignature string) RegisterWallet
	Do(userWalletPrivateKey string) (domain.RegisterWalletResponse, error)
}

type RegisterWalletMsg

type RegisterWalletMsg struct {
	Header                      *Header       `json:"header"`
	WalletVerificationSignature string        `json:"wallet_verification_signature"`
	Wallet                      domain.Wallet `json:"wallet"`
}

func (*RegisterWalletMsg) Do

func (msg *RegisterWalletMsg) Do(userWalletPrivateKey string) (domain.RegisterWalletResponse, error)

func (*RegisterWalletMsg) SetRef

func (msg *RegisterWalletMsg) SetRef(ref string) RegisterWallet

func (*RegisterWalletMsg) SetWallet

func (msg *RegisterWalletMsg) SetWallet(nickname string, address string, newWalletSignature string) RegisterWallet

Sets wallet information to register. The new wallet signature should be generated from signing the new wallet address with the GenerateWalletSignature function.

type RegistrationEntity

type RegistrationEntity struct {
	Type            domain.EntityType `json:"type"`
	BirthDate       string            `json:"birthdate,omitempty"`
	FirstName       string            `json:"first_name,omitempty"`
	LastName        string            `json:"last_name,omitempty"`
	EntityName      string            `json:"entity_name,omitempty"`
	BusinessType    string            `json:"business_type,omitempty"`
	BusinessWebsite string            `json:"business_website,omitempty"`
	DoingBusinessAs string            `json:"doing_business_as,omitempty"`
	NaicsCode       int               `json:"naics_code,omitempty"`
}

type RegistrationIdentity

type RegistrationIdentity struct {
	IdentityAlias domain.IdentityType `json:"identity_alias"`
	IdentityValue string              `json:"identity_value"`
}

type RequestKyc

type RequestKyc interface {
	// Sets a reference ID tagging the request which will also be passed back in the response
	SetRef(ref string) RequestKyc
	// Sets the level of the KYC checks, if multiple levels are defined and a non-base level should be used. Not required for most use cases.
	SetKycLevel(kycLevel string) RequestKyc
	// Execute the Request KYC call, signing with one of the user's private wallet keys
	Do(userWalletPrivateKey string) (domain.RequestKycResponse, error)
}

type RequestKycMsg

type RequestKycMsg struct {
	Header   *Header `json:"header"`
	Message  string  `json:"message"`
	KycLevel string  `json:"kyc_level,omitempty"`
}

func (*RequestKycMsg) Do

func (msg *RequestKycMsg) Do(userWalletPrivateKey string) (domain.RequestKycResponse, error)

func (*RequestKycMsg) SetKycLevel

func (msg *RequestKycMsg) SetKycLevel(kycLevel string) RequestKyc

func (*RequestKycMsg) SetRef

func (msg *RequestKycMsg) SetRef(ref string) RequestKyc

type TransferSila

type TransferSila interface {
	SetRef(ref string) TransferSila
	SetAmountAndUser(amount int64, destinationHandle string) TransferSila
	SetDestinationWallet(destinationWalletName string) TransferSila
	SetDestinationAddress(destinationWalletAddress string) TransferSila
	SetDescriptor(descriptor string) TransferSila
	SetBusinessUuid(businessUuid string) TransferSila
	Do(userWalletPrivateKey string) (domain.TransferSilaResponse, error)
}

type TransferSilaMsg

type TransferSilaMsg struct {
	Header             *Header `json:"header"`
	Message            string  `json:"message"`
	Amount             int64   `json:"amount"`
	DestinationHandle  string  `json:"destination_handle"`
	DestinationWallet  string  `json:"destination_wallet,omitempty"`
	DestinationAddress string  `json:"destination_address,omitempty"`
	Descriptor         string  `json:"descriptor,omitempty"`
	BusinessUuid       string  `json:"business_uuid,omitempty"`
}

func (*TransferSilaMsg) Do

func (msg *TransferSilaMsg) Do(userWalletPrivateKey string) (domain.TransferSilaResponse, error)

The wallet key passed in is what determines the which wallet is the source wallet for the transfer

func (*TransferSilaMsg) SetAmountAndUser

func (msg *TransferSilaMsg) SetAmountAndUser(amount int64, destinationHandle string) TransferSila

func (*TransferSilaMsg) SetBusinessUuid

func (msg *TransferSilaMsg) SetBusinessUuid(businessUuid string) TransferSila

func (*TransferSilaMsg) SetDescriptor

func (msg *TransferSilaMsg) SetDescriptor(descriptor string) TransferSila

func (*TransferSilaMsg) SetDestinationAddress

func (msg *TransferSilaMsg) SetDestinationAddress(destinationWalletAddress string) TransferSila

func (*TransferSilaMsg) SetDestinationWallet

func (msg *TransferSilaMsg) SetDestinationWallet(destinationWalletName string) TransferSila

func (*TransferSilaMsg) SetRef

func (msg *TransferSilaMsg) SetRef(ref string) TransferSila

type UnlinkBusinessMember

type UnlinkBusinessMember interface {
	// Indicates the business member to unlink is an admin
	SetAdminRole() UnlinkBusinessMember
	// Indicates the business member to unlink is a beneficial owner
	SetBeneficialOwnerRole() UnlinkBusinessMember
	// Indicates the business member to unlink is a controlling officer
	SetControllingOfficerRole() UnlinkBusinessMember
	// Execute the Unlink Business Member call, signing with one of the user to unlink's private wallet keys and one of the business's private wallet keys
	Do(userWalletPrivateKey string, businessWalletPrivateKey string) (domain.UnlinkBusinessMemberResponse, error)
}

type UnlinkBusinessMemberMsg

type UnlinkBusinessMemberMsg struct {
	Header *Header `json:"header"`
	Role   string  `json:"role"`
}

func (*UnlinkBusinessMemberMsg) Do

func (msg *UnlinkBusinessMemberMsg) Do(userWalletPrivateKey string, businessWalletPrivateKey string) (domain.UnlinkBusinessMemberResponse, error)

func (*UnlinkBusinessMemberMsg) SetAdminRole

func (msg *UnlinkBusinessMemberMsg) SetAdminRole() UnlinkBusinessMember

func (*UnlinkBusinessMemberMsg) SetBeneficialOwnerRole

func (msg *UnlinkBusinessMemberMsg) SetBeneficialOwnerRole() UnlinkBusinessMember

func (*UnlinkBusinessMemberMsg) SetControllingOfficerRole

func (msg *UnlinkBusinessMemberMsg) SetControllingOfficerRole() UnlinkBusinessMember

type UpdateRegistrationData

type UpdateRegistrationData interface {
	// Sets the email information to update, and which email should be updated (via UUID).
	// The UUID can be fetched from GetEntity.
	SetEmail(emailUuid string, email string) UpdateRegistrationData
	// Sets the phone number information to update, and which email should be updated (via UUID).
	// The UUID can be fetched from GetEntity.
	SetPhone(phoneUuid string, phone string) UpdateRegistrationData
	// Sets the identity information to update, and which email should be updated (via UUID).
	// The UUID can be fetched from GetEntity.
	SetIdentity(identityUuid string, identityAlias string, identityValue string) UpdateRegistrationData
	// Sets the address information to update, and which email should be updated (via UUID).
	// The UUID can be fetched from GetEntity.
	SetAddress(addressUuid string, address domain.RegistrationAddress) UpdateRegistrationData
	// Sets the individual specific entity data to update
	SetIndividualEntity(firstName string, lastName string, fullName string, birthDate string) UpdateRegistrationData
	// Sets the business specific entity data to update
	SetBusinessEntity(businessName string, startDate string, businessType string, naicsCode int, doingBusinessAs string, businessWebsite string) UpdateRegistrationData
	// Execute the Update Registration Data call, signing with one of the user's private wallet keys
	Do(userWalletPrivateKey string) (domain.ModifyRegistrationDataResponse, error)
}

type UpdateRegistrationDataMsg

type UpdateRegistrationDataMsg struct {
	Header          *Header                     `json:"header"`
	Uuid            string                      `json:"uuid,omitempty"`
	Email           string                      `json:"email,omitempty"`
	Phone           string                      `json:"phone,omitempty"`
	IdentityAlias   string                      `json:"identity_alias,omitempty"`
	IdentityValue   string                      `json:"identity_value,omitempty"`
	AddressAlias    string                      `json:"address_alias,omitempty"`
	StreetAddress1  string                      `json:"street_address_1,omitempty"`
	StreetAddress2  string                      `json:"street_address_2,omitempty"`
	City            string                      `json:"city,omitempty"`
	State           string                      `json:"state,omitempty"`
	Country         string                      `json:"country,omitempty"`
	PostalCode      string                      `json:"postal_code,omitempty"`
	FirstName       string                      `json:"first_name,omitempty"`
	LastName        string                      `json:"last_name,omitempty"`
	EntityName      string                      `json:"entity_name,omitempty"`
	BirthDate       string                      `json:"birth_date,omitempty"`
	BusinessType    string                      `json:"business_type,omitempty"`
	NaicsCode       int                         `json:"naics_code,omitempty"`
	DoingBusinessAs string                      `json:"doing_business_as,omitempty"`
	BusinessWebsite string                      `json:"business_website,omitempty"`
	DataType        domain.RegistrationDataType `json:"-"`
}

func (*UpdateRegistrationDataMsg) Do

func (*UpdateRegistrationDataMsg) SetAddress

func (*UpdateRegistrationDataMsg) SetBusinessEntity

func (msg *UpdateRegistrationDataMsg) SetBusinessEntity(businessName string, startDate string, businessType string, naicsCode int, doingBusinessAs string, businessWebsite string) UpdateRegistrationData

func (*UpdateRegistrationDataMsg) SetEmail

func (msg *UpdateRegistrationDataMsg) SetEmail(emailUuid string, email string) UpdateRegistrationData

func (*UpdateRegistrationDataMsg) SetIdentity

func (msg *UpdateRegistrationDataMsg) SetIdentity(identityUuid string, identityAlias string, identityValue string) UpdateRegistrationData

func (*UpdateRegistrationDataMsg) SetIndividualEntity

func (msg *UpdateRegistrationDataMsg) SetIndividualEntity(firstName string, lastName string, fullName string, birthDate string) UpdateRegistrationData

func (*UpdateRegistrationDataMsg) SetPhone

func (msg *UpdateRegistrationDataMsg) SetPhone(phoneUuid string, phone string) UpdateRegistrationData

type UpdateWallet

type UpdateWallet interface {
	SetRef(ref string) UpdateWallet
	SetNickname(nickname string) UpdateWallet
	SetDefault(isDefault bool) UpdateWallet
	Do(userWalletPrivateKey string) (domain.UpdateWalletResponse, error)
}

type UpdateWalletMsg

type UpdateWalletMsg struct {
	Header   *Header `json:"header"`
	Nickname string  `json:"nickname,omitempty"`
	Default  bool    `json:"default,omitempty"`
}

func (*UpdateWalletMsg) Do

func (msg *UpdateWalletMsg) Do(userWalletPrivateKey string) (domain.UpdateWalletResponse, error)

The wallet key passed in is what determines the wallet updated

func (*UpdateWalletMsg) SetDefault

func (msg *UpdateWalletMsg) SetDefault(isDefault bool) UpdateWallet

func (*UpdateWalletMsg) SetNickname

func (msg *UpdateWalletMsg) SetNickname(nickname string) UpdateWallet

func (*UpdateWalletMsg) SetRef

func (msg *UpdateWalletMsg) SetRef(ref string) UpdateWallet

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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