| Package bank implements an application to manipulate virtual money. The client's |
| Veyron Identity determines the account they can manipulate. New identity's make |
| a new account. Clients can deposit, withdraw, transfer, or query their balance |
| import "veyron2/security" |
| // Bank allows clients to store virtual money. Certain implementations can use persistent storage. |
| // Uses the client's Veyron Identity to determine account access. |
| // Connect causes the bank to bless a new user (string) and return their bank account number (int64). Existing users are not blessed (""), but still receive their account number (int64). |
| Connect() (newIdentity string, accountNumber int64, err error) {security.WriteLabel} |
| // The BankAccount can only be accessed by blessed users |
| type BankAccount interface { |
| // Deposit adds the amount given to this account. |
| Deposit(amount int64) error {security.WriteLabel} |
| // Withdraw reduces the amount given from this account. |
| Withdraw(amount int64) error {security.WriteLabel} |
| // Transfer moves the amount given to the receiver's account. |
| Transfer(receiver int64, amount int64) error {security.WriteLabel} |
| // Balance returns the amount stored in this account. |
| Balance() (int64, error) {security.ReadLabel} |