package main import ( "crypto/md5" "fmt" ) type Transaction struct { ID string Bank Bank Amount string Account string Date string } func (t *Transaction) String() string { return fmt.Sprint(*t) } func NewTransaction(amount, account, date string, bank Bank) *Transaction { t := &Transaction{ Amount: amount, Account: account, Bank: bank, Date: date, } t.ID = fmt.Sprintf("%x", md5.Sum([]byte(fmt.Sprint(t)))) return t }