Documentation
¶
Index ¶
- func Bool(b bool) param.Opt[bool]
- func BoolPtr(v bool) *bool
- func DefaultClientOptions() []option.RequestOption
- func File(rdr io.Reader, filename string, contentType string) file
- func Float(f float64) param.Opt[float64]
- func FloatPtr(v float64) *float64
- func Int(i int64) param.Opt[int64]
- func IntPtr(v int64) *int64
- func Opt[T comparable](v T) param.Opt[T]
- func Ptr[T any](v T) *T
- func String(s string) param.Opt[string]
- func StringPtr(v string) *string
- func Time(t time.Time) param.Opt[time.Time]
- func TimePtr(v time.Time) *time.Time
- type Client
- func (r *Client) Delete(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Execute(ctx context.Context, method string, path string, params any, res any, ...) error
- func (r *Client) Get(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Patch(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Post(ctx context.Context, path string, params any, res any, ...) error
- func (r *Client) Put(ctx context.Context, path string, params any, res any, ...) error
- type Error
- type Mission
- type MissionListParams
- type MissionListParamsStatus
- type MissionRequirement
- type MissionService
- type MissionStatus
- type StakingService
- type StakingVault
- type StakingVaultReward
- type StatGetResponse
- type StatService
- type TokenGetInfoResponse
- type TokenGetInfoResponseListing
- type TokenService
- type User
- type UserListMissionsResponse
- type UserListReferralsResponse
- type UserListReferralsResponseStatus
- type UserNewParams
- type UserService
- func (r *UserService) GetByWallet(ctx context.Context, address string, opts ...option.RequestOption) (res *User, err error)
- func (r *UserService) ListMissions(ctx context.Context, userID int64, opts ...option.RequestOption) (res *[]UserListMissionsResponse, err error)
- func (r *UserService) ListReferrals(ctx context.Context, userID int64, opts ...option.RequestOption) (res *[]UserListReferralsResponse, err error)
- func (r *UserService) New(ctx context.Context, body UserNewParams, opts ...option.RequestOption) (res *User, err error)
- type UserStake
- type UserStakeNewParams
- type UserStakeService
- type UserStakeStatus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefaultClientOptions ¶
func DefaultClientOptions() []option.RequestOption
DefaultClientOptions read from the environment (EARN_APP_API_KEY, EARN_APP_BASE_URL). This should be used to initialize new clients.
func Opt ¶
func Opt[T comparable](v T) param.Opt[T]
Types ¶
type Client ¶
type Client struct {
Options []option.RequestOption
Users UserService
Missions MissionService
Staking StakingService
Stats StatService
Token TokenService
}
Client creates a struct with services and top level methods that help with interacting with the earn-app API. You should not instantiate this client directly, and instead use the NewClient method instead.
func NewClient ¶
func NewClient(opts ...option.RequestOption) (r Client)
NewClient generates a new client with the default option read from the environment (EARN_APP_API_KEY, EARN_APP_BASE_URL). The option passed in as arguments are applied after these default arguments, and all option will be passed down to the services and requests that this client makes.
func (*Client) Delete ¶
func (r *Client) Delete(ctx context.Context, path string, params any, res any, opts ...option.RequestOption) error
Delete makes a DELETE request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Execute ¶
func (r *Client) Execute(ctx context.Context, method string, path string, params any, res any, opts ...option.RequestOption) error
Execute makes a request with the given context, method, URL, request params, response, and request options. This is useful for hitting undocumented endpoints while retaining the base URL, auth, retries, and other options from the client.
If a byte slice or an io.Reader is supplied to params, it will be used as-is for the request body.
The params is by default serialized into the body using encoding/json. If your type implements a MarshalJSON function, it will be used instead to serialize the request. If a URLQuery method is implemented, the returned url.Values will be used as query strings to the url.
If your params struct uses param.Field, you must provide either [MarshalJSON], [URLQuery], and/or [MarshalForm] functions. It is undefined behavior to use a struct uses param.Field without specifying how it is serialized.
Any "…Params" object defined in this library can be used as the request argument. Note that 'path' arguments will not be forwarded into the url.
The response body will be deserialized into the res variable, depending on its type:
- A pointer to a *http.Response is populated by the raw response.
- A pointer to a byte array will be populated with the contents of the request body.
- A pointer to any other type uses this library's default JSON decoding, which respects UnmarshalJSON if it is defined on the type.
- A nil value will not read the response body.
For even greater flexibility, see option.WithResponseInto and option.WithResponseBodyInto.
func (*Client) Get ¶
func (r *Client) Get(ctx context.Context, path string, params any, res any, opts ...option.RequestOption) error
Get makes a GET request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
func (*Client) Patch ¶
func (r *Client) Patch(ctx context.Context, path string, params any, res any, opts ...option.RequestOption) error
Patch makes a PATCH request with the given URL, params, and optionally deserializes to a response. See [Execute] documentation on the params and response.
type Mission ¶
type Mission struct {
// Unique mission identifier
ID int64 `json:"id"`
// Mission category
Category string `json:"category"`
// Detailed mission description
Description string `json:"description"`
// Mission end timestamp
EndDate time.Time `json:"endDate" format:"date-time"`
// Points rewarded for completing the mission
Points int64 `json:"points"`
// List of requirements to complete the mission
Requirements []MissionRequirement `json:"requirements"`
// Mission start timestamp
StartDate time.Time `json:"startDate" format:"date-time"`
// Current mission status
//
// Any of "active", "inactive", "completed".
Status MissionStatus `json:"status"`
// Mission title
Title string `json:"title"`
// Token amount rewarded for completing the mission
TokenReward float64 `json:"tokenReward"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Category respjson.Field
Description respjson.Field
EndDate respjson.Field
Points respjson.Field
Requirements respjson.Field
StartDate respjson.Field
Status respjson.Field
Title respjson.Field
TokenReward respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (*Mission) UnmarshalJSON ¶
type MissionListParams ¶
type MissionListParams struct {
// Filter missions by category
Category param.Opt[string] `query:"category,omitzero" json:"-"`
// Filter missions by status
//
// Any of "active", "inactive", "completed".
Status MissionListParamsStatus `query:"status,omitzero" json:"-"`
// contains filtered or unexported fields
}
func (MissionListParams) URLQuery ¶
func (r MissionListParams) URLQuery() (v url.Values, err error)
URLQuery serializes MissionListParams's query parameters as `url.Values`.
type MissionListParamsStatus ¶
type MissionListParamsStatus string
Filter missions by status
const ( MissionListParamsStatusActive MissionListParamsStatus = "active" MissionListParamsStatusInactive MissionListParamsStatus = "inactive" MissionListParamsStatusCompleted MissionListParamsStatus = "completed" )
type MissionRequirement ¶
type MissionRequirement struct {
// Unique requirement identifier
ID int64 `json:"id"`
// Requirement description
Description string `json:"description"`
// Target value to reach
Target int64 `json:"target"`
// Type of requirement
//
// Any of "transaction", "social", "quiz", "game", "other".
Type string `json:"type"`
// How the requirement is verified
//
// Any of "automatic", "manual".
VerificationMethod string `json:"verificationMethod"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Description respjson.Field
Target respjson.Field
Type respjson.Field
VerificationMethod respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (MissionRequirement) RawJSON ¶
func (r MissionRequirement) RawJSON() string
Returns the unmodified JSON received from the API
func (*MissionRequirement) UnmarshalJSON ¶
func (r *MissionRequirement) UnmarshalJSON(data []byte) error
type MissionService ¶
type MissionService struct {
Options []option.RequestOption
}
MissionService contains methods and other services that help with interacting with the earn-app API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewMissionService method instead.
func NewMissionService ¶
func NewMissionService(opts ...option.RequestOption) (r MissionService)
NewMissionService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*MissionService) Get ¶
func (r *MissionService) Get(ctx context.Context, id int64, opts ...option.RequestOption) (res *Mission, err error)
Retrieve detailed information about a specific mission
func (*MissionService) List ¶
func (r *MissionService) List(ctx context.Context, query MissionListParams, opts ...option.RequestOption) (res *[]Mission, err error)
Retrieve the list of all available missions
type MissionStatus ¶
type MissionStatus string
Current mission status
const ( MissionStatusActive MissionStatus = "active" MissionStatusInactive MissionStatus = "inactive" MissionStatusCompleted MissionStatus = "completed" )
type StakingService ¶
type StakingService struct {
Options []option.RequestOption
}
StakingService contains methods and other services that help with interacting with the earn-app API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewStakingService method instead.
func NewStakingService ¶
func NewStakingService(opts ...option.RequestOption) (r StakingService)
NewStakingService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*StakingService) ListVaults ¶
func (r *StakingService) ListVaults(ctx context.Context, opts ...option.RequestOption) (res *[]StakingVault, err error)
Retrieve all available staking vaults
type StakingVault ¶
type StakingVault struct {
// Unique vault identifier
ID int64 `json:"id"`
// Whether the vault is active
Active bool `json:"active"`
// Annual percentage rate
Apr float64 `json:"apr"`
// Vault description
Description string `json:"description"`
// Minimum lock period in days
MinLockPeriod int64 `json:"minLockPeriod"`
// Vault name
Name string `json:"name"`
// Rewards offered by this vault
Rewards []StakingVaultReward `json:"rewards"`
// Total amount staked in this vault
TotalStaked float64 `json:"totalStaked"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Active respjson.Field
Apr respjson.Field
Description respjson.Field
MinLockPeriod respjson.Field
Name respjson.Field
Rewards respjson.Field
TotalStaked respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (StakingVault) RawJSON ¶
func (r StakingVault) RawJSON() string
Returns the unmodified JSON received from the API
func (*StakingVault) UnmarshalJSON ¶
func (r *StakingVault) UnmarshalJSON(data []byte) error
type StakingVaultReward ¶
type StakingVaultReward struct {
// Unique reward identifier
ID int64 `json:"id"`
// Reward description
Description string `json:"description"`
// When the reward is distributed
//
// Any of "daily", "weekly", "monthly", "end".
Distribution string `json:"distribution"`
// Reward rate
Rate float64 `json:"rate"`
// Type of reward
//
// Any of "token", "nft", "boost", "other".
Type string `json:"type"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Description respjson.Field
Distribution respjson.Field
Rate respjson.Field
Type respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (StakingVaultReward) RawJSON ¶
func (r StakingVaultReward) RawJSON() string
Returns the unmodified JSON received from the API
func (*StakingVaultReward) UnmarshalJSON ¶
func (r *StakingVaultReward) UnmarshalJSON(data []byte) error
type StatGetResponse ¶
type StatGetResponse struct {
// Number of active missions
ActiveMissions int64 `json:"activeMissions"`
// Number of active quests
ActiveQuests int64 `json:"activeQuests"`
// Daily active users
DailyActiveUsers int64 `json:"dailyActiveUsers"`
// Monthly active users
MonthlyActiveUsers int64 `json:"monthlyActiveUsers"`
// Total amount staked across all vaults
TotalStaked float64 `json:"totalStaked"`
// Total tokens distributed as rewards
TotalTokensDistributed float64 `json:"totalTokensDistributed"`
// Total number of users
TotalUsers int64 `json:"totalUsers"`
// Weekly active users
WeeklyActiveUsers int64 `json:"weeklyActiveUsers"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ActiveMissions respjson.Field
ActiveQuests respjson.Field
DailyActiveUsers respjson.Field
MonthlyActiveUsers respjson.Field
TotalStaked respjson.Field
TotalTokensDistributed respjson.Field
TotalUsers respjson.Field
WeeklyActiveUsers respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (StatGetResponse) RawJSON ¶
func (r StatGetResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*StatGetResponse) UnmarshalJSON ¶
func (r *StatGetResponse) UnmarshalJSON(data []byte) error
type StatService ¶
type StatService struct {
Options []option.RequestOption
}
StatService contains methods and other services that help with interacting with the earn-app API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewStatService method instead.
func NewStatService ¶
func NewStatService(opts ...option.RequestOption) (r StatService)
NewStatService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*StatService) Get ¶
func (r *StatService) Get(ctx context.Context, opts ...option.RequestOption) (res *StatGetResponse, err error)
Retrieve overall platform statistics and metrics
type TokenGetInfoResponse ¶
type TokenGetInfoResponse struct {
// Token contract address
Address string `json:"address"`
// Circulating token supply
CirculatingSupply float64 `json:"circulatingSupply"`
// Token decimals
Decimals int64 `json:"decimals"`
// Exchanges where the token is listed
Listings []TokenGetInfoResponseListing `json:"listings"`
// Current market capitalization
MarketCap float64 `json:"marketCap"`
// Token name
Name string `json:"name"`
// Current token price in USD
Price float64 `json:"price"`
// 24-hour price change percentage
PriceChange24h float64 `json:"priceChange24h"`
// Token symbol
Symbol string `json:"symbol"`
// Total token supply
TotalSupply float64 `json:"totalSupply"`
// 24-hour trading volume
Volume24h float64 `json:"volume24h"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Address respjson.Field
CirculatingSupply respjson.Field
Decimals respjson.Field
Listings respjson.Field
MarketCap respjson.Field
Name respjson.Field
Price respjson.Field
PriceChange24h respjson.Field
Symbol respjson.Field
TotalSupply respjson.Field
Volume24h respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (TokenGetInfoResponse) RawJSON ¶
func (r TokenGetInfoResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*TokenGetInfoResponse) UnmarshalJSON ¶
func (r *TokenGetInfoResponse) UnmarshalJSON(data []byte) error
type TokenGetInfoResponseListing ¶
type TokenGetInfoResponseListing struct {
// Exchange name
Exchange string `json:"exchange"`
// Trading pair
Pair string `json:"pair"`
// Link to exchange
URL string `json:"url" format:"uri"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
Exchange respjson.Field
Pair respjson.Field
URL respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (TokenGetInfoResponseListing) RawJSON ¶
func (r TokenGetInfoResponseListing) RawJSON() string
Returns the unmodified JSON received from the API
func (*TokenGetInfoResponseListing) UnmarshalJSON ¶
func (r *TokenGetInfoResponseListing) UnmarshalJSON(data []byte) error
type TokenService ¶
type TokenService struct {
Options []option.RequestOption
}
TokenService contains methods and other services that help with interacting with the earn-app API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewTokenService method instead.
func NewTokenService ¶
func NewTokenService(opts ...option.RequestOption) (r TokenService)
NewTokenService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*TokenService) GetInfo ¶
func (r *TokenService) GetInfo(ctx context.Context, opts ...option.RequestOption) (res *TokenGetInfoResponse, err error)
Retrieve current information about the $LERF token
type User ¶
type User struct {
// Unique user identifier
ID int64 `json:"id"`
// User creation timestamp
CreatedAt time.Time `json:"createdAt" format:"date-time"`
// User's email address
Email string `json:"email" format:"email"`
// User's current level
Level int64 `json:"level"`
// User's unique referral code
ReferralCode string `json:"referralCode"`
// Total points earned by the user
TotalPoints int64 `json:"totalPoints"`
// Last update timestamp
UpdatedAt time.Time `json:"updatedAt" format:"date-time"`
// User's chosen username
Username string `json:"username"`
// User's blockchain wallet address
WalletAddress string `json:"walletAddress"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
CreatedAt respjson.Field
Email respjson.Field
Level respjson.Field
ReferralCode respjson.Field
TotalPoints respjson.Field
UpdatedAt respjson.Field
Username respjson.Field
WalletAddress respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (*User) UnmarshalJSON ¶
type UserListMissionsResponse ¶
type UserListMissionsResponse struct {
// Unique progress identifier
ID int64 `json:"id"`
// Whether the reward has been claimed
Claimed bool `json:"claimed"`
// Reward claim timestamp
ClaimedAt time.Time `json:"claimedAt" format:"date-time"`
// Whether the mission is completed
Completed bool `json:"completed"`
// Completion timestamp
CompletedAt time.Time `json:"completedAt" format:"date-time"`
Mission Mission `json:"mission"`
// Mission identifier
MissionID int64 `json:"missionId"`
// Current progress percentage (0-100)
Progress float64 `json:"progress"`
// User identifier
UserID int64 `json:"userId"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Claimed respjson.Field
ClaimedAt respjson.Field
Completed respjson.Field
CompletedAt respjson.Field
Mission respjson.Field
MissionID respjson.Field
Progress respjson.Field
UserID respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (UserListMissionsResponse) RawJSON ¶
func (r UserListMissionsResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*UserListMissionsResponse) UnmarshalJSON ¶
func (r *UserListMissionsResponse) UnmarshalJSON(data []byte) error
type UserListReferralsResponse ¶
type UserListReferralsResponse struct {
// Unique referral identifier
ID int64 `json:"id"`
// Referral code used
Code string `json:"code"`
// Referral creation timestamp
CreatedAt time.Time `json:"createdAt" format:"date-time"`
Referee User `json:"referee"`
// Referred user identifier
RefereeID int64 `json:"refereeId"`
// Referrer user identifier
ReferrerID int64 `json:"referrerId"`
// Reward amount given to referrer
RewardAmount float64 `json:"rewardAmount"`
// Reward timestamp
RewardedAt time.Time `json:"rewardedAt" format:"date-time"`
// Referral status
//
// Any of "pending", "rewarded", "expired".
Status UserListReferralsResponseStatus `json:"status"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Code respjson.Field
CreatedAt respjson.Field
Referee respjson.Field
RefereeID respjson.Field
ReferrerID respjson.Field
RewardAmount respjson.Field
RewardedAt respjson.Field
Status respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (UserListReferralsResponse) RawJSON ¶
func (r UserListReferralsResponse) RawJSON() string
Returns the unmodified JSON received from the API
func (*UserListReferralsResponse) UnmarshalJSON ¶
func (r *UserListReferralsResponse) UnmarshalJSON(data []byte) error
type UserListReferralsResponseStatus ¶
type UserListReferralsResponseStatus string
Referral status
const ( UserListReferralsResponseStatusPending UserListReferralsResponseStatus = "pending" UserListReferralsResponseStatusRewarded UserListReferralsResponseStatus = "rewarded" UserListReferralsResponseStatusExpired UserListReferralsResponseStatus = "expired" )
type UserNewParams ¶
type UserNewParams struct {
// User's blockchain wallet address
WalletAddress string `json:"walletAddress,required"`
// User's email address
Email param.Opt[string] `json:"email,omitzero" format:"email"`
// Referral code used during signup
ReferralCode param.Opt[string] `json:"referralCode,omitzero"`
// User's chosen username
Username param.Opt[string] `json:"username,omitzero"`
// contains filtered or unexported fields
}
func (UserNewParams) MarshalJSON ¶
func (r UserNewParams) MarshalJSON() (data []byte, err error)
func (*UserNewParams) UnmarshalJSON ¶
func (r *UserNewParams) UnmarshalJSON(data []byte) error
type UserService ¶
type UserService struct {
Options []option.RequestOption
Stakes UserStakeService
}
UserService contains methods and other services that help with interacting with the earn-app API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewUserService method instead.
func NewUserService ¶
func NewUserService(opts ...option.RequestOption) (r UserService)
NewUserService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*UserService) GetByWallet ¶
func (r *UserService) GetByWallet(ctx context.Context, address string, opts ...option.RequestOption) (res *User, err error)
Retrieve user details by their blockchain wallet address
func (*UserService) ListMissions ¶
func (r *UserService) ListMissions(ctx context.Context, userID int64, opts ...option.RequestOption) (res *[]UserListMissionsResponse, err error)
Retrieve all missions for a specific user
func (*UserService) ListReferrals ¶
func (r *UserService) ListReferrals(ctx context.Context, userID int64, opts ...option.RequestOption) (res *[]UserListReferralsResponse, err error)
Retrieve all referrals made by a specific user
func (*UserService) New ¶
func (r *UserService) New(ctx context.Context, body UserNewParams, opts ...option.RequestOption) (res *User, err error)
Register a new user in the system with their wallet address
type UserStake ¶
type UserStake struct {
// Unique stake identifier
ID int64 `json:"id"`
// Staked amount
Amount float64 `json:"amount"`
// Whether rewards are auto-compounded
AutoCompound bool `json:"autoCompound"`
// End timestamp
EndDate time.Time `json:"endDate" format:"date-time"`
// Lock period in days
LockPeriod int64 `json:"lockPeriod"`
// Start timestamp
StartDate time.Time `json:"startDate" format:"date-time"`
// Stake status
//
// Any of "active", "completed", "claimed".
Status UserStakeStatus `json:"status"`
// Total rewards earned
TotalRewards float64 `json:"totalRewards"`
// User identifier
UserID int64 `json:"userId"`
Vault StakingVault `json:"vault"`
// Vault identifier
VaultID int64 `json:"vaultId"`
// JSON contains metadata for fields, check presence with [respjson.Field.Valid].
JSON struct {
ID respjson.Field
Amount respjson.Field
AutoCompound respjson.Field
EndDate respjson.Field
LockPeriod respjson.Field
StartDate respjson.Field
Status respjson.Field
TotalRewards respjson.Field
UserID respjson.Field
Vault respjson.Field
VaultID respjson.Field
ExtraFields map[string]respjson.Field
// contains filtered or unexported fields
} `json:"-"`
}
func (*UserStake) UnmarshalJSON ¶
type UserStakeNewParams ¶
type UserStakeNewParams struct {
// Amount to stake
Amount float64 `json:"amount,required"`
// Vault identifier
VaultID int64 `json:"vaultId,required"`
// Whether to auto-compound rewards
AutoCompound param.Opt[bool] `json:"autoCompound,omitzero"`
// Lock period in days
LockPeriod param.Opt[int64] `json:"lockPeriod,omitzero"`
// contains filtered or unexported fields
}
func (UserStakeNewParams) MarshalJSON ¶
func (r UserStakeNewParams) MarshalJSON() (data []byte, err error)
func (*UserStakeNewParams) UnmarshalJSON ¶
func (r *UserStakeNewParams) UnmarshalJSON(data []byte) error
type UserStakeService ¶
type UserStakeService struct {
Options []option.RequestOption
}
UserStakeService contains methods and other services that help with interacting with the earn-app API.
Note, unlike clients, this service does not read variables from the environment automatically. You should not instantiate this service directly, and instead use the NewUserStakeService method instead.
func NewUserStakeService ¶
func NewUserStakeService(opts ...option.RequestOption) (r UserStakeService)
NewUserStakeService generates a new service that applies the given options to each request. These options are applied after the parent client's options (if there is one), and before any request-specific options.
func (*UserStakeService) List ¶
func (r *UserStakeService) List(ctx context.Context, userID int64, opts ...option.RequestOption) (res *[]UserStake, err error)
Retrieve all staking positions for a specific user
func (*UserStakeService) New ¶
func (r *UserStakeService) New(ctx context.Context, userID int64, body UserStakeNewParams, opts ...option.RequestOption) (res *UserStake, err error)
Stake tokens in a vault
type UserStakeStatus ¶
type UserStakeStatus string
Stake status
const ( UserStakeStatusActive UserStakeStatus = "active" UserStakeStatusCompleted UserStakeStatus = "completed" UserStakeStatusClaimed UserStakeStatus = "claimed" )
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
encoding/json
Package json implements encoding and decoding of JSON as defined in RFC 7159.
|
Package json implements encoding and decoding of JSON as defined in RFC 7159. |
|
encoding/json/shims
This package provides shims over Go 1.2{2,3} APIs which are missing from Go 1.21, and used by the Go 1.24 encoding/json package.
|
This package provides shims over Go 1.2{2,3} APIs which are missing from Go 1.21, and used by the Go 1.24 encoding/json package. |
|
packages
|
|
|
shared
|
|