func decode(c btncrypt.Cipher, key *datastore.Key, stx *storedbtx) (inodedb.DBTransaction, error) { jsonop, err := btncrypt.Decrypt(c, stx.OpsJSON, len(stx.OpsJSON)-c.FrameOverhead()) if err != nil { return inodedb.DBTransaction{}, fmt.Errorf("Failed to decrypt OpsJSON: %v", err) } ops, err := inodedb.DecodeDBOperationsFromJson(jsonop) if err != nil { return inodedb.DBTransaction{}, err } return inodedb.DBTransaction{TxID: inodedb.TxID(key.ID()), Ops: ops}, nil }