> For the complete documentation index, see [llms.txt](https://docs.gnoswap.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gnoswap.io/contracts/staker/deposit.gno.md).

# deposit.gno

{% embed url="<https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno>" %}

## DefaultAllowedTokens

```go
func DefaultAllowedTokens() []string
```

DefaultAllowedTokens returns the token paths accepted by the staker's default configuration.

#### Return Values

| Name         | Type      | Description                                            |
| ------------ | --------- | ------------------------------------------------------ |
| `tokenPaths` | \[]string | Slice containing the GNS and wrapped-GNOT token paths. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L531)

## Types

### Deposit

```go
type Deposit struct
```

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L9)

#### Methods

**AddExternalIncentiveId**

```go
func (d *Deposit) AddExternalIncentiveId(
	incentiveId string
)
```

AddExternalIncentiveId adds an external incentive id to the deposit.

#### Parameters

| Name          | Type   | Description                                          |
| ------------- | ------ | ---------------------------------------------------- |
| `incentiveId` | string | External incentive ID to add to the deposit's index. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L267)

**Clone**

```go
func (d *Deposit) Clone() *Deposit
```

Clone returns a deep copy of the deposit.

#### Return Values

| Name      | Type      | Description                                                |
| --------- | --------- | ---------------------------------------------------------- |
| `deposit` | \*Deposit | Deep copy of the deposit, or nil when the receiver is nil. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L375)

**CollectedExternalRewards**

```go
func (d *Deposit) CollectedExternalRewards() map[string]int64
```

CollectedExternalRewards returns cumulative external rewards keyed by incentive ID.

#### Return Values

| Name                       | Type              | Description                                                       |
| -------------------------- | ----------------- | ----------------------------------------------------------------- |
| `collectedExternalRewards` | map\[string]int64 | Map from incentive ID to the amount collected for that incentive. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L125)

**CollectedInternalReward**

```go
func (d *Deposit) CollectedInternalReward() int64
```

CollectedInternalReward returns the cumulative internal reward recorded for the deposit.

#### Return Values

| Name                      | Type  | Description                                                              |
| ------------------------- | ----- | ------------------------------------------------------------------------ |
| `collectedInternalReward` | int64 | Accumulated internal reward amount in the reward token's smallest units. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L109)

**ExternalIncentiveIds**

```go
func (d *Deposit) ExternalIncentiveIds() map[string]bool
```

ExternalIncentiveIds returns the deposit's indexed external incentive IDs.

#### Return Values

| Name                   | Type             | Description                                                |
| ---------------------- | ---------------- | ---------------------------------------------------------- |
| `externalIncentiveIds` | map\[string]bool | Map from each indexed incentive ID to its membership flag. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L251)

**ExternalRewardLastCollectTimes**

```go
func (d *Deposit) ExternalRewardLastCollectTimes() map[string]int64
```

ExternalRewardLastCollectTimes returns per-incentive external collection cursors.

#### Return Values

| Name                             | Type              | Description                                                        |
| -------------------------------- | ----------------- | ------------------------------------------------------------------ |
| `externalRewardLastCollectTimes` | map\[string]int64 | Map from incentive ID to its last collection time in Unix seconds. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L172)

**GetCollectedExternalReward**

```go
func (d *Deposit) GetCollectedExternalReward(
	incentiveID string
) (int64, bool)
```

GetCollectedExternalReward returns the collected external reward for the given incentive ID. Returns 0 if the incentive ID does not exist.

#### Parameters

| Name          | Type   | Description                                                       |
| ------------- | ------ | ----------------------------------------------------------------- |
| `incentiveID` | string | External incentive ID whose collected amount should be looked up. |

#### Return Values

| Name     | Type  | Description                                                      |
| -------- | ----- | ---------------------------------------------------------------- |
| `reward` | int64 | Collected amount for the incentive, or 0 when the ID is absent.  |
| `exists` | bool  | True when the map contains incentiveID; false when it is absent. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L146)

**GetExternalIncentiveIdList**

```go
func (d *Deposit) GetExternalIncentiveIdList() []string
```

GetExternalIncentiveIdList returns a list of external incentive ids for the deposit.

#### Return Values

| Name           | Type      | Description                                                                                                             |
| -------------- | --------- | ----------------------------------------------------------------------------------------------------------------------- |
| `incentiveIds` | \[]string | Slice containing the incentive IDs currently indexed on the deposit; order follows map iteration and is not guaranteed. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L306)

**GetExternalRewardLastCollectTime**

```go
func (d *Deposit) GetExternalRewardLastCollectTime(
	incentiveID string
) (int64, bool)
```

GetExternalRewardLastCollectTime returns the last collect time for the given incentive ID. Returns 0 if the incentive ID does not exist.

#### Parameters

| Name          | Type   | Description                                                        |
| ------------- | ------ | ------------------------------------------------------------------ |
| `incentiveID` | string | External incentive ID whose collection cursor should be looked up. |

#### Return Values

| Name     | Type  | Description                                                                         |
| -------- | ----- | ----------------------------------------------------------------------------------- |
| `time`   | int64 | Last collection time for the incentive in Unix seconds, or 0 when the ID is absent. |
| `exists` | bool  | True when the map contains incentiveID; false when it is absent.                    |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L193)

**HasExternalIncentiveId**

```go
func (d *Deposit) HasExternalIncentiveId(
	incentiveId string
) bool
```

HasExternalIncentiveId checks if the deposit has the given external incentive id.

#### Parameters

| Name          | Type   | Description                                               |
| ------------- | ------ | --------------------------------------------------------- |
| `incentiveId` | string | External incentive ID whose membership should be checked. |

#### Return Values

| Name           | Type | Description                                                       |
| -------------- | ---- | ----------------------------------------------------------------- |
| `hasIncentive` | bool | True when incentiveId is indexed on the deposit; false otherwise. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L282)

**InternalRewardLastCollectTime**

```go
func (d *Deposit) InternalRewardLastCollectTime() int64
```

InternalRewardLastCollectTime returns the internal-reward collection cursor.

#### Return Values

| Name                            | Type  | Description                                           |
| ------------------------------- | ----- | ----------------------------------------------------- |
| `internalRewardLastCollectTime` | int64 | Last internal reward collection time in Unix seconds. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L93)

**IterateExternalIncentiveIds**

```go
func (d *Deposit) IterateExternalIncentiveIds(
	fn func(string) bool
)
```

IterateExternalIncentiveIds iterates over external incentive IDs without allocating a slice. The callback function receives each incentive ID and should return false to continue iteration, or true to stop early. This method is more memory-efficient than GetExternalIncentiveIdList for cases where you only need to process IDs sequentially.

#### Parameters

| Name | Type              | Description                                                                                                |
| ---- | ----------------- | ---------------------------------------------------------------------------------------------------------- |
| `fn` | func(string) bool | Callback invoked with each indexed incentive ID; return true to stop iteration early or false to continue. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L327)

**LastExternalIncentiveUpdatedAt**

```go
func (d *Deposit) LastExternalIncentiveUpdatedAt() int64
```

LastExternalIncentiveUpdatedAt returns the timestamp of the last external-incentive index refresh.

#### Return Values

| Name        | Type  | Description                        |
| ----------- | ----- | ---------------------------------- |
| `timestamp` | int64 | Last refresh time in Unix seconds. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L359)

**Liquidity**

```go
func (d *Deposit) Liquidity() *u256.Uint
```

Liquidity returns the LP liquidity recorded for the deposit.

#### Return Values

| Name        | Type        | Description                                          |
| ----------- | ----------- | ---------------------------------------------------- |
| `liquidity` | \*u256.Uint | Liquidity amount represented by the staked position. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L61)

**Owner**

```go
func (d *Deposit) Owner() address
```

Owner returns the address that owns the staked position.

#### Return Values

| Name    | Type    | Description                            |
| ------- | ------- | -------------------------------------- |
| `owner` | address | Address recorded as the deposit owner. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L29)

**RemoveExternalIncentiveId**

```go
func (d *Deposit) RemoveExternalIncentiveId(
	incentiveId string
)
```

RemoveExternalIncentiveId removes an external incentive id from the deposit.

#### Parameters

| Name          | Type   | Description                                               |
| ------------- | ------ | --------------------------------------------------------- |
| `incentiveId` | string | External incentive ID to remove from the deposit's index. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L294)

**SetCollectedExternalReward**

```go
func (d *Deposit) SetCollectedExternalReward(
	incentiveID string,
	reward int64
)
```

SetCollectedExternalReward records the cumulative amount collected for one incentive.

#### Parameters

| Name          | Type   | Description                                                 |
| ------------- | ------ | ----------------------------------------------------------- |
| `incentiveID` | string | External incentive ID whose collected amount should be set. |
| `reward`      | int64  | Cumulative collected amount for incentiveID.                |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L160)

**SetCollectedExternalRewards**

```go
func (d *Deposit) SetCollectedExternalRewards(
	collectedExternalRewards map[string]int64
)
```

SetCollectedExternalRewards replaces the cumulative external-reward map.

#### Parameters

| Name                       | Type              | Description                                           |
| -------------------------- | ----------------- | ----------------------------------------------------- |
| `collectedExternalRewards` | map\[string]int64 | Map from incentive ID to its collected reward amount. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L133)

**SetCollectedInternalReward**

```go
func (d *Deposit) SetCollectedInternalReward(
	collectedInternalReward int64
)
```

SetCollectedInternalReward replaces the cumulative internal reward recorded for the deposit.

#### Parameters

| Name                      | Type  | Description                                                             |
| ------------------------- | ----- | ----------------------------------------------------------------------- |
| `collectedInternalReward` | int64 | Cumulative internal reward amount in the reward token's smallest units. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L117)

**SetExternalIncentiveIds**

```go
func (d *Deposit) SetExternalIncentiveIds(
	externalIncentiveIds map[string]bool
)
```

SetExternalIncentiveIds replaces the deposit's indexed external incentive IDs.

#### Parameters

| Name                   | Type             | Description                                     |
| ---------------------- | ---------------- | ----------------------------------------------- |
| `externalIncentiveIds` | map\[string]bool | Map of incentive IDs to their membership flags. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L259)

**SetExternalRewardLastCollectTime**

```go
func (d *Deposit) SetExternalRewardLastCollectTime(
	incentiveID string,
	currentTime int64
)
```

SetExternalRewardLastCollectTime records the collection cursor for one incentive.

#### Parameters

| Name          | Type   | Description                                          |
| ------------- | ------ | ---------------------------------------------------- |
| `incentiveID` | string | External incentive ID whose cursor should be set.    |
| `currentTime` | int64  | New collection time for incentiveID in Unix seconds. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L207)

**SetExternalRewardLastCollectTimes**

```go
func (d *Deposit) SetExternalRewardLastCollectTimes(
	externalRewardLastCollectTimes map[string]int64
)
```

SetExternalRewardLastCollectTimes replaces the per-incentive external collection cursors.

#### Parameters

| Name                             | Type              | Description                                                        |
| -------------------------------- | ----------------- | ------------------------------------------------------------------ |
| `externalRewardLastCollectTimes` | map\[string]int64 | Map from incentive ID to its last collection time in Unix seconds. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L180)

**SetInternalRewardLastCollectTime**

```go
func (d *Deposit) SetInternalRewardLastCollectTime(
	internalRewardLastCollectTime int64
)
```

SetInternalRewardLastCollectTime updates the internal-reward collection cursor.

#### Parameters

| Name                            | Type  | Description                                               |
| ------------------------------- | ----- | --------------------------------------------------------- |
| `internalRewardLastCollectTime` | int64 | New last internal reward collection time in Unix seconds. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L101)

**SetLastExternalIncentiveUpdatedAt**

```go
func (d *Deposit) SetLastExternalIncentiveUpdatedAt(
	timestamp int64
)
```

SetLastExternalIncentiveUpdatedAt updates the external-incentive index refresh timestamp.

#### Parameters

| Name        | Type  | Description                             |
| ----------- | ----- | --------------------------------------- |
| `timestamp` | int64 | Refresh time to record in Unix seconds. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L367)

**SetLiquidity**

```go
func (d *Deposit) SetLiquidity(
	liquidity *u256.Uint
)
```

SetLiquidity replaces the LP liquidity recorded for the deposit.

#### Parameters

| Name        | Type        | Description                                                          |
| ----------- | ----------- | -------------------------------------------------------------------- |
| `liquidity` | \*u256.Uint | New liquidity amount; the setter copies this value into the deposit. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L69)

**SetOwner**

```go
func (d *Deposit) SetOwner(
	owner address
)
```

SetOwner updates the address recorded as the deposit owner.

#### Parameters

| Name    | Type    | Description                          |
| ------- | ------- | ------------------------------------ |
| `owner` | address | Address that should own the deposit. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L37)

**SetStakeTime**

```go
func (d *Deposit) SetStakeTime(
	stakeTime int64
)
```

SetStakeTime updates the Unix timestamp at which the position was staked.

#### Parameters

| Name        | Type  | Description                       |
| ----------- | ----- | --------------------------------- |
| `stakeTime` | int64 | Stake start time in Unix seconds. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L85)

**SetTargetPoolPath**

```go
func (d *Deposit) SetTargetPoolPath(
	targetPoolPath string
)
```

SetTargetPoolPath updates the pool path associated with the staked position.

#### Parameters

| Name             | Type   | Description                                    |
| ---------------- | ------ | ---------------------------------------------- |
| `targetPoolPath` | string | Pool identifier to associate with the deposit. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L53)

**SetTickLower**

```go
func (d *Deposit) SetTickLower(
	tickLower int32
)
```

SetTickLower updates the lower signed tick boundary of the staked position.

#### Parameters

| Name        | Type  | Description                                                  |
| ----------- | ----- | ------------------------------------------------------------ |
| `tickLower` | int32 | Lower tick boundary to store for the position's price range. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L227)

**SetTickUpper**

```go
func (d *Deposit) SetTickUpper(
	tickUpper int32
)
```

SetTickUpper updates the upper signed tick boundary of the staked position.

#### Parameters

| Name        | Type  | Description                                                  |
| ----------- | ----- | ------------------------------------------------------------ |
| `tickUpper` | int32 | Upper tick boundary to store for the position's price range. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L243)

**SetWarmups**

```go
func (d *Deposit) SetWarmups(
	warmups []Warmup
)
```

SetWarmups replaces the deposit's warmup schedule with a copied slice.

#### Parameters

| Name      | Type      | Description                                             |
| --------- | --------- | ------------------------------------------------------- |
| `warmups` | \[]Warmup | Warmup tiers to use for subsequent reward calculations. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L351)

**StakeTime**

```go
func (d *Deposit) StakeTime() int64
```

StakeTime returns the Unix timestamp at which the position was staked.

#### Return Values

| Name        | Type  | Description                       |
| ----------- | ----- | --------------------------------- |
| `stakeTime` | int64 | Stake start time in Unix seconds. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L77)

**TargetPoolPath**

```go
func (d *Deposit) TargetPoolPath() string
```

TargetPoolPath returns the pool path associated with the staked position.

#### Return Values

| Name             | Type   | Description                                          |
| ---------------- | ------ | ---------------------------------------------------- |
| `targetPoolPath` | string | Pool identifier used to resolve the position's pool. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L45)

**TickLower**

```go
func (d *Deposit) TickLower() int32
```

TickLower returns the lower signed tick boundary of the staked position.

#### Return Values

| Name        | Type  | Description                                             |
| ----------- | ----- | ------------------------------------------------------- |
| `tickLower` | int32 | Lower tick boundary used by the position's price range. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L219)

**TickUpper**

```go
func (d *Deposit) TickUpper() int32
```

TickUpper returns the upper signed tick boundary of the staked position.

#### Return Values

| Name        | Type  | Description                                             |
| ----------- | ----- | ------------------------------------------------------- |
| `tickUpper` | int32 | Upper tick boundary used by the position's price range. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L235)

**Warmups**

```go
func (d *Deposit) Warmups() []Warmup
```

Warmups returns a copy of the deposit's warmup schedule.

#### Return Values

| Name      | Type      | Description                                                                          |
| --------- | --------- | ------------------------------------------------------------------------------------ |
| `warmups` | \[]Warmup | Warmup tiers applied to rewards for this deposit, or nil when no schedule is stored. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L343)

#### Constructors

* `func GetDeposit(lpTokenId uint64) (*Deposit, error)` ([source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/getter.gno#L37))
* `func NewDeposit(owner address, targetPoolPath string, liquidity *u256.Uint, currentTime int64, tickLower int32, tickUpper int32, warmups []Warmup) *Deposit` ([source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L410))

### Warmup

```go
type Warmup struct
```

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L435)

#### Fields

* `TimeDuration int64` ([source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L436))
* `NextWarmupTime int64` ([source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L437))
* `WarmupRatio uint64` ([source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L438))

#### Methods

**SetNextWarmupTime**

```go
func (w *Warmup) SetNextWarmupTime(
	nextWarmupTime int64
)
```

SetNextWarmupTime updates the Unix timestamp at which this warmup tier ends.

#### Parameters

| Name             | Type  | Description                    |
| ---------------- | ----- | ------------------------------ |
| `nextWarmupTime` | int64 | Tier end time in Unix seconds. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L462)

**SetTimeDuration**

```go
func (w *Warmup) SetTimeDuration(
	timeDuration int64
)
```

SetTimeDuration updates the duration of this warmup tier.

#### Parameters

| Name           | Type  | Description               |
| -------------- | ----- | ------------------------- |
| `timeDuration` | int64 | Tier duration in seconds. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L478)

**SetWarmupRatio**

```go
func (w *Warmup) SetWarmupRatio(
	warmupRatio uint64
)
```

SetWarmupRatio updates the percentage of calculated reward credited to the position.

#### Parameters

| Name          | Type   | Description                                               |
| ------------- | ------ | --------------------------------------------------------- |
| `warmupRatio` | uint64 | Reward percentage for this tier, expressed from 0 to 100. |

[source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L470)

#### Constructors

* `func DefaultWarmupTemplate() []Warmup` ([source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L486))
* `func GetDepositWarmUp(lpTokenId uint64) ([]Warmup, error)` ([source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/getter.gno#L347))
* `func GetWarmupTemplate() []Warmup` ([source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/getter.gno#L706))
* `func NewWarmup(timeDuration int64, nextWarmupTime int64, warmupRatio uint64) Warmup` ([source](https://github.com/gnoswap-labs/gnoswap/blob/d9d34bd345a36c3eedaccf491c6615b0ac4168cd/contract/r/gnoswap/staker/deposit.gno#L450))
