github.com/onflow/flow-go@v0.33.17/fvm/evm/types/tokenVault.go (about)

     1  package types
     2  
     3  // FLOWTokenVault holds a balance of flow token
     4  type FLOWTokenVault struct {
     5  	balance Balance
     6  }
     7  
     8  func NewFlowTokenVault(balance Balance) *FLOWTokenVault {
     9  	return &FLOWTokenVault{balance: balance}
    10  }
    11  
    12  func (t *FLOWTokenVault) Balance() Balance {
    13  	return t.balance
    14  }
    15  
    16  func (t *FLOWTokenVault) Withdraw(b Balance) *FLOWTokenVault {
    17  	t.balance = t.balance.Sub(b)
    18  	return NewFlowTokenVault(b)
    19  }
    20  
    21  func (t *FLOWTokenVault) Deposit(inp *FLOWTokenVault) {
    22  	t.balance = t.balance.Add(inp.Balance())
    23  }