Skip to content

Commit 556da79

Browse files
authored
Add flag to update user compliance status with new wallet connection only (#814)
1 parent a84ee12 commit 556da79

File tree

11 files changed

+557
-587
lines changed

11 files changed

+557
-587
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ allprojects {
5353
}
5454

5555
group = "exchange.dydx.abacus"
56-
version = "1.14.4"
56+
version = "1.14.5"
5757

5858
repositories {
5959
google()

src/commonMain/kotlin/exchange.dydx.abacus/AsyncAbacusStateManagerProtocol.kt

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package exchange.dydx.abacus
22

3-
import exchange.dydx.abacus.output.ComplianceAction
43
import exchange.dydx.abacus.output.Documentation
54
import exchange.dydx.abacus.output.PerpetualState
65
import exchange.dydx.abacus.output.Restriction
@@ -116,20 +115,19 @@ interface AsyncAbacusStateManagerProtocol {
116115
// Screen for restrictions
117116
fun screen(address: String, callback: (restriction: Restriction) -> Unit)
118117

119-
// Trigger update for compliance
120-
fun triggerCompliance(action: ComplianceAction, callback: TransactionCallback)
121-
122118
// Get chain data from id. Necessary to know chain name based on chain id
123119
fun getChainById(chainId: String): TransferChainInfo?
124120

125121
fun registerPushNotification(token: String, languageCode: String?)
126122
fun refreshVaultAccount()
123+
124+
fun setAddresses(source: String?, account: String?, isNew: Boolean)
127125
}
128126

129127
@JsExport
130128
interface AsyncAbacusStateManagerSingletonProtocol {
131-
var accountAddress: String?
132-
var sourceAddress: String?
129+
val accountAddress: String?
130+
val sourceAddress: String?
133131
var subaccountNumber: Int
134132
var market: String?
135133
var walletConnectionType: WalletConnectionType?
@@ -139,12 +137,3 @@ interface AsyncAbacusStateManagerSingletonProtocol {
139137
interface SingletonAsyncAbacusStateManagerProtocol :
140138
AsyncAbacusStateManagerProtocol,
141139
AsyncAbacusStateManagerSingletonProtocol
142-
143-
@JsExport
144-
fun AsyncAbacusStateManagerSingletonProtocol.setAddresses(
145-
source: String?,
146-
account: String?
147-
) {
148-
accountAddress = account
149-
sourceAddress = source
150-
}

src/commonMain/kotlin/exchange.dydx.abacus/AsyncAbacusStateManagerV2.kt

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package exchange.dydx.abacus
33
import exchange.dydx.abacus.di.AbacusScope
44
import exchange.dydx.abacus.di.Deployment
55
import exchange.dydx.abacus.di.DeploymentUri
6-
import exchange.dydx.abacus.output.ComplianceAction
76
import exchange.dydx.abacus.output.Documentation
87
import exchange.dydx.abacus.output.PerpetualState
98
import exchange.dydx.abacus.output.Restriction
@@ -134,8 +133,7 @@ class AsyncAbacusStateManagerV2(
134133
field?.dispose()
135134

136135
value?.market = market
137-
value?.accountAddress = accountAddress
138-
value?.sourceAddress = sourceAddress
136+
value?.setAddresses(source = sourceAddress, account = accountAddress, isNew = true)
139137
value?.subaccountNumber = subaccountNumber
140138
value?.orderbookGrouping = orderbookGrouping
141139
value?.historicalTradingRewardPeriod = historicalTradingRewardPeriod
@@ -182,12 +180,6 @@ class AsyncAbacusStateManagerV2(
182180
}
183181

184182
override var accountAddress: String? = null
185-
set(value) {
186-
field = value
187-
ioImplementations.threading?.async(ThreadingType.abacus) {
188-
adaptor?.accountAddress = field
189-
}
190-
}
191183

192184
override var walletConnectionType: WalletConnectionType? = WalletConnectionType.Ethereum
193185
set(value) {
@@ -198,12 +190,6 @@ class AsyncAbacusStateManagerV2(
198190
}
199191

200192
override var sourceAddress: String? = null
201-
set(value) {
202-
field = value
203-
ioImplementations.threading?.async(ThreadingType.abacus) {
204-
adaptor?.sourceAddress = field
205-
}
206-
}
207193

208194
override var subaccountNumber: Int = 0
209195
set(value) {
@@ -213,6 +199,12 @@ class AsyncAbacusStateManagerV2(
213199
}
214200
}
215201

202+
override fun setAddresses(source: String?, account: String?, isNew: Boolean) {
203+
ioImplementations.threading?.async(ThreadingType.abacus) {
204+
adaptor?.setAddresses(source, account, isNew)
205+
}
206+
}
207+
216208
override var historicalPnlPeriod: HistoricalPnlPeriod = HistoricalPnlPeriod.Period7d
217209
set(value) {
218210
field = value
@@ -262,6 +254,7 @@ class AsyncAbacusStateManagerV2(
262254
)
263255
}
264256
}
257+
265258
private var started: Boolean = false
266259
set(value) {
267260
if (field != value) {
@@ -746,16 +739,6 @@ class AsyncAbacusStateManagerV2(
746739
}
747740
}
748741

749-
override fun triggerCompliance(action: ComplianceAction, callback: TransactionCallback) {
750-
try {
751-
adaptor?.triggerCompliance(action, callback)
752-
} catch (e: Exception) {
753-
val error = V4TransactionErrors.Companion.error(null, e.toString())
754-
trackTransactionError("triggerCompliance", error)
755-
callback(false, error, null)
756-
}
757-
}
758-
759742
private fun trackTransactionError(functionName: String, error: ParsingError?) {
760743
if (error == null) {
761744
return

src/commonMain/kotlin/exchange.dydx.abacus/state/StateManagerAdaptorV2.kt

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package exchange.dydx.abacus.state
22

33
import exchange.dydx.abacus.output.Compliance
4-
import exchange.dydx.abacus.output.ComplianceAction
54
import exchange.dydx.abacus.output.ComplianceStatus
65
import exchange.dydx.abacus.output.Notification
76
import exchange.dydx.abacus.output.PerpetualState
@@ -54,7 +53,6 @@ import exchange.dydx.abacus.state.supervisor.NetworkHelper
5453
import exchange.dydx.abacus.state.supervisor.OnboardingSupervisor
5554
import exchange.dydx.abacus.state.supervisor.SystemSupervisor
5655
import exchange.dydx.abacus.state.supervisor.VaultSupervisor
57-
import exchange.dydx.abacus.state.supervisor.accountAddress
5856
import exchange.dydx.abacus.state.supervisor.addressRestriction
5957
import exchange.dydx.abacus.state.supervisor.adjustIsolatedMargin
6058
import exchange.dydx.abacus.state.supervisor.adjustIsolatedMarginPayload
@@ -79,12 +77,11 @@ import exchange.dydx.abacus.state.supervisor.orderCanceled
7977
import exchange.dydx.abacus.state.supervisor.placeOrderPayload
8078
import exchange.dydx.abacus.state.supervisor.refresh
8179
import exchange.dydx.abacus.state.supervisor.screen
82-
import exchange.dydx.abacus.state.supervisor.sourceAddress
80+
import exchange.dydx.abacus.state.supervisor.setAddresses
8381
import exchange.dydx.abacus.state.supervisor.stopWatchingLastOrder
8482
import exchange.dydx.abacus.state.supervisor.subaccountNumber
8583
import exchange.dydx.abacus.state.supervisor.subaccountTransferPayload
8684
import exchange.dydx.abacus.state.supervisor.trade
87-
import exchange.dydx.abacus.state.supervisor.triggerCompliance
8885
import exchange.dydx.abacus.state.supervisor.triggerOrders
8986
import exchange.dydx.abacus.state.supervisor.triggerOrdersPayload
9087
import exchange.dydx.abacus.state.supervisor.walletConnectionType
@@ -285,14 +282,10 @@ internal class StateManagerAdaptorV2(
285282
markets.orderbookGrouping = value
286283
}
287284

288-
internal var accountAddress: String?
285+
internal val accountAddress: String?
289286
get() {
290287
return accounts.accountAddress
291288
}
292-
set(value) {
293-
accounts.accountAddress = value
294-
vault.accountAddress = value
295-
}
296289

297290
internal var walletConnectionType: WalletConnectionType?
298291
get() {
@@ -303,13 +296,10 @@ internal class StateManagerAdaptorV2(
303296
onboarding.walletConnectionType = value
304297
}
305298

306-
internal var sourceAddress: String?
299+
internal val sourceAddress: String?
307300
get() {
308301
return accounts.sourceAddress
309302
}
310-
set(value) {
311-
accounts.sourceAddress = value
312-
}
313303

314304
internal var historicalPnlPeriod: HistoricalPnlPeriod
315305
get() {
@@ -353,6 +343,11 @@ internal class StateManagerAdaptorV2(
353343
return connections.validatorState
354344
}
355345

346+
internal fun setAddresses(source: String?, account: String?, isNew: Boolean) {
347+
accounts.setAddresses(sourceAddress = source, accountAddress = account, isNew = isNew)
348+
vault.accountAddress = account
349+
}
350+
356351
private fun didSetReadyToConnect(readyToConnect: Boolean) {
357352
connections.readyToConnect = readyToConnect
358353
system.readyToConnect = readyToConnect
@@ -680,10 +675,6 @@ internal class StateManagerAdaptorV2(
680675
accounts.screen(address, callback)
681676
}
682677

683-
internal fun triggerCompliance(action: ComplianceAction, callback: TransactionCallback?) {
684-
accounts.triggerCompliance(action, callback)
685-
}
686-
687678
internal fun registerPushNotification(token: String, languageCode: String?) {
688679
accounts.registerPushNotification(token, languageCode)
689680
}

0 commit comments

Comments
 (0)