Skip to content

Commit

Permalink
Merge pull request #393 from cosmostation/main_yong_dev
Browse files Browse the repository at this point in the history
Main yong dev
  • Loading branch information
wannabit-yongjoo committed Feb 26, 2024
2 parents 256611f + 424c8d6 commit 6c68f58
Show file tree
Hide file tree
Showing 323 changed files with 7,822 additions and 4,575 deletions.
284 changes: 196 additions & 88 deletions Cosmostation.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

295 changes: 256 additions & 39 deletions Cosmostation/Base/BaseAccount.swift

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions Cosmostation/Base/BaseConstant.swift
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ let KEY_WC_WHITELIST = "KEY_WC_WHITELIST"
let KEY_LANGUAGE = "KEY_LANGUAGE"
let KEY_LAST_ACCOUNT = "KEY_LAST_ACCOUNT"
let KEY_DISPLAY_COSMOS_CHAINS = "KEY_DISPLAY_COSMOS_CHAINS"
let KEY_DISPLAY_EVM_CHAINS = "KEY_DISPLAY_EVM_CHAINS"
let KEY_CHAIN_GRPC_ENDPOINT = "KEY_CHAIN_GRPC_ENDPOINT"
let KEY_SWAP_WARN = "KEY_SWAP_WARN"
let KEY_HIDE_VALUE = "KEY_HIDE_VALUE"
Expand Down
44 changes: 38 additions & 6 deletions Cosmostation/Base/BaseData.swift
Original file line number Diff line number Diff line change
Expand Up @@ -352,25 +352,38 @@ extension BaseData {
}

@discardableResult
public func updateRefAddressesMain(_ refAddress: RefAddress) -> Int? {
public func updateRefAddressesAllValue(_ refAddress: RefAddress) -> Int? {
let query = TABLE_REFADDRESS.filter(REFADDRESS_ACCOUNT_ID == refAddress.accountId &&
REFADDRESS_CHAIN_TAG == refAddress.chainTag &&
REFADDRESS_DP_ADDRESS == refAddress.bechAddress)
REFADDRESS_CHAIN_TAG == refAddress.chainTag)
if let address = try! database.pluck(query) {
let target = TABLE_REFADDRESS.filter(REFADDRESS_ID == address[REFADDRESS_ID])
return try? database.run(target.update(REFADDRESS_MAIN_AMOUNT <- refAddress.lastMainAmount,
REFADDRESS_MAIN_VALUE <- refAddress.lastMainValue,
REFADDRESS_TOKEN_VALUE <- refAddress.lastTokenValue,
REFADDRESS_COIN_CNT <- refAddress.lastCoinCnt))
} else {
return Int(insertRefAddresses(refAddress))
}
}

@discardableResult
public func updateRefAddressesToken(_ refAddress: RefAddress) -> Int? {
public func updateRefAddressesCoinValue(_ refAddress: RefAddress) -> Int? {
let query = TABLE_REFADDRESS.filter(REFADDRESS_ACCOUNT_ID == refAddress.accountId &&
REFADDRESS_CHAIN_TAG == refAddress.chainTag &&
REFADDRESS_DP_ADDRESS == refAddress.bechAddress)
REFADDRESS_CHAIN_TAG == refAddress.chainTag)
if let address = try! database.pluck(query) {
let target = TABLE_REFADDRESS.filter(REFADDRESS_ID == address[REFADDRESS_ID])
return try? database.run(target.update(REFADDRESS_MAIN_AMOUNT <- refAddress.lastMainAmount,
REFADDRESS_MAIN_VALUE <- refAddress.lastMainValue,
REFADDRESS_COIN_CNT <- refAddress.lastCoinCnt))
} else {
return Int(insertRefAddresses(refAddress))
}
}

@discardableResult
public func updateRefAddressesTokenValue(_ refAddress: RefAddress) -> Int? {
let query = TABLE_REFADDRESS.filter(REFADDRESS_ACCOUNT_ID == refAddress.accountId &&
REFADDRESS_CHAIN_TAG == refAddress.chainTag)
if let address = try! database.pluck(query) {
let target = TABLE_REFADDRESS.filter(REFADDRESS_ID == address[REFADDRESS_ID])
return try? database.run(target.update(REFADDRESS_TOKEN_VALUE <- refAddress.lastTokenValue))
Expand Down Expand Up @@ -518,6 +531,25 @@ extension BaseData {
return selectAccounts().first
}

func setDisplayEvmChainTags(_ id: Int64, _ chainNames: [String]) {
if let encoded = try? JSONEncoder().encode(chainNames) {
UserDefaults.standard.setValue(encoded, forKey: String(id) + " " + KEY_DISPLAY_EVM_CHAINS)
}
}

func getDisplayEvmChainTags(_ id: Int64) -> [String] {
if let savedData = UserDefaults.standard.object(forKey: String(id) + " " + KEY_DISPLAY_EVM_CHAINS) as? Data {
if let result = try? JSONDecoder().decode([String].self, from: savedData) {
return result
}
}
return DEFUAL_DISPALY_EVM
}

func deleteDisplayEvmChainTags(_ id: Int64) {
UserDefaults.standard.removeObject(forKey: String(id) + " " + KEY_DISPLAY_EVM_CHAINS)
}

func setDisplayCosmosChainTags(_ id: Int64, _ chainNames: [String]) {
if let encoded = try? JSONEncoder().encode(chainNames) {
UserDefaults.standard.setValue(encoded, forKey: String(id) + " " + KEY_DISPLAY_COSMOS_CHAINS)
Expand Down
14 changes: 7 additions & 7 deletions Cosmostation/Base/BaseNetWork.swift
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ class BaseNetWork {
static func getAccountHistoryUrl(_ chain: BaseChain, _ address: String) -> String {
if (chain is ChainBinanceBeacon) {
return BNB_BEACON_LCD + "api/v1/transactions"
} else if (chain is ChainOkt60Keccak) {
} else if (chain.tag.starts(with: "okt")) {
return MINTSCAN_API_URL + "v1/utils/proxy/okc-transaction-list?device=IOS&chainShortName=okc&address=" + address + "&limit=50"
} else {
return MINTSCAN_API_URL + "v10/" + chain.apiName + "/account/" + address + "/txs"
Expand Down Expand Up @@ -139,7 +139,7 @@ class BaseNetWork {
static func getTxDetailUrl(_ chain: BaseChain, _ txHash: String) -> URL? {
if (chain is ChainBinanceBeacon) {
return URL(string: BNB_BEACON_EXPLORER + "tx/" + txHash)
} else if (chain is ChainOkt60Keccak) {
} else if (chain.tag.starts(with: "okt")) {
return URL(string: OKT_EXPLORER + "tx/" + txHash)
}
return URL(string: MintscanUrl + chain.apiName + "/transactions/" + txHash)
Expand All @@ -148,7 +148,7 @@ class BaseNetWork {
static func getAccountDetailUrl(_ chain: CosmosClass) -> URL? {
if (chain is ChainBinanceBeacon) {
return URL(string: BNB_BEACON_EXPLORER + "address/" + chain.bechAddress)
} else if (chain is ChainOkt60Keccak) {
} else if (chain.tag.starts(with: "okt")) {
return URL(string: OKT_EXPLORER + "address/" + chain.bechAddress)
}
return URL(string: MintscanUrl + chain.apiName + "/account/" + chain.bechAddress)
Expand Down Expand Up @@ -183,7 +183,7 @@ extension BaseNetWork {
static func lcdNodeInfoUrl(_ chain: BaseChain) -> String {
if (chain is ChainBinanceBeacon) {
return BNB_BEACON_LCD + "api/v1/node-info"
} else if (chain is ChainOkt60Keccak) {
} else if (chain.tag.starts(with: "okt")) {
return OKT_LCD + "node_info"
}
return ""
Expand All @@ -192,7 +192,7 @@ extension BaseNetWork {
static func lcdAccountInfoUrl(_ chain: BaseChain, _ address: String) -> String {
if (chain is ChainBinanceBeacon) {
return BNB_BEACON_LCD + "api/v1/account/" + address
} else if (chain is ChainOkt60Keccak) {
} else if (chain.tag.starts(with: "okt")) {
return OKT_LCD + "auth/accounts/" + address
}
return ""
Expand Down Expand Up @@ -234,7 +234,7 @@ extension BaseNetWork {
static func broadcastUrl(_ chain: BaseChain) -> String {
if (chain is ChainBinanceBeacon) {
return BNB_BEACON_LCD + "api/v1/broadcast"
} else if (chain is ChainOkt60Keccak) {
} else if (chain is ChainOkt996Keccak) {
return OKT_LCD + "txs"
}
return ""
Expand All @@ -244,7 +244,7 @@ extension BaseNetWork {
static func swapIdBep3Url(_ toChain: BaseChain, _ id: String) -> String {
if (toChain is ChainBinanceBeacon) {
return BNB_BEACON_LCD + "api/v1/atomic-swaps/" + id
} else if (toChain is ChainKava60) {
} else if (toChain.tag.starts(with: "kava")) {
return KAVA_LCD + "kava/bep3/v1beta1/atomicswap/" + id
}
return ""
Expand Down
15 changes: 15 additions & 0 deletions Cosmostation/Chains/BaseChain.swift
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,18 @@ enum PubKeyType: Int {
case SUI_Ed25519 = 3
case unknown = 99
}


func All_IBC_Chains() -> [CosmosClass] {
var result = [CosmosClass]()
result.append(contentsOf: ALLCOSMOSCLASS())
result.append(contentsOf: ALLEVMCLASS().filter { $0.supportCosmos == true } )
return result
}

//func AllChains() -> [CosmosClass] {
// var result = [CosmosClass]()
// result.append(contentsOf: ALLCOSMOSCLASS())
// result.append(contentsOf: ALLEVMCLASS())
// return result
//}
32 changes: 32 additions & 0 deletions Cosmostation/Chains/ClassCosmos/ChainAlthea118.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
//
// ChainAlthea118.swift
// Cosmostation
//
// Created by yongjoo jung on 2024/02/05.
// Copyright © 2024 wannabit. All rights reserved.
//

import Foundation

class ChainAlthea118: CosmosClass {

override init() {
super.init()

isDefault = false

name = "Althea"
tag = "althea118"
logo1 = "chainAlthea"
logo2 = "chainAlthea2"
apiName = "althea"
stakeDenom = "ualtg"

accountKeyType = AccountKeyType(.COSMOS_Secp256k1, "m/44'/118'/0'/0/X")
bechAccountPrefix = "althea"
validatorPrefix = "altheavaloper"

grpcHost = "grpc-kava.cosmostation.io"
}
}

40 changes: 18 additions & 22 deletions Cosmostation/Chains/ClassCosmos/ChainBinanceBeacon.swift
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,24 @@ class ChainBinanceBeacon: CosmosClass {
}

override func fetchData(_ id: Int64) {
fetchLcdData(id)
let group = DispatchGroup()

fetchNodeInfo(group)
fetchAccountInfo(group, bechAddress)
fetchBeaconTokens(group)
fetchBeaconMiniTokens(group)

group.notify(queue: .main) {
self.fetched = true
self.allCoinValue = self.allCoinValue()
self.allCoinUSDValue = self.allCoinValue(true)

BaseData.instance.updateRefAddressesCoinValue(
RefAddress(id, self.tag, self.bechAddress, self.evmAddress,
self.lcdAllStakingDenomAmount().stringValue, self.allCoinUSDValue.stringValue,
nil, self.lcdAccountInfo.bnbCoins?.count))
NotificationCenter.default.post(name: Notification.Name("FetchData"), object: self.tag, userInfo: nil)
}
}

override func fetchPreCreate() {
Expand Down Expand Up @@ -62,27 +79,6 @@ class ChainBinanceBeacon: CosmosClass {

extension ChainBinanceBeacon {

func fetchLcdData(_ id: Int64) {
let group = DispatchGroup()

fetchNodeInfo(group)
fetchAccountInfo(group, bechAddress)
fetchBeaconTokens(group)
fetchBeaconMiniTokens(group)

group.notify(queue: .main) {
self.fetched = true
self.allCoinValue = self.allCoinValue()
self.allCoinUSDValue = self.allCoinValue(true)

BaseData.instance.updateRefAddressesMain(
RefAddress(id, self.tag, self.bechAddress, self.evmAddress,
self.lcdAllStakingDenomAmount().stringValue, self.allCoinUSDValue.stringValue,
nil, self.lcdAccountInfo.bnbCoins?.count))
NotificationCenter.default.post(name: Notification.Name("FetchData"), object: self.tag, userInfo: nil)
}
}

func fetchNodeInfo(_ group: DispatchGroup) {
// print("fetchNodeInfo Start ", BaseNetWork.lcdNodeInfoUrl(self))
group.enter()
Expand Down
52 changes: 0 additions & 52 deletions Cosmostation/Chains/ClassCosmos/ChainCanto.swift

This file was deleted.

54 changes: 0 additions & 54 deletions Cosmostation/Chains/ClassCosmos/ChainEvmos.swift

This file was deleted.

6 changes: 3 additions & 3 deletions Cosmostation/Chains/ClassCosmos/ChainHumans.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ class ChainHumans: CosmosClass {
accountKeyType = AccountKeyType(.ETH_Keccak256, "m/44'/60'/0'/0/X")
bechAccountPrefix = "human"
validatorPrefix = "humanvaloper"
evmCompatible = true
supportErc20 = false
// evmCompatible = true
// supportErc20 = false

grpcHost = "grpc-humans.cosmostation.io"
rpcURL = "https://rpc-humans-app.cosmostation.io"
// rpcURL = "https://rpc-humans-app.cosmostation.io"
}

override func setInfoWithSeed(_ seed: Data, _ lastPath: String) {
Expand Down
1 change: 0 additions & 1 deletion Cosmostation/Chains/ClassCosmos/ChainInjective.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ class ChainInjective: CosmosClass {
accountKeyType = AccountKeyType(.INJECTIVE_Secp256k1, "m/44'/60'/0'/0/X")
bechAccountPrefix = "inj"
validatorPrefix = "injvaloper"
evmCompatible = true

grpcHost = "grpc-injective.cosmostation.io"
}
Expand Down
Loading

0 comments on commit 6c68f58

Please sign in to comment.