From e7d2719a4daec4efc173084309827c70f423e565 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Wed, 31 Oct 2018 13:44:49 -0600 Subject: [PATCH 01/11] Create BitsyDatabase which extends Room and created Assets Entity and Assets Dao to use in the Room db --- .../bitsybitshareswallet/daos/AssetDao.kt | 17 +++++++++ .../daos/BitsyDatabase.kt | 38 +++++++++++++++++++ .../bitsybitshareswallet/models/Asset.kt | 23 +++++++++++ 3 files changed, 78 insertions(+) create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/Asset.kt diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt new file mode 100644 index 0000000..2970c84 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt @@ -0,0 +1,17 @@ +package cy.agorise.bitsybitshareswallet.daos + +import androidx.lifecycle.LiveData +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.Query +import cy.agorise.bitsybitshareswallet.models.Asset + +@Dao +interface AssetDao { + + @Query("SELECT * FROM assets") + fun getAllAssets(): LiveData> + + @Insert + fun insert(asset: Asset) +} diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt new file mode 100644 index 0000000..6c5ab53 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt @@ -0,0 +1,38 @@ +package cy.agorise.bitsybitshareswallet.daos + +import android.content.Context +import androidx.room.Database +import androidx.room.Room +import androidx.room.RoomDatabase +import cy.agorise.bitsybitshareswallet.models.Asset + +@Database(entities = [Asset::class], version = 1, exportSchema = false) +abstract class BitsyDatabase : RoomDatabase() { + + abstract fun assetDao(): AssetDao + + companion object { + + // To make sure there is always only one instance of the database open + @Volatile + private var INSTANCE: BitsyDatabase? = null + + internal fun getDatabase(context: Context): BitsyDatabase? { + if (INSTANCE == null) { + synchronized(BitsyDatabase::class.java) { + INSTANCE = Room.databaseBuilder( + context.applicationContext, + BitsyDatabase::class.java, "BiTSyWallet.db" + ) + .build() + } + } + + return INSTANCE + } + + fun destroyInstance() { + INSTANCE = null + } + } +} diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Asset.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Asset.kt new file mode 100644 index 0000000..e0c03b9 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Asset.kt @@ -0,0 +1,23 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity(tableName = "assets") +data class Asset( + @PrimaryKey + @ColumnInfo(name = "id") val id: String, + @ColumnInfo(name = "symbol") val symbol: String, + @ColumnInfo(name = "precision") val precision: Int, + @ColumnInfo(name = "issuer") val issuer: String, + @ColumnInfo(name = "description") val description: String, + @ColumnInfo(name = "max_supply") val maxSupply: Long, // TODO verify type + @ColumnInfo(name = "market_fee_percent") val marketFeePercent: Float, // TODO verify type + @ColumnInfo(name = "max_market_fee") val maxMarketFee: Float, // TODO verify type + @ColumnInfo(name = "issuer_permissions") val issuerPermissions: Int, + @ColumnInfo(name = "flags") val flags: Int, + @ColumnInfo(name = "asset_type") val assetType: Int, + @ColumnInfo(name = "bit_asset_id") val bitAssetId: String, + @ColumnInfo(name = "holders_count") val holdersCount: Int +) From c0d20e67bd559ce414997ab529ac5996ca16fa8a Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Wed, 31 Oct 2018 14:40:17 -0600 Subject: [PATCH 02/11] Created Balance entity and BalanceDao to create the Balances db table with Room --- .../bitsybitshareswallet/daos/BalanceDao.kt | 17 +++++++++++++++++ .../bitsybitshareswallet/daos/BitsyDatabase.kt | 1 + .../bitsybitshareswallet/models/Balance.kt | 12 ++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt new file mode 100644 index 0000000..3e1cf65 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt @@ -0,0 +1,17 @@ +package cy.agorise.bitsybitshareswallet.daos + +import androidx.lifecycle.LiveData +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.Query +import cy.agorise.bitsybitshareswallet.models.Balance + +@Dao +interface BalanceDao { + + @Query("SELECT * FROM balances") + fun getAllBalances(): LiveData> + + @Insert + fun insert(balance: Balance) +} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt index 6c5ab53..9e68537 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt @@ -10,6 +10,7 @@ import cy.agorise.bitsybitshareswallet.models.Asset abstract class BitsyDatabase : RoomDatabase() { abstract fun assetDao(): AssetDao + abstract fun balanceDao(): BalanceDao companion object { diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt new file mode 100644 index 0000000..8bfd802 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt @@ -0,0 +1,12 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity + +@Entity(tableName = "balances", primaryKeys = ["user_id", "asset_id"]) +data class Balance( + @ColumnInfo(name = "user_id") val userId: String, + @ColumnInfo(name = "asset_id") val assetId: String, + @ColumnInfo(name = "asset_amount") val assetAmount: Long, + @ColumnInfo(name = "last_update") val lastUpdate: Long +) \ No newline at end of file From e835e7de8952729b6a3a1239af8b28f1148e2487 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Wed, 31 Oct 2018 14:51:23 -0600 Subject: [PATCH 03/11] Created UserAccount entity and UserAccountDao to create the UserAccounts db table with Room --- .../bitsybitshareswallet/daos/BitsyDatabase.kt | 1 + .../bitsybitshareswallet/daos/UserAccountDao.kt | 17 +++++++++++++++++ .../bitsybitshareswallet/models/UserAccount.kt | 13 +++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt index 9e68537..02c0a2f 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt @@ -11,6 +11,7 @@ abstract class BitsyDatabase : RoomDatabase() { abstract fun assetDao(): AssetDao abstract fun balanceDao(): BalanceDao + abstract fun userAccountDao(): UserAccountDao companion object { diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt new file mode 100644 index 0000000..9bb78f4 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt @@ -0,0 +1,17 @@ +package cy.agorise.bitsybitshareswallet.daos + +import androidx.lifecycle.LiveData +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.Query +import cy.agorise.bitsybitshareswallet.models.UserAccount + +@Dao +interface UserAccountDao { + + @Query("SELECT * FROM user_accounts") + fun getAllUserAccounts(): LiveData> + + @Insert + fun insert(userAccount: UserAccount) +} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt new file mode 100644 index 0000000..7ed6aa9 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt @@ -0,0 +1,13 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity(tableName = "user_accounts") +data class UserAccount ( + @PrimaryKey + @ColumnInfo(name = "id") val id: String, + @ColumnInfo(name = "name") val name: String, + @ColumnInfo(name = "is_ltm") val isLtm: Boolean // Todo verify data type +) \ No newline at end of file From 72e39368aa49115cf99200ce5180487b19546336 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Wed, 31 Oct 2018 15:16:22 -0600 Subject: [PATCH 04/11] Created Authority entity and AuthoritiyDao to create the Authorities db table with Room --- .../bitsybitshareswallet/daos/AuthorityDao.kt | 17 +++++++++++++ .../daos/BitsyDatabase.kt | 1 + .../bitsybitshareswallet/models/Authority.kt | 25 +++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt new file mode 100644 index 0000000..678e6af --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt @@ -0,0 +1,17 @@ +package cy.agorise.bitsybitshareswallet.daos + +import androidx.lifecycle.LiveData +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.Query +import cy.agorise.bitsybitshareswallet.models.Authority + +@Dao +interface AuthorityDao { + + @Query("SELECT * FROM authorities") + fun getAllAuthorities(): LiveData> + + @Insert + fun insert(authority: Authority) +} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt index 02c0a2f..b1dfa75 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt @@ -12,6 +12,7 @@ abstract class BitsyDatabase : RoomDatabase() { abstract fun assetDao(): AssetDao abstract fun balanceDao(): BalanceDao abstract fun userAccountDao(): UserAccountDao + abstract fun authorityDao(): AuthorityDao companion object { diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt new file mode 100644 index 0000000..38d6c80 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt @@ -0,0 +1,25 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.PrimaryKey + +@Entity(tableName = "authorities", foreignKeys = + [ForeignKey( + entity = UserAccount::class, + parentColumns = ["id"], + childColumns = ["user_id"], + onUpdate = ForeignKey.CASCADE, + onDelete = ForeignKey.CASCADE + )] +) +data class Authority ( + @PrimaryKey(autoGenerate = true) + @ColumnInfo(name = "id") val id: Long, + @ColumnInfo(name = "encrypted_brainkey") val encryptedBrainkey: String, + @ColumnInfo(name = "encrypted_sequence_number") val encryptedSequenceNumber: String, // TODO verify data type + @ColumnInfo(name = "encrypted_wif") val encryptedWif: String, + @ColumnInfo(name = "user_id") val userId: String, + @ColumnInfo(name = "authority_type") val authorityType: Int +) \ No newline at end of file From da9e0225cc59166b90e9e7bf6d181c1a542d2643 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Wed, 31 Oct 2018 18:51:41 -0600 Subject: [PATCH 05/11] Create Operation, Transfer and Equivalent value Entities for the Room database. --- .../models/EquivalentValue.kt | 29 +++++++++++++++++++ .../bitsybitshareswallet/models/Operation.kt | 14 +++++++++ .../bitsybitshareswallet/models/Transfer.kt | 29 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/Operation.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt new file mode 100644 index 0000000..19a126d --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt @@ -0,0 +1,29 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.PrimaryKey + +@Entity(tableName = "equivalent_values",foreignKeys = + [ForeignKey( + entity = Transfer::class, + parentColumns = ["operation_id"], + childColumns = ["transfer_id"], + onUpdate = ForeignKey.CASCADE, + onDelete = ForeignKey.CASCADE + ), ForeignKey( + entity = Asset::class, + parentColumns = ["id"], + childColumns = ["asset_id"], + onUpdate = ForeignKey.CASCADE, + onDelete = ForeignKey.CASCADE + )] +) +data class EquivalentValue ( + @PrimaryKey(autoGenerate = true) + @ColumnInfo(name = "id") val id: Long, + @ColumnInfo(name = "transfer_id") val transferId: String, + @ColumnInfo(name = "value") val value: Long, + @ColumnInfo(name = "asset_id") val assetId: String +) \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Operation.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Operation.kt new file mode 100644 index 0000000..765c64f --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Operation.kt @@ -0,0 +1,14 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity(tableName = "operations") +data class Operation ( + @PrimaryKey + @ColumnInfo(name = "id") val id: String, + @ColumnInfo(name = "type") val type: Int, + @ColumnInfo(name = "timestamp") val timestamp: Long, + @ColumnInfo(name = "block_number") val blockNumber: Long +) \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt new file mode 100644 index 0000000..abf1456 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt @@ -0,0 +1,29 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey +import androidx.room.PrimaryKey + +@Entity(tableName = "transfers",foreignKeys = + [ForeignKey( + entity = Operation::class, + parentColumns = ["id"], + childColumns = ["operation_id"], + onUpdate = ForeignKey.CASCADE, + onDelete = ForeignKey.CASCADE + )] +) +data class Transfer ( + @PrimaryKey + @ColumnInfo(name = "operation_id") val operationId: String, + @ColumnInfo(name = "fee_amount") val feeAmount: Long, + @ColumnInfo(name = "fee_asset_id") val feeAssetId: String, + @ColumnInfo(name = "source") val source: String, + @ColumnInfo(name = "destination") val destination: String, + @ColumnInfo(name = "transfer_amount") val transferAmount: Long, + @ColumnInfo(name = "transfer_asset_id") val transferAssetId: String, + @ColumnInfo(name = "memo") val memo: String, + @ColumnInfo(name = "memo_from_key") val memoFromKey: String, + @ColumnInfo(name = "memo_to_key") val memoToKey: String +) \ No newline at end of file From 1c018346aed1163acfa91f47424354aa50412bb1 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Thu, 1 Nov 2018 11:19:32 -0600 Subject: [PATCH 06/11] Create UserAccountAuthority entity to establish a N:N relationship between the UserAccount and Authority entities in the database. Also made some structure improvements to all the Entities and Daos already described. --- .../bitsybitshareswallet/daos/AssetDao.kt | 6 ++--- .../bitsybitshareswallet/daos/AuthorityDao.kt | 6 ++--- .../bitsybitshareswallet/daos/BalanceDao.kt | 6 ++--- .../daos/BitsyDatabase.kt | 11 ++++++-- .../daos/UserAccountAuthorityDao.kt | 17 +++++++++++++ .../daos/UserAccountDao.kt | 6 ++--- .../bitsybitshareswallet/models/Authority.kt | 11 +------- .../bitsybitshareswallet/models/Balance.kt | 5 ++-- .../models/EquivalentValue.kt | 8 ++---- .../bitsybitshareswallet/models/Transfer.kt | 12 ++++----- .../models/UserAccount.kt | 3 ++- .../models/UserAccountAuthority.kt | 25 +++++++++++++++++++ 12 files changed, 76 insertions(+), 40 deletions(-) create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountAuthorityDao.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccountAuthority.kt diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt index 2970c84..aaac373 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt @@ -9,9 +9,9 @@ import cy.agorise.bitsybitshareswallet.models.Asset @Dao interface AssetDao { - @Query("SELECT * FROM assets") - fun getAllAssets(): LiveData> - @Insert fun insert(asset: Asset) + + @Query("SELECT * FROM assets") + fun getAllAssets(): LiveData> } diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt index 678e6af..01e743c 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt @@ -9,9 +9,9 @@ import cy.agorise.bitsybitshareswallet.models.Authority @Dao interface AuthorityDao { - @Query("SELECT * FROM authorities") - fun getAllAuthorities(): LiveData> - @Insert fun insert(authority: Authority) + + @Query("SELECT * FROM authorities") + fun getAllAuthorities(): LiveData> } \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt index 3e1cf65..c646f78 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt @@ -9,9 +9,9 @@ import cy.agorise.bitsybitshareswallet.models.Balance @Dao interface BalanceDao { - @Query("SELECT * FROM balances") - fun getAllBalances(): LiveData> - @Insert fun insert(balance: Balance) + + @Query("SELECT * FROM balances") + fun getAllBalances(): LiveData> } \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt index b1dfa75..b428930 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt @@ -4,15 +4,22 @@ import android.content.Context import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase -import cy.agorise.bitsybitshareswallet.models.Asset +import cy.agorise.bitsybitshareswallet.models.* -@Database(entities = [Asset::class], version = 1, exportSchema = false) +@Database(entities = [ + Asset::class, + Balance::class, + UserAccount::class, + Authority::class, + UserAccountAuthority::class + ], version = 1, exportSchema = false) abstract class BitsyDatabase : RoomDatabase() { abstract fun assetDao(): AssetDao abstract fun balanceDao(): BalanceDao abstract fun userAccountDao(): UserAccountDao abstract fun authorityDao(): AuthorityDao + abstract fun userAccountAuthorityDao(): UserAccountAuthorityDao companion object { diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountAuthorityDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountAuthorityDao.kt new file mode 100644 index 0000000..d263509 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountAuthorityDao.kt @@ -0,0 +1,17 @@ +package cy.agorise.bitsybitshareswallet.daos + +import androidx.lifecycle.LiveData +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.Query +import cy.agorise.bitsybitshareswallet.models.Authority + +@Dao +interface UserAccountAuthorityDao { + + @Insert + fun insert(userAccountAuthorityDao: UserAccountAuthorityDao) + + @Query("SELECT * FROM user_accounts INNER JOIN user_accounts__authorities ON user_accounts.id=user_accounts__authorities.user_account_id WHERE user_accounts__authorities.user_account_id=:userAccountId") + fun getAuthoritiesForUserAccount(userAccountId: String): LiveData> +} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt index 9bb78f4..5319b6f 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt @@ -9,9 +9,9 @@ import cy.agorise.bitsybitshareswallet.models.UserAccount @Dao interface UserAccountDao { - @Query("SELECT * FROM user_accounts") - fun getAllUserAccounts(): LiveData> - @Insert fun insert(userAccount: UserAccount) + + @Query("SELECT * FROM user_accounts") + fun getAllUserAccounts(): LiveData> } \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt index 38d6c80..70ee83b 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt @@ -2,18 +2,9 @@ package cy.agorise.bitsybitshareswallet.models import androidx.room.ColumnInfo import androidx.room.Entity -import androidx.room.ForeignKey import androidx.room.PrimaryKey -@Entity(tableName = "authorities", foreignKeys = - [ForeignKey( - entity = UserAccount::class, - parentColumns = ["id"], - childColumns = ["user_id"], - onUpdate = ForeignKey.CASCADE, - onDelete = ForeignKey.CASCADE - )] -) +@Entity(tableName = "authorities") data class Authority ( @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") val id: Long, diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt index 8bfd802..47e2900 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt @@ -3,9 +3,10 @@ package cy.agorise.bitsybitshareswallet.models import androidx.room.ColumnInfo import androidx.room.Entity -@Entity(tableName = "balances", primaryKeys = ["user_id", "asset_id"]) +@Entity(tableName = "balances", primaryKeys = ["user_account_id", "asset_id"]) +// TODO verify if we can add user_account_id as primary key data class Balance( - @ColumnInfo(name = "user_id") val userId: String, + @ColumnInfo(name = "user_account_id") val userAccountId: String, @ColumnInfo(name = "asset_id") val assetId: String, @ColumnInfo(name = "asset_amount") val assetAmount: Long, @ColumnInfo(name = "last_update") val lastUpdate: Long diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt index 19a126d..d37cf33 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/EquivalentValue.kt @@ -9,15 +9,11 @@ import androidx.room.PrimaryKey [ForeignKey( entity = Transfer::class, parentColumns = ["operation_id"], - childColumns = ["transfer_id"], - onUpdate = ForeignKey.CASCADE, - onDelete = ForeignKey.CASCADE + childColumns = ["transfer_id"] ), ForeignKey( entity = Asset::class, parentColumns = ["id"], - childColumns = ["asset_id"], - onUpdate = ForeignKey.CASCADE, - onDelete = ForeignKey.CASCADE + childColumns = ["asset_id"] )] ) data class EquivalentValue ( diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt index abf1456..b582d55 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Transfer.kt @@ -9,20 +9,18 @@ import androidx.room.PrimaryKey [ForeignKey( entity = Operation::class, parentColumns = ["id"], - childColumns = ["operation_id"], - onUpdate = ForeignKey.CASCADE, - onDelete = ForeignKey.CASCADE + childColumns = ["operation_id"] )] ) data class Transfer ( @PrimaryKey @ColumnInfo(name = "operation_id") val operationId: String, @ColumnInfo(name = "fee_amount") val feeAmount: Long, - @ColumnInfo(name = "fee_asset_id") val feeAssetId: String, - @ColumnInfo(name = "source") val source: String, - @ColumnInfo(name = "destination") val destination: String, + @ColumnInfo(name = "fee_asset_id") val feeAssetId: String, // TODO should be foreign key to Asset + @ColumnInfo(name = "source") val source: String, // TODO should be foreign key to UserAccount + @ColumnInfo(name = "destination") val destination: String, // TODO should be foreign key to UserAccount @ColumnInfo(name = "transfer_amount") val transferAmount: Long, - @ColumnInfo(name = "transfer_asset_id") val transferAssetId: String, + @ColumnInfo(name = "transfer_asset_id") val transferAssetId: String, // TODO should be foreign key to Asset @ColumnInfo(name = "memo") val memo: String, @ColumnInfo(name = "memo_from_key") val memoFromKey: String, @ColumnInfo(name = "memo_to_key") val memoToKey: String diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt index 7ed6aa9..ad6a3b5 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt @@ -9,5 +9,6 @@ data class UserAccount ( @PrimaryKey @ColumnInfo(name = "id") val id: String, @ColumnInfo(name = "name") val name: String, - @ColumnInfo(name = "is_ltm") val isLtm: Boolean // Todo verify data type + @ColumnInfo(name = "is_ltm") val isLtm: Boolean, // Todo verify data type + @ColumnInfo(name = "weight_threshold") val weightThreshold: Int // TODO verify data type ) \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccountAuthority.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccountAuthority.kt new file mode 100644 index 0000000..6eb09ef --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccountAuthority.kt @@ -0,0 +1,25 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.ForeignKey + +/** + * Table to create a N:N relationship between [UserAccount] and [Authority] + */ +@Entity(tableName = "user_accounts__authorities", + primaryKeys = ["user_account_id", "authority_id"], + foreignKeys = [ForeignKey( + entity = UserAccount::class, + parentColumns = ["id"], + childColumns = ["user_account_id"] + ), ForeignKey( + entity = Authority::class, + parentColumns = ["id"], + childColumns = ["authority_id"] + )]) +data class UserAccountAuthority ( + @ColumnInfo(name = "user_account_id") val userAccountId: String, + @ColumnInfo(name = "authority_id") val authorityId: Long, + @ColumnInfo(name = "weight") val weight: Int // TODO verify data type +) \ No newline at end of file From 1932b27f7e97c7865aa5e238d7484f477de26332 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Thu, 1 Nov 2018 12:52:20 -0600 Subject: [PATCH 07/11] Fix Authority db table schema --- .../cy/agorise/bitsybitshareswallet/models/Authority.kt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt index 70ee83b..3f018d5 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Authority.kt @@ -8,9 +8,6 @@ import androidx.room.PrimaryKey data class Authority ( @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "id") val id: Long, - @ColumnInfo(name = "encrypted_brainkey") val encryptedBrainkey: String, - @ColumnInfo(name = "encrypted_sequence_number") val encryptedSequenceNumber: String, // TODO verify data type - @ColumnInfo(name = "encrypted_wif") val encryptedWif: String, - @ColumnInfo(name = "user_id") val userId: String, - @ColumnInfo(name = "authority_type") val authorityType: Int + @ColumnInfo(name = "encrypted_private_key") val encryptedBrainkey: String, + @ColumnInfo(name = "user_id") val userId: String ) \ No newline at end of file From ff43dcc4f489fb193b6490819c1551a787aa3e71 Mon Sep 17 00:00:00 2001 From: "Nelson R. Perez" Date: Thu, 1 Nov 2018 14:50:18 -0500 Subject: [PATCH 08/11] Included a brain key model and simple DAO stub --- .../bitsybitshareswallet/daos/BitsyDatabase.kt | 7 ++++++- .../bitsybitshareswallet/daos/BrainKeyDao.kt | 16 ++++++++++++++++ .../bitsybitshareswallet/models/BrainKey.kt | 13 +++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BrainKeyDao.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/models/BrainKey.kt diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt index b428930..d5f0613 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt @@ -11,7 +11,11 @@ import cy.agorise.bitsybitshareswallet.models.* Balance::class, UserAccount::class, Authority::class, - UserAccountAuthority::class + UserAccountAuthority::class, + BrainKey::class, + EquivalentValue::class, + Operation::class, + Transfer::class ], version = 1, exportSchema = false) abstract class BitsyDatabase : RoomDatabase() { @@ -20,6 +24,7 @@ abstract class BitsyDatabase : RoomDatabase() { abstract fun userAccountDao(): UserAccountDao abstract fun authorityDao(): AuthorityDao abstract fun userAccountAuthorityDao(): UserAccountAuthorityDao + abstract fun brainKeyDao(): BrainKeyDao companion object { diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BrainKeyDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BrainKeyDao.kt new file mode 100644 index 0000000..2432b68 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BrainKeyDao.kt @@ -0,0 +1,16 @@ +package cy.agorise.bitsybitshareswallet.daos + +import androidx.lifecycle.LiveData +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.Query +import cy.agorise.bitsybitshareswallet.models.BrainKey + +@Dao +interface BrainKeyDao { + @Insert + fun insert(asset: BrainKeyDao) + + @Query("SELECT * FROM brain_keys") + fun getAllBrainKeys(): LiveData> +} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/BrainKey.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/BrainKey.kt new file mode 100644 index 0000000..3d77398 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/BrainKey.kt @@ -0,0 +1,13 @@ +package cy.agorise.bitsybitshareswallet.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity(tableName="brain_keys") +data class BrainKey( + @PrimaryKey + @ColumnInfo(name = "public_key") val publicKey: String, + @ColumnInfo(name = "encrypted_brain_key") val encryptedBrainKey: String, + @ColumnInfo(name = "sequence_number") val sequenceNumber: Long +) \ No newline at end of file From eed3407b7d01b18f310d9f27278997932cf682d8 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Thu, 1 Nov 2018 14:41:10 -0600 Subject: [PATCH 09/11] Simplify Assets and UserAccounts database tables. --- .../cy/agorise/bitsybitshareswallet/models/Asset.kt | 10 +--------- .../agorise/bitsybitshareswallet/models/UserAccount.kt | 2 +- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Asset.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Asset.kt index e0c03b9..fb679ff 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Asset.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Asset.kt @@ -10,14 +10,6 @@ data class Asset( @ColumnInfo(name = "id") val id: String, @ColumnInfo(name = "symbol") val symbol: String, @ColumnInfo(name = "precision") val precision: Int, - @ColumnInfo(name = "issuer") val issuer: String, @ColumnInfo(name = "description") val description: String, - @ColumnInfo(name = "max_supply") val maxSupply: Long, // TODO verify type - @ColumnInfo(name = "market_fee_percent") val marketFeePercent: Float, // TODO verify type - @ColumnInfo(name = "max_market_fee") val maxMarketFee: Float, // TODO verify type - @ColumnInfo(name = "issuer_permissions") val issuerPermissions: Int, - @ColumnInfo(name = "flags") val flags: Int, - @ColumnInfo(name = "asset_type") val assetType: Int, - @ColumnInfo(name = "bit_asset_id") val bitAssetId: String, - @ColumnInfo(name = "holders_count") val holdersCount: Int + @ColumnInfo(name = "bit_asset_id") val bitAssetId: String ) diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt index ad6a3b5..c895e3f 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt @@ -9,6 +9,6 @@ data class UserAccount ( @PrimaryKey @ColumnInfo(name = "id") val id: String, @ColumnInfo(name = "name") val name: String, - @ColumnInfo(name = "is_ltm") val isLtm: Boolean, // Todo verify data type + @ColumnInfo(name = "is_ltm") val isLtm: Boolean, @ColumnInfo(name = "weight_threshold") val weightThreshold: Int // TODO verify data type ) \ No newline at end of file From 73afded9bdfd59971de616ef060e74f243306d97 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Thu, 1 Nov 2018 14:57:23 -0600 Subject: [PATCH 10/11] Add missing DAOs (Data Access Object) to use with the Room database. --- .../bitsybitshareswallet/daos/AssetDao.kt | 1 - .../bitsybitshareswallet/daos/AuthorityDao.kt | 1 - .../bitsybitshareswallet/daos/BalanceDao.kt | 1 - .../bitsybitshareswallet/daos/BitsyDatabase.kt | 17 ++++++++++------- .../daos/EquivalentValueDao.kt | 16 ++++++++++++++++ .../bitsybitshareswallet/daos/OperationDao.kt | 16 ++++++++++++++++ .../bitsybitshareswallet/daos/TransferDao.kt | 16 ++++++++++++++++ .../daos/UserAccountAuthorityDao.kt | 1 - .../bitsybitshareswallet/daos/UserAccountDao.kt | 1 - .../bitsybitshareswallet/models/Balance.kt | 2 +- 10 files changed, 59 insertions(+), 13 deletions(-) create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/daos/EquivalentValueDao.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/daos/OperationDao.kt create mode 100644 app/src/main/java/cy/agorise/bitsybitshareswallet/daos/TransferDao.kt diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt index aaac373..5083f19 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AssetDao.kt @@ -8,7 +8,6 @@ import cy.agorise.bitsybitshareswallet.models.Asset @Dao interface AssetDao { - @Insert fun insert(asset: Asset) diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt index 01e743c..6eaa123 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/AuthorityDao.kt @@ -8,7 +8,6 @@ import cy.agorise.bitsybitshareswallet.models.Authority @Dao interface AuthorityDao { - @Insert fun insert(authority: Authority) diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt index c646f78..653ee8b 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BalanceDao.kt @@ -8,7 +8,6 @@ import cy.agorise.bitsybitshareswallet.models.Balance @Dao interface BalanceDao { - @Insert fun insert(balance: Balance) diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt index d5f0613..055cd8f 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/BitsyDatabase.kt @@ -8,23 +8,26 @@ import cy.agorise.bitsybitshareswallet.models.* @Database(entities = [ Asset::class, - Balance::class, - UserAccount::class, Authority::class, - UserAccountAuthority::class, + Balance::class, BrainKey::class, EquivalentValue::class, Operation::class, - Transfer::class + Transfer::class, + UserAccount::class, + UserAccountAuthority::class ], version = 1, exportSchema = false) abstract class BitsyDatabase : RoomDatabase() { abstract fun assetDao(): AssetDao - abstract fun balanceDao(): BalanceDao - abstract fun userAccountDao(): UserAccountDao abstract fun authorityDao(): AuthorityDao - abstract fun userAccountAuthorityDao(): UserAccountAuthorityDao + abstract fun balanceDao(): BalanceDao abstract fun brainKeyDao(): BrainKeyDao + abstract fun equivalentValueDao(): EquivalentValueDao + abstract fun operationDao(): OperationDao + abstract fun transferDao(): TransferDao + abstract fun userAccountDao(): UserAccountDao + abstract fun userAccountAuthorityDao(): UserAccountAuthorityDao companion object { diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/EquivalentValueDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/EquivalentValueDao.kt new file mode 100644 index 0000000..3135d5f --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/EquivalentValueDao.kt @@ -0,0 +1,16 @@ +package cy.agorise.bitsybitshareswallet.daos + +import androidx.lifecycle.LiveData +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.Query +import cy.agorise.bitsybitshareswallet.models.EquivalentValue + +@Dao +interface EquivalentValueDao { + @Insert + fun insert(equivalentValue: EquivalentValue) + + @Query("SELECT * FROM equivalent_values") + fun getAllEquivalentValues(): LiveData> +} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/OperationDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/OperationDao.kt new file mode 100644 index 0000000..a4fcf2a --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/OperationDao.kt @@ -0,0 +1,16 @@ +package cy.agorise.bitsybitshareswallet.daos + +import androidx.lifecycle.LiveData +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.Query +import cy.agorise.bitsybitshareswallet.models.Operation + +@Dao +interface OperationDao { + @Insert + fun insert(operation: Operation) + + @Query("SELECT * FROM operations") + fun getAllOperations(): LiveData> +} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/TransferDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/TransferDao.kt new file mode 100644 index 0000000..0e79fd1 --- /dev/null +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/TransferDao.kt @@ -0,0 +1,16 @@ +package cy.agorise.bitsybitshareswallet.daos + +import androidx.lifecycle.LiveData +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.Query +import cy.agorise.bitsybitshareswallet.models.Transfer + +@Dao +interface TransferDao { + @Insert + fun insert(transfer: Transfer) + + @Query("SELECT * FROM transfers") + fun getAllTransfers(): LiveData> +} \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountAuthorityDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountAuthorityDao.kt index d263509..42a1b79 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountAuthorityDao.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountAuthorityDao.kt @@ -8,7 +8,6 @@ import cy.agorise.bitsybitshareswallet.models.Authority @Dao interface UserAccountAuthorityDao { - @Insert fun insert(userAccountAuthorityDao: UserAccountAuthorityDao) diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt index 5319b6f..d9df243 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/daos/UserAccountDao.kt @@ -8,7 +8,6 @@ import cy.agorise.bitsybitshareswallet.models.UserAccount @Dao interface UserAccountDao { - @Insert fun insert(userAccount: UserAccount) diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt index 47e2900..d8c12aa 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/Balance.kt @@ -4,7 +4,7 @@ import androidx.room.ColumnInfo import androidx.room.Entity @Entity(tableName = "balances", primaryKeys = ["user_account_id", "asset_id"]) -// TODO verify if we can add user_account_id as primary key +// TODO make userAccountId and assetId be ForeignKeys data class Balance( @ColumnInfo(name = "user_account_id") val userAccountId: String, @ColumnInfo(name = "asset_id") val assetId: String, From 253bbd0dea33f768107f75804de52af90ffb94a8 Mon Sep 17 00:00:00 2001 From: Severiano Jaramillo Date: Thu, 1 Nov 2018 15:53:43 -0600 Subject: [PATCH 11/11] We have now verified that both the weight_threshold in UserAccount and weight in UserAccountAuthority are Integers. --- .../java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt | 2 +- .../agorise/bitsybitshareswallet/models/UserAccountAuthority.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt index c895e3f..9460ea7 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccount.kt @@ -10,5 +10,5 @@ data class UserAccount ( @ColumnInfo(name = "id") val id: String, @ColumnInfo(name = "name") val name: String, @ColumnInfo(name = "is_ltm") val isLtm: Boolean, - @ColumnInfo(name = "weight_threshold") val weightThreshold: Int // TODO verify data type + @ColumnInfo(name = "weight_threshold") val weightThreshold: Int ) \ No newline at end of file diff --git a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccountAuthority.kt b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccountAuthority.kt index 6eb09ef..99db269 100644 --- a/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccountAuthority.kt +++ b/app/src/main/java/cy/agorise/bitsybitshareswallet/models/UserAccountAuthority.kt @@ -21,5 +21,5 @@ import androidx.room.ForeignKey data class UserAccountAuthority ( @ColumnInfo(name = "user_account_id") val userAccountId: String, @ColumnInfo(name = "authority_id") val authorityId: Long, - @ColumnInfo(name = "weight") val weight: Int // TODO verify data type + @ColumnInfo(name = "weight") val weight: Int ) \ No newline at end of file