MCPcopy Create free account
hub / github.com/akash-network/node / PostProviderBond

Method PostProviderBond

x/verification/keeper/msg.go:165–197  ·  view source on GitHub ↗
(ctx sdk.Context, provider sdk.AccAddress, amount sdk.Coin)

Source from the content-addressed store, hash-verified

163}
164
165func (k *keeper) PostProviderBond(ctx sdk.Context, provider sdk.AccAddress, amount sdk.Coin) error {
166 if err := validatePositiveCoin(amount); err != nil {
167 return err
168 }
169 if !k.providerExists(ctx, provider) {
170 return moduletypes.ErrProviderNotRegistered
171 }
172 if err := k.sendAccountToModule(ctx, provider, amount); err != nil {
173 return err
174 }
175
176 record, found := k.GetProviderBond(ctx, provider)
177 if !found {
178 record = vtypes.ProviderBondRecord{
179 Provider: provider.String(),
180 BondedAmount: sdk.NewCoin(amount.Denom, math.ZeroInt()),
181 }
182 }
183
184 bond, err := addCoin(record.BondedAmount, amount)
185 if err != nil {
186 return err
187 }
188 record.BondedAmount = bond
189 if err = k.SetProviderBond(ctx, record); err != nil {
190 return err
191 }
192 return ctx.EventManager().EmitTypedEvent(&vtypes.EventProviderBondPosted{
193 Provider: provider.String(),
194 Amount: amount,
195 TotalBonded: bond,
196 })
197}
198
199func (k *keeper) WithdrawProviderBond(ctx sdk.Context, provider sdk.AccAddress, amount sdk.Coin) error {
200 if err := validatePositiveCoin(amount); err != nil {

Callers

nothing calls this directly

Calls 7

providerExistsMethod · 0.95
sendAccountToModuleMethod · 0.95
GetProviderBondMethod · 0.95
SetProviderBondMethod · 0.95
validatePositiveCoinFunction · 0.85
addCoinFunction · 0.85
StringMethod · 0.45

Tested by

no test coverage detected