public virtual Task <bool> TryInsertAddressAsync(WalletAddress walletAddress) { lock (_sync) { var walletId = $"{walletAddress.Currency}:{walletAddress.Address}"; WalletAddress existsAddress; if (!_addresses.TryGetValue(walletId, out existsAddress)) { _addresses[walletId] = walletAddress.Copy(); var data = Convert.ToBase64String(BsonSerializer.Serialize(_bsonMapper.ToDocument(walletAddress))); SaveDataCallback?.Invoke(AvailableDataType.WalletAddress, walletId, data); return(Task.FromResult(true)); } if (existsAddress.KeyType != walletAddress.KeyType) { existsAddress.KeyType = walletAddress.KeyType; existsAddress.KeyIndex.Chain = walletAddress.KeyIndex.Chain; existsAddress.KeyIndex.Index = walletAddress.KeyIndex.Index; existsAddress.KeyIndex.Account = walletAddress.KeyIndex.Account; _addresses[walletId] = existsAddress.Copy(); var data = Convert.ToBase64String(BsonSerializer.Serialize(_bsonMapper.ToDocument(existsAddress))); SaveDataCallback?.Invoke(AvailableDataType.WalletAddress, walletId, data); return(Task.FromResult(true)); } return(Task.FromResult(false)); } }
public virtual Task <bool> UpsertAddressAsync(WalletAddress walletAddress) { lock (_sync) { var walletId = $"{walletAddress.Currency}:{walletAddress.Address}"; _addresses[walletId] = walletAddress.Copy(); var data = Convert.ToBase64String(BsonSerializer.Serialize(_bsonMapper.ToDocument(walletAddress))); SaveDataCallback?.Invoke(AvailableDataType.WalletAddress, walletId, data); return(Task.FromResult(true)); } }
public Task <bool> TryInsertTezosTokenAddressAsync(WalletAddress address) { lock (_sync) { var walletId = $"{address.Currency}:{address.TokenBalance.Contract}:{address.TokenBalance.TokenId}:{address.Address}"; if (_tezosTokensAddresses.ContainsKey(walletId)) { return(Task.FromResult(false)); } _tezosTokensAddresses[walletId] = address.Copy(); var data = Convert.ToBase64String(BsonSerializer.Serialize(_bsonMapper.ToDocument(address))); SaveDataCallback?.Invoke(AvailableDataType.TezosTokenAddress, walletId, data); return(Task.FromResult(true)); } }