An advanced Ethereum/EVM mobile wallet
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
alpha-wallet-ios/Trust/Transactions/Storage/TransactionsStorage.swift

51 lines
1.1 KiB

7 years ago
// Copyright SIX DAY LLC. All rights reserved.
import Foundation
import RealmSwift
class TransactionsStorage {
let realm: Realm
init(
configuration: Realm.Configuration = .defaultConfiguration
) {
self.realm = try! Realm(configuration: configuration)
}
var count: Int {
return realm.objects(Transaction.self).count
}
var objects: [Transaction] {
7 years ago
return realm.objects(Transaction.self).sorted(byKeyPath: "date", ascending: true).filter { _ in
7 years ago
return true
}
}
func get(forPrimaryKey: String) -> Transaction? {
return realm.object(ofType: Transaction.self, forPrimaryKey: forPrimaryKey)
}
@discardableResult
func add(_ items: [Transaction]) -> [Transaction] {
realm.beginWrite()
realm.add(items, update: true)
try! realm.commitWrite()
return items
}
func delete(_ items: [Transaction]) {
try! realm.write {
realm.delete(items)
}
}
func deleteAll() {
let objects = realm.objects(Transaction.self)
try! realm.write {
realm.delete(objects)
}
}
}