From 8c5ffb88d57bd037f2e650f0d6e0af22c9241c94 Mon Sep 17 00:00:00 2001 From: Rui Date: Thu, 19 Dec 2024 16:13:34 -0800 Subject: [PATCH 1/3] Allow only specific wallets in the modal screen --- .../WalletProvidersConfigUtil.kt | 8 +- .../exchange/dydx/cartera/CarteraConfig.kt | 41 +- .../providers/WalletConnectModalProvider.kt | 31 +- cartera/src/main/res/raw/wc_modal_ids.json | 388 ++++++++++++++++++ wallets/get_wc_ids.sh | 34 ++ 5 files changed, 489 insertions(+), 13 deletions(-) create mode 100644 cartera/src/main/res/raw/wc_modal_ids.json create mode 100755 wallets/get_wc_ids.sh diff --git a/app/src/main/java/exchange/dydx/carteraExample/WalletProvidersConfigUtil.kt b/app/src/main/java/exchange/dydx/carteraExample/WalletProvidersConfigUtil.kt index cf6227a..ba387b8 100644 --- a/app/src/main/java/exchange/dydx/carteraExample/WalletProvidersConfigUtil.kt +++ b/app/src/main/java/exchange/dydx/carteraExample/WalletProvidersConfigUtil.kt @@ -1,5 +1,6 @@ package exchange.dydx.carteraexample +import exchange.dydx.cartera.WalletConnectModalConfig import exchange.dydx.cartera.WalletConnectV1Config import exchange.dydx.cartera.WalletConnectV2Config import exchange.dydx.cartera.WalletProvidersConfig @@ -29,9 +30,10 @@ object WalletProvidersConfigUtil { ) return WalletProvidersConfig( - walletConnectV1Config, - walletConnectV2Config, - walletSegueConfig, + walletConnectV1 = walletConnectV1Config, + walletConnectV2 = walletConnectV2Config, + walletConnectModal = WalletConnectModalConfig.default, + walletSegue = walletSegueConfig, ) } } diff --git a/cartera/src/main/java/exchange/dydx/cartera/CarteraConfig.kt b/cartera/src/main/java/exchange/dydx/cartera/CarteraConfig.kt index ab8b809..abd7769 100644 --- a/cartera/src/main/java/exchange/dydx/cartera/CarteraConfig.kt +++ b/cartera/src/main/java/exchange/dydx/cartera/CarteraConfig.kt @@ -70,23 +70,24 @@ class CarteraConfig( if (walletProvidersConfig.walletConnectV2 != null) { registration[WalletConnectionType.WalletConnectV2] = RegistrationConfig( provider = WalletConnectV2Provider( - walletProvidersConfig.walletConnectV2, - application, + walletConnectV2Config = walletProvidersConfig.walletConnectV2, + application = application, ), ) registration[WalletConnectionType.WalletConnectModal] = RegistrationConfig( provider = WalletConnectModalProvider( application = application, + config = walletProvidersConfig.walletConnectModal, ), ) } if (walletProvidersConfig.walletSegue != null) { registration[WalletConnectionType.WalletSegue] = RegistrationConfig( provider = WalletSegueProvider( - walletProvidersConfig.walletSegue, - application, - launcher, + walletSegueConfig = walletProvidersConfig.walletSegue, + application = application, + launcher = launcher, ), ) } @@ -106,6 +107,7 @@ class CarteraConfig( registration[WalletConnectionType.WalletConnectModal] = RegistrationConfig( provider = WalletConnectModalProvider( application = application, + config = walletProvidersConfig.walletConnectModal, ), ) } @@ -164,6 +166,7 @@ class CarteraConfig( data class WalletProvidersConfig( val walletConnectV1: WalletConnectV1Config? = null, val walletConnectV2: WalletConnectV2Config? = null, + val walletConnectModal: WalletConnectModalConfig? = null, val walletSegue: WalletSegueConfig? = null ) @@ -184,6 +187,34 @@ data class WalletConnectV2Config( val iconUrls: List ) +data class WalletConnectModalConfig( + val walletIds: List? +) { + companion object { + val default: WalletConnectModalConfig = WalletConnectModalConfig( + walletIds = listOf( + "c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96", // Metamask + "4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0", // Trust + "971e689d0a5be527bac79629b4ee9b925e82208e5168b733496a09c0faed0709", // OKX + "c03dfee351b6fcc421b4494ea33b9d4b92a984f87aa76d1663bb28705e95034a", // Uniswap + "1ae92b26df02f0abca6304df07debccd18262fdf5fe82daa81593582dac9a369", // Rainbow + "ecc4036f814562b41a5268adc86270fba1365471402006302e70169465b7ac18", // Zerion + "c286eebc742a537cd1d6818363e9dc53b21759a1e8e5d9b263d0c03ec7703576", // 1inch + "ef333840daf915aafdc4a004525502d6d49d77bd9c65e0642dbaefb3c2893bef", // imToken + "38f5d18bd8522c244bdd70cb4a68e0e718865155811c043f052fb9f1c51de662", // Bitget + "0b415a746fb9ee99cce155c2ceca0c6f6061b1dbca2d722b3ba16381d0562150", // Safepal + "15c8b91ade1a4e58f3ce4e7a0dd7f42b47db0c8df7e0d84f63eb39bcb96c4e0f", // Bybit + "19177a98252e07ddfc9af2083ba8e07ef627cb6103467ffebb3f8f4205fd7927", // Ledger Live + "344d0e58b139eb1b6da0c29ea71d52a8eace8b57897c6098cb9b46012665c193", // Timeless X + "225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f", // Safe + "f2436c67184f158d1beda5df53298ee84abfc367581e4505134b5bcf5f46697d", // Crypto.com + "18450873727504ae9315a084fa7624b5297d2fe5880f0982979c17345a138277", // Kraken + "541d5dcd4ede02f3afaf75bf8e3e4c4f1fb09edb5fa6c4377ebf31c2785d9adf" // Ronin + ) + ) + } +} + data class WalletSegueConfig( val callbackUrl: String ) diff --git a/cartera/src/main/java/exchange/dydx/cartera/walletprovider/providers/WalletConnectModalProvider.kt b/cartera/src/main/java/exchange/dydx/cartera/walletprovider/providers/WalletConnectModalProvider.kt index 66aee9c..1537fee 100644 --- a/cartera/src/main/java/exchange/dydx/cartera/walletprovider/providers/WalletConnectModalProvider.kt +++ b/cartera/src/main/java/exchange/dydx/cartera/walletprovider/providers/WalletConnectModalProvider.kt @@ -5,11 +5,15 @@ import android.content.ActivityNotFoundException import android.content.Intent import android.net.Uri import androidx.navigation.NavHostController +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken import com.walletconnect.android.CoreClient import com.walletconnect.wcmodal.client.Modal import com.walletconnect.wcmodal.client.WalletConnectModal import com.walletconnect.wcmodal.ui.openWalletConnectModal import exchange.dydx.cartera.CarteraErrorCode +import exchange.dydx.cartera.R +import exchange.dydx.cartera.WalletConnectModalConfig import exchange.dydx.cartera.entities.Wallet import exchange.dydx.cartera.entities.toJsonRequest import exchange.dydx.cartera.tag @@ -34,9 +38,11 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import timber.log.Timber +import java.lang.reflect.Type class WalletConnectModalProvider( - private val application: Application + private val application: Application, + private val config: WalletConnectModalConfig?, ) : WalletOperationProviderProtocol, WalletConnectModal.ModalDelegate { private var _walletStatus = WalletStatusImp() @@ -65,8 +71,23 @@ class WalletConnectModalProvider( var nav: NavHostController? = null init { + val jsonData = application.getResources().openRawResource(R.raw.wc_modal_ids) + .bufferedReader().use { it.readText() } + val gson = Gson() + val idListType: Type = object : TypeToken?>() {}.type + val wc_modal_ids: List? = gson.fromJson(jsonData, idListType) + val excludedIds = wc_modal_ids?.toMutableList() ?: mutableListOf() + for (id in config?.walletIds ?: emptyList()) { + if (excludedIds.contains(id)) { + excludedIds.remove(id) + } + } WalletConnectModal.initialize( - init = Modal.Params.Init(CoreClient), + init = Modal.Params.Init( + core = CoreClient, + recommendedWalletsIds = config?.walletIds ?: emptyList(), + excludedWalletIds = excludedIds, + ), onSuccess = { // Callback will be called if initialization is successful Timber.tag(tag(this)).d("WalletConnectModal initialized.") @@ -306,9 +327,9 @@ class WalletConnectModalProvider( completion( null, WalletError( - CarteraErrorCode.CONNECTION_FAILED, - "WalletConnectModal.request error", - error.throwable.stackTraceToString(), + code = CarteraErrorCode.CONNECTION_FAILED, + title = "WalletConnectModal.request error", + message = error.throwable.stackTraceToString(), ), ) }, diff --git a/cartera/src/main/res/raw/wc_modal_ids.json b/cartera/src/main/res/raw/wc_modal_ids.json new file mode 100644 index 0000000..a360c14 --- /dev/null +++ b/cartera/src/main/res/raw/wc_modal_ids.json @@ -0,0 +1,388 @@ +[ "c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96", +"4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0", +"971e689d0a5be527bac79629b4ee9b925e82208e5168b733496a09c0faed0709", +"38f5d18bd8522c244bdd70cb4a68e0e718865155811c043f052fb9f1c51de662", +"8a0ee50d1f22f6651afcae7eb4253e52a3310b90af5daef78a8c4929a9bb99d4", +"c03dfee351b6fcc421b4494ea33b9d4b92a984f87aa76d1663bb28705e95034a", +"0b415a746fb9ee99cce155c2ceca0c6f6061b1dbca2d722b3ba16381d0562150", +"1ae92b26df02f0abca6304df07debccd18262fdf5fe82daa81593582dac9a369", +"15c8b91ade1a4e58f3ce4e7a0dd7f42b47db0c8df7e0d84f63eb39bcb96c4e0f", +"20459438007b75f4f4acb98bf29aa3b800550309646d375da5fd4aac6c2a2c66", +"19177a98252e07ddfc9af2083ba8e07ef627cb6103467ffebb3f8f4205fd7927", +"344d0e58b139eb1b6da0c29ea71d52a8eace8b57897c6098cb9b46012665c193", +"225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f", +"ecc4036f814562b41a5268adc86270fba1365471402006302e70169465b7ac18", +"c286eebc742a537cd1d6818363e9dc53b21759a1e8e5d9b263d0c03ec7703576", +"f2436c67184f158d1beda5df53298ee84abfc367581e4505134b5bcf5f46697d", +"ef333840daf915aafdc4a004525502d6d49d77bd9c65e0642dbaefb3c2893bef", +"18450873727504ae9315a084fa7624b5297d2fe5880f0982979c17345a138277", +"541d5dcd4ede02f3afaf75bf8e3e4c4f1fb09edb5fa6c4377ebf31c2785d9adf", +"8837dd9413b1d9b585ee937d27a816590248386d9dbf59f5cd3422dbbb65683e", +"e9ff15be73584489ca4a66f64d32c4537711797e30b6660dbcb71ea72a42b1f4", +"bc949c5d968ae81310268bf9193f9c9fb7bb4e1283e1284af8f2bd4992535fd6", +"84b43e8ddfcd18e5fcb5d21e7277733f9cccef76f7d92c836d0e481db0c70c04", +"fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa", +"2bd8c14e035c2d48f184aaa168559e86b0e3433228d3c4075900a221785019b0", +"9414d5a85c8f4eabc1b5b15ebe0cd399e1a2a9d35643ab0ad22a6e4a32f596f0", +"f5b4eeb6015d66be3f5940a895cbaa49ef3439e518cd771270e6b553b48f31d2", +"5864e2ced7c293ed18ac35e0db085c09ed567d67346ccb6f58a0327a75137489", +"7674bb4e353bf52886768a3ddc2a4562ce2f4191c80831291218ebd90f5f5e26", +"138f51c8d00ac7b9ac9d8dc75344d096a7dfe370a568aa167eabc0a21830ed98", +"8308656f4548bb81b3508afe355cfbb7f0cb6253d1cc7f998080601f838ecee3", +"47bb07617af518642f3413a201ec5859faa63acb1dd175ca95085d35d38afb83", +"85db431492aa2e8672e93f4ea7acf10c88b97b867b0d373107af63dc4880f041", +"afbd95522f4041c71dd4f1a065f971fd32372865b416f95a0b1db759ae33f2a7", +"76a3d548a08cf402f5c7d021f24fd2881d767084b387a5325df88bc3d4b6f21b", +"031f0187049b7f96c6f039d1c9c8138ff7a17fd75d38b34350c7182232cc29aa", +"2c81da3add65899baeac53758a07e652eea46dbb5195b8074772c62a77bbf568", +"802a2041afdaf4c7e41a2903e98df333c8835897532699ad370f829390c6900f", +"7424d97904535b14fe34f09f63d8ca66935546f798758dabd5b26c2309f2b1f9", +"dd43441a6368ec9046540c46c5fdc58f79926d17ce61a176444568ca7c970dcd", +"c482dfe368d4f004479977fd88e80dc9e81107f3245d706811581a6dfe69c534", +"107bb20463699c4e614d3a2fb7b961e66f48774cb8f6d6c1aee789853280972c", +"053ac0ac602e0969736941cf5aa07a3af57396d4601cb521a173a626e1015fb1", +"2a3c89040ac3b723a1972a33a125b1db11e258a6975d3a61252cd64e6ea5ea01", +"b956da9052132e3dabdcd78feb596d5194c99b7345d8c4bd7a47cabdcb69a25f", +"0e4915107da5b3408b38e248f7a710f4529d54cd30e9d12ff0eb886d45c18e92", +"ff97af0ad5fca162553ebbd76f2564b7f7b04569c131e972b75bbff2dc13c1a9", +"1b63efdee42329f05599ace3205efe387a4a92a331646c86a9193743d22509d7", +"0563e0724f434298dda37acaa704857ab293b48f1b39b765569a0072de43c0cf", +"719bd888109f5e8dd23419b20e749900ce4d2fc6858cf588395f19c82fd036b3", +"c5bba8af012b2139c406cc667a7b67a1503d984aeb0cdd2ef02e667c4abba6fe", +"6b2e623f231f3794db2fcb7cfff2d1cc1d902bff70d946980d62956cd880cacc", +"942d0e22a7e6b520b0a03abcafc4dbe156a1fc151876e3c4a842f914277278ef", +"8ff6eccefefa7506339201bc33346f92a43118d6ff7d6e71d499d8187a1c56a2", +"15d7610042217f691385d20e640869dc7273e991b04e8f476417cdc5ec856955", +"1896aa67ce33d5bde764369c7541a75074baa1b8da97e703c9ee3a4b61e56e65", +"6577b7c91453a7047f1c31c5897bd59087a8cca35181e069656079255542abb4", +"dacf9f750e579e7aa93a752117fb3870a5bfc2e967441b477cef5e6f1458e33d", +"105bc5cd0cf9126c1050e6f88fbdcc3e6b47bbfe4ff08b79ed189198374008c9", +"07f99a5d9849bb049d74830012b286f8b238e72b0337933ef22b84947409db80", +"b6329af78b11719de52ca0426fb50d64b9b965335fc53dafed994ec22680614e", +"b7cd38c9393f14b8031bc10bc0613895d0d092c33d836547faf8a9b782f6cbcc", +"c733d32f3b974c4a96e0cd5a3b6f7e186e2f6379182ac6640fdbab4f9ef489b0", +"8821748c25de9dbc4f72a691b25a6ddad9d7df12fa23333fd9c8b5fdc14cc819", +"7de190d03faf1f15027a834801f045bc66640045b0d5a0daa4686d7fa89fab74", +"058e750fda11f3a5a46b3ae90cd413fc2a4e5b8679a3c01e9a640fcc756a0167", +"835dc63f69f65113220e700112363fef2a5f1d72d6c0eef4f2c7dc66bf64b955", +"44ca80bba6838e116e8d0a2c1a1f37041ea322379cc65a71479b6a240b6fcab2", +"af9a6dfff9e63977bbde28fb23518834f08b696fe8bff6dd6827acad1814c6be", +"bdc9433ffdaee55d31737d83b931caa1f17e30666f5b8e03eea794bac960eb4a", +"022e8ff84519e427bff394b3a58308bc9838196a8efb45158da0ab7c3228abfb", +"438b07441c5273c60e415efd227862d9b1344ef378d9ee7d1b3bfa8b33384eff", +"01925725cdc7a5008824c8f19eff85769903fbcc53c62639feb0d4f8d3a6cf52", +"43832260665ea0d076f9af1ee157d580bb0eb44ca0415117fef65666460a2652", +"3ed8cc046c6211a798dc5ec70f1302b43e07db9639fd287de44a9aa115a21ed6", +"226d8a12a2e6e5c4185fa9c24313824bfb144c2a180325bddbd121844f497afa", +"65fb5ef9b1fd74d001027a10ede38de96a1704a0ec82994bb47f995d10d6df85", +"f6beeb5941e6853084ca2177339120e1c55a28a19ec4e504553cf402ed65c815", +"b2ce31fb31735fa886270806340de999f72342a7c29484badd8d4d013d77c8b8", +"08739356e3fc0efd9498696b7831e8b42b0ad7390af663cd3ba3c30866195b34", +"d01c7758d741b363e637a817a09bcf579feae4db9f5bb16f599fdd1f66e2f974", +"5265dcf66be0553328dbc727414ab329e22f9a480e593bd2e927b279e4ab244d", +"3968c3f5e1aa69375e71bfc3da08a1d24791ac0b3d1c3b1c7e3a2676d175c856", +"e1882224c4c09a84575c533867d434267c46384f5a365b889605d28b061747c4", +"f039a4bdf6d5a54065b6cc4b134e32d23bed5d391ad97f25aab5627de26a0784", +"bfa6967fd05add7bb2b19a442ac37cedb6a6b854483729194f5d7185272c5594", +"1f711d32b1df0f84741fafa2ad1d81599b01297cc7d22d153272cb3ef4232f19", +"dd8ee41915d967e547c80266e883d77ee808427405f4e8026a85ac1308104221", +"959c4774921adfcd49b30c88eb53f3831df6cc8c2f65577fbdd65c26a342577e", +"bd0a2043ad2de4b70567d990d76c4bff7e483f6cda88814ee502b4ff25471293", +"bae2ab14ef450f307f24a395a3c2766a2ef8a9c0e61856985d23f6445e8db03f", +"6289878a2ef8c49944cf428184bba626b161b0974f0b4f8b31a15e0317d8861c", +"184f15ea2cd5f65e25ed72efdd2ed1979179eddf0c0741ab0dd23c1eb7e0eee5", +"6adb6082c909901b9e7189af3a4a0223102cd6f8d5c39e39f3d49acb92b578bb", +"87eecbca66faef32f044fc7c66090fc668efb02e2d17dda7bf095d51dff76659", +"abe0fdeae7b922a07bd0ced268cae04c1195ca1a50a478ca82b6b34a74b83700", +"fa82693d6253e73be14a572f4d0d66bee9e9d3f6bceaa49104987b4ba66ee398", +"f323633c1f67055a45aac84e321af6ffe46322da677ffdd32f9bc1e33bafe29c", +"3fecad5e2f0a30aba97edea69ebf015884a9b8a9aec93e66d4b4b695fee1f010", +"c3309233b29cc49323e2622383539b85dc62db2785874010e13d945d66eab880", +"a1f506a38f39b672b369bd13b68abbbd81f83a0489e6625f2bf12aa0389c22ae", +"4d0cf1b635a59175b4ad6d6522b0b748ee920b1f8c32030fa704c00926efdf3e", +"19ad8334f0f034f4176a95722b5746b539b47b37ce17a5abde4755956d05d44c", +"94f785c0c8fb8c4f38cd9cd704416430bcaa2137f27e1468782d624bcd155a43", +"7468ebbf5e14bd146c4fa12a08fb1a0d8d9af3b66409a5b682b64cffc4f21919", +"1f69170bf7a9bdcf89403ec012659b7124e158f925cdd4a2be49274c24cf5e5d", +"9504a1c1a86cc0702b2d3e47049e1389b373fb2ff22de3208c748d62912433a4", +"540148afe64558bb238cab6c43bd963055ed9248c094eaebff94d7bbb59f9aba", +"576c90ceaea34f29ff0104837cf2b2e23d201be43be1433feeb18d375430e1fd", +"48e53d96460308a1734614b5d4fdf7ea169e6f998e01eb7b4e18014f57904d67", +"9034d54985807aaf3d7780f50f155f954daa468fb58d7b14b216fc79d68bbd14", +"b83a346877b71c02b8531f53485ce12bc00033eabcc1213ca3329cbc744813a5", +"394631c96f2c3201ffd5b3f3f249028163a893ae2ff9076882350e70f3450cb0", +"6d1d5b892e02d4c992ae67f18f522398481360c64269f5cdf5e4b80435b20e3d", +"d6fbaf5c2026e050920ed6e6ffbf96c8a6145b93a8b79d102def9653bedc9821", +"49bb9d698dbdf2c3d4627d66f99dd9fe90bba1eec84b143f56c64a51473c60bd", +"dc8ac638c6fd002950f9404dbb0639ae25bab667bf1a60a419bf8f44a89ed3a7", +"51d2c02e306827d2d0f0dadaa00f22575c623aa19c403f09f4b9c42c67098bb1", +"19418ecfd44963883e4d6abca1adeb2036f3b5ffb9bee0ec61f267a9641f878b", +"f593f4eb9755ff047681a37ebc46706e0e915cf1c2fe0102f5ae47c9f6aa4082", +"37a686ab6223cd42e2886ed6e5477fce100a4fb565dcd57ed4f81f7c12e93053", +"dccbd717df77b395445cc6080e01fffada9d8b92dacfda312a26c70c2e9af673", +"c8c8f44329b9b826ded9a2ac330745f584a61aed6b1d0ed2a093b64bca7fc3bb", +"5b8e33346dfb2a532748c247876db8d596734da8977905a27b947ba1e2cf465b", +"1aedbcfc1f31aade56ca34c38b0a1607b41cccfa3de93c946ef3b4ba2dfab11c", +"d23de318f0f56038c5edb730a083216ff0cce00c1514e619ab32231cc9ec484b", +"50df7da345f84e5a79aaf617df5167335a4b6751626df2e8a38f07029b3dde7b", +"a21d06c656c8b1de253686e06fc2f1b3d4aa39c46df2bfda8a6cc524ef32c20c", +"3b9f67c2c0887f71e4f9ba1bd2bf5b4eb6cda94419abd3f0c5c12931a60928b0", +"f896cbca30cd6dc414712d3d6fcc2f8f7d35d5bd30e3b1fc5d60cf6c8926f98f", +"5a2b2b6e41df46ea80709c11b4f902d31271f01f660f1c892102107fbc2bf88c", +"5a32122dd183770b1253d8e3bb0954ced0be9f2dfd9654fe773cc80be79a57ca", +"e6a8cb6abe47f88d7511b0698829eab01d76e78bad82b8ccca66004055055d89", +"664b505fea4c2117b8a55c054ef209664e0a68ddaafd7534df739f97a293fa1d", +"feb6ff1fb426db18110f5a80c7adbde846d0a7e96b2bc53af4b73aaf32552bea", +"41f20106359ff63cf732adf1f7dc1a157176c9b02fd266b50da6dcc1e9b86071", +"14e7176536cb3706e221daaa3cfd7b88b7da8c7dfb64d1d241044164802c6bdd", +"a92d512c649e87a5acba5885ac03f62662cff1f647c20a63833eb45a71a6f877", +"7e6bb17d0f776c0449f5e79f8df3b34e7be388c9c527befc4ba92ef8cbe55c44", +"19fcea5bdddbf5abbb9ecdcb53acf6fb17da23ab0984ee1dbe487688d8d4ffe7", +"dbb64ad8f55b4ed333d909a6d53670cf97d136c22eb1dca800c539ecea165a53", +"21af5c7a9c01793077b61aecbb4bb5648e9be62a6a0a42c5f4d2ff05d4e00d5c", +"71a83ffbaa7fa38419e8f548a6499c78c8d429163631cf483483fc7efc6b7aae", +"3c2c985c0adff6f46a0d0e466b3924ed8a059043882cd1944ad7f2adf697ed54", +"bcaec16e531fb5f6dc690d7b70d570421e0209af9a0fe77c6419d516fe0098c2", +"a309c4e5e51f106e739b70ca64c9c8a78a59e51a35fb0df3711eeb1a4d642b3a", +"92dec31cb291452a58043db64f26b20c886607661fd82e921be6362d5fee7f49", +"fdcaaa47c154988ff2ce28d39248eb10366ec60c7de725f73b0d33b5bb9b9a64", +"f3379d4ac112b75ce80222d6e0d18f36667c87086fa65b6d10f118815d224940", +"bd44a349197c9d22659b98f0db579589f1e99f0ef51ccc06ffab2544b86e68e7", +"6ec576d0fbc0b1f6c7bf84cdf84386db7788a89cd2e62b852ca9514229e0e9aa", +"43fd1a0aeb90df53ade012cca36692a46d265f0b99b7561e645af42d752edb92", +"4c70c9bd85cc4707811ec0912d692855370d465d46188be42530eaeb4a4f3cae", +"c4a289db34ed1b8e29d7e87a2e97c236bb82d72d60c8d73e27e02769facabd4a", +"c7708575a2c3c9e6a8ab493d56cdcc56748f03956051d021b8cd8d697d9a3fd2", +"47c5a25372f22ccf2df09a8431ccd00c02df19f4b73fa0e7c04c1573b90aec7a", +"e053718e3e968b085a0ae5d11ce1c3d74ba6918c27319c70fc358a48138a5cc4", +"36dbd7f82df78f406723eb71599640fbbf703b2583682ba1e419a9098a2d4945", +"7be8d8b5e39bbcee13867c50e47387cd752c12e03b3e6fdf2e0638c7b4e3b69f", +"9ce87712b99b3eb57396cc8621db8900ac983c712236f48fb70ad28760be3f6a", +"550b59942eb58a7226381bf7935f22d311e56ee29c3530e44d96b1de0550a35a", +"0e9aa50bb3211c93ab48626d53dd631518e33b1eb6cf88638a83e2a0a377e3d0", +"bfad79e3d89bfb915b1e230000179a8ffc8e04f3f78a396d2e4f3e1a51223529", +"ad29e6ba814865dc84111a311f0d64692a6f3fdc220aa1c151034b1e948fe2ef", +"21030f20fba1a77115858ee3a8bc5841c739ab4537441316e2f4b1d0a8d218af", +"7b20b6de13a5ecce036f74f74185669ca8f37cca0ca853d126d8dc2830d38f22", +"fa6a09c7efd73c6fe3bc5a68969d0def71b5d760b99a16985e3e8e79d84b0156", +"7819f9cd07e8d7101a483087869f1e57b7d448f3ec5f4ef3eda63c19b926dc17", +"ede21300a22965815031c9bf07d72f05f3d4bf26ad00e5fc4f348a1ee4c838b8", +"9e14926bb64fa2ff359c3acbd75bb675b09efa6f72aed049616a053827140025", +"4174944732b68fe84b79b98bc0d75c3f0dce4e6e6e9834439fbc1e51fa6eebf3", +"ca331388cfe708d3c0fb094f4b08fb3c7ebd7778d3dfdcecb728990e178a3d81", +"816d067b6e3387965911bab9666725e2e53d3bfcd3dade708b74917a6d5c8432", +"34fca0f0eaa51af856cc7f205bacc36ede45545fa987fd81274e53db7718a183", +"d166c283d59164538cdc50e414546a7433d5f62b9410c9aa563e4e2ec496a106", +"394046500fb52c9e57e0091ef30305d513bcae143132a49c1f2a69b594126001", +"b06656d0b04f34279945f36452bc4089e8b62a44e1d58f9e98807525ac37af06", +"b3adea6c0b9172c4a49da31d264a7c4aacd70ea04f6af8e8977ecb974298b13c", +"76260019aec5a3c44dd2421bf78e80f71a6c090d932c413a287193ed79450694", +"e6db14424618cf309697eb50dc330ec18b0ad63395f5ac4669233716df5c18be", +"de9e8421961e35c5e35cb63e3cd7be9af328a62c7b5a11f95ca116bf128a7424", +"aba1f652e61fd536e8a7a5cd5e0319c9047c435ef8f7e907717361ff33bb3588", +"6af02afbc4ac21d339fb4290d048d48f9f73c3b1a307a994f0474329948c0e5a", +"2ba89f94faff121a7c1091c3cea124167dc4291ebe87123620c66e0f120197cc", +"cbc11415130d01316513f735eac34fd1ad7a5d40a993bbb6772d2c02eeef3df8", +"0e36dd863f7cb70a0d8dd507e2b32495b01771abbf5c73817401d958d9938ca7", +"47bb562043e570200267c79b256c5fc4e005bde1d5628db9205f072243329fbf", +"30eb3e6d71fd0727d154e451748815e04a99c06972a84b10dfe7ae1b923c0c92", +"0d27c5ac4a4a36e8c3f24f8bf3626ee5f0ab41d1a62ea17133f7a67c72efe09d", +"6544c9ff3ea25bc10a86b6e213c0f0407b04fb335490d7d56f4550c2c6be0502", +"94135dbd7aaca4908de49c44e49b8920a79c90164a7ce5803ddb33054c7edc57", +"1796b3d91d6dcaa47a23f7eeb751b89e95d9ced769ade41caa18a8e9759b673c", +"1531a2c7dd4506df2ec8660da31c7d4a5f3c9ebbc121c7996c688e12a097f26b", +"f5971a12f71b352c3abb3c9fc29818f1044a87d791ce28db6e5ab1962bfff717", +"c615c62d619fd52fa1cdf0187229a627f78fa924c90f04391af8960c000b59c5", +"4b0ef81be0008b86e873d57554e533a7b93b99dd6e9376ae4cbb4fea29b64269", +"a74882bc3c24d2f52e55fd9c9579275885177e92789586ae857208c839335306", +"3cf9e635075cdc1587c444bc6e01a6026c7fd1d518a96a7ac0aa23b905a7c53e", +"2ebc33a02906094b8ea5d21a7c6e1673ecdefb33dca723897d13c7de3446d354", +"016f8161cd78dd01003cf466292b9690c0fd251f2d69415a3cc96659d975e398", +"5d12c54d33abc6af163bc0344eed8df90765281c4973ada8863ed9ae12aa137f", +"981ee0b205893921cdb52c94070acedd39283e911de238c478652dedf0e1d76d", +"33c036d8075d28c9f3619d4d43075676a6d294047e3658fb103e5b3424337551", +"7ef337ff00714f179d38b8142398efa2ab902a53430e99ebce02892053d7a310", +"87c00b80517fed78fe3705f43dfefe9b711910859acebb8889aa752556649ef1", +"7215d406ebbd8e129f6092ee3c6c86c08d444e431bf35414613f6fbb686ab2c9", +"37ef631ba83835cae97dbbfe270ff828cdf4c9326e998927bcb03f262f98f144", +"6464873279d46030c0b6b005b33da6be5ed57a752be3ef1f857dc10eaf8028aa", +"848a1500e563b3a6151bbd2643fefc8e04ac088312f7f812c75d67b0badbf55f", +"a93e0fd6a25178b2fa80eb882150f6b8da53c1e9f3e6d0d92019076671bb07f0", +"24fd8104e07aa1802aef51426222f23868013b83655fb6686c8478744dd2fda1", +"cb9d66ecab6a3a98bff2de2653e4e1ce44e84130a7ab323a2892a5c456956ffe", +"6bd4cf3fa61dafe9088f9e93e5d1178c7e792fe349489d9a8141cf4354359712", +"0e3c4838e5a7c44b6b16299b7dbc7a2bc147ad9c056588d6190e11ec5804fba9", +"17a4ec96ceb34ade8e5215220df2051614aeebb832cc80ef19ddd7f33d5ba862", +"deb700f0ebe34fd6c25a937629949b3c4c6c9dafdf87056190e985f189b691d2", +"56bec983b47c8b6eb774890c1c8ae9d95334e10bdb126ab6c11dfaf56fb2b31c", +"73232eaed7a1e4876f3efb13c3d526dfe4e293a152e1380095a62eb4c5814a87", +"0f5eca2c7f2c9d11c992fdc707575c484ffb751e58e43eaeeea24510bfe8b8dd", +"b563f5fb9214c9bf33baef0e14e4bf5a479905182e46782023b1ea827f263a60", +"37aacf1e6bf6793c892e42c3f7623a61d9ffcb4337010804cc3193c4d596cf5c", +"689e621a3585ca018fd44ff404bc89079a0e55e9c632574e8bf8d2b1c7918911", +"22086a7044492919c850e06c38b7940dca5a17c83a69d2d61581d72a1526c373", +"be5a8ab0c885357ce212602173781d9b03f8c0308f28aa1211e1e92ce04fb2c9", +"1897fdb811ff53a69f9217a98696798b0227c7d77fddf103e8295be551a1e3b6", +"221eb19f9cfdf577c2f75190fc4fa24523624f604904ced78089bc82ebdb983e", +"de0876834d89cfbc7d50c9082727480c784c33ec559349b0541c452cd9e10ed0", +"cb53ce18c593e8ea5d93c6a55bf848e4b75010c077f83b012b7c4e5f8fce842a", +"b1998499e7502d1d10eddb209edc25b1a7aa7977d6ce6664b066474d66f43bdf", +"d11e890cc208235fd14e5234b4fc180eb36ade32808c980ee85cc57fe4a08ebb", +"8631ca765defdf51cd72444ec0284b866c835a947ed082d41c0c756a3b2eb1c2", +"d6071018d2199b47d48c9590423f17afe222c35a12727db3f64ca2962a5e5709", +"ce3e70881c4605a03fb86554509735d45eca98c68bd6d72e86073e962dc6e8cb", +"38692c32358198bc36b2775615ae615ad0f40404452993de2384ef64b2c5ca61", +"c299d20788465854615bc197864027625c71f8f4735fdb3e210636d1bd1e1935", +"7dcb0e5eb1b4fc6e2e0b143201c489ea6c618259f49527527d4a349d1a95ba7b", +"a5b3b5055ba7333811fcb80222a421bb6ac541b3eccf99edb6d0e5040bb008e7", +"14e5d957c6eb62d3ee8fc6239703ac2d537d7e3552154836ca0beef775f630bc", +"f37a272090b3b7620c8be1d2ed40cf435055789fc16ab2b710ecec124b62b634", +"63488e0e0679da829dd964a670f2d0bf8643f52aa2d5a8a8539c3a4fcad6a78a", +"c342b7446487de20c6112b356df719506a0b60ce7c2cd78729cc79d75b89e732", +"303766b6cc6768b384c84d63a02c5f302e1faa1c8d26a624623060316fc1f68c", +"9051a97842275b8157ed5df27b77096def499f002a2f227ef6df0c6c6a0e69fb", +"96dec48797b543cc455efc53f1f6548d1af490534892b7a639748948fc738e6a", +"b75bd05179c7b969fc6cd830579cef10f4bf36a3a72433294a1c942c5f4af317", +"6148e2d844e21c546354d04255e9c2bb7f87aaccf3113709f09212c5f3277a9b", +"a78c2c969af82bc38a9c8fbe8ad9ee682d9c8c76b1a5d0f167e8f90975c3e0c8", +"fe68cea63541aa53ce020de7398968566dfe8f3725663a564cac89490247ed49", +"a94328bcaff3ed69de88cb6347b6933370d16455af591e4a46e7e0d7c2a485c8", +"3e2f036d9c513d07af5468ad7672e42a27432a54eb1242e498d1a1be1f488c4d", +"b1b0a0916c431f46a062ee2a757d93454c82ff1f22e00bf83ba1a9abd09570ab", +"32caff85195f843b19e79669e63bf3f4ad97b23b3a48b65b3781c0d193a3fcae", +"8eefa62c2f86b4c73bd68cf5cb178e09d15cbf21399ac5aea234d2b616e9ae9d", +"50cca6f943812d2852752b7e021f251d50d410878b54c18a81ad71bcaa439035", +"dd15a3530dc4de4c50ebb22010824c41337403efec713f1187695c72934fb94c", +"aa01d13483db4c065b7a619b813f9eae1cb60c19bf0fc0ed3c36444a07257bd0", +"9654c004e02e492c30904a820154e239886edbf4d66bc5d372060809ef4c9111", +"e1684aeadc8aed904612091e36a948369b1ba8eddb1b1f0fbbddbe3a72a5b87f", +"e90b3efa35dce75097b85d897d4bb80342b74cf820906b6edbf59c934d319ccf", +"841b1ef7139a08ee064e626f9f946154b0a80096c3417abe49ced448217fcf4c", +"fa9c3adc4f0bbe263db1565d200f776e5da900ead0f1914e0ecbf8b313d268e9", +"dcb5cd7bb4a8849288f8b43dea7bf20d7b7e2b096b630964f9ca5bf808531edd", +"427efc9169b13a348d98d34e40303546a3e7352d725c06b9356882a26773b1a3", +"9aa288a4c66884bec28af54056921660ebde9debd848ef03902363ed534c96d4", +"79a37a33816cfba8b2ab936c440a69efdd555414e3eed7f43a2f12dab5e8807b", +"00ee7b0d5c47fa12142b37c1cf3a6a847fdd277c23d2f40fea45c1d5166e0084", +"4a4de89b894737cd99fe857c3253da54773c093b67381a5cd63723543e888a54", +"45aa096282002911a77c9e1dba16dade905960e6386e681c2f8d7966f4e475b1", +"badac6b72f6a4599d4f6c06af60f99884c71be6bed90f5ddb24f339bc799fb4b", +"f714fdf911e330128463abe9684b8c02f492826db185afecef1e9070410efeec", +"60ce5c2246a0808b32dd4eab598435e1c5bd122cc3e9fab7b0542871ac2a35c7", +"ca3f372788f7eaceda2429be20dd4f9c8c148f0d103bb7ba8576f8138104f18c", +"c4cf2554856778945254c47b5b2f6f6218b668b1942b13d20f4d54aab43ec054", +"f71e9b2c658264f7c6dfe938bbf9d2a025acc7ba4245eea2356e2995b1fd24d3", +"eae2c4b9da3b33b72b20d929a6342830bf54b541665e54c3a46024118e9e0e81", +"682095eadf8c068064ffc2777e7e9d936469debda32c997b301b79f9cd87cd54", +"372945354184bfbf3eb51e38d8fafde15a4bc11b88904334e7bad7c8229e6bb1", +"7ee7b95f4ae8b3e08aab5158be7fe8e71f79bcd3717594254b34fa1f3cd4611a", +"bd25c370dbc2e62b0580bb1eea9df6a812a66d6fff7045107173a6ac5e7c6f57", +"19c54e02e79e8628512fae334d6dbbac7e2e8b53848a68a06191f3769ede92ff", +"9f14837e4392582c3974613ed8e1acc7ed84b2ae3910ad27cb9542a3758df800", +"4e21a70acc8f11aa35f87733de2fbada29a2dd08e9011d34d92522fb8ad0e3d2", +"c3d4800aeb5eb7b00dd5e97247993461df84e6630cc3a89bdf2ca522f0ec07d1", +"6342f00659512c995c5b271236fbe8e8c86951bd94f533fa0237d2a3e606c4da", +"66a1b8d00aa8da714ae07a123a565f6226c44156a54ed04ffc6ee5ffe1f56e64", +"43c76a3d2a84cb7a10f6329a34261eb6794ac830e74bc8136b42ee05ee54efb1", +"f45cb3dd0fd2a31bb7b1d19baa9f4a043609debdc7c494edf73b9b56da77a642", +"56d1854ddbc8d9ecdf5d7e2f19228314f475ee110c38fbfe3fa0b72baa41ca14", +"b6d18ff342920bb492f810bb070a064d6031ec2c3d6fffecb6ca233c8a591e00", +"75aa577b08b3dc3a1777c9c74cbbb79b5bfd73caaff222a28a53ce4e76cbb41c", +"8bee2c65ad37240fab769ff3c9f56f94914e53c8d99087e1a805cc5ef39a44f3", +"0a418f1b991744b9e77ed957b8f809e11d19201d49a2a476816c13a22420ec4c", +"c5252f423aae35a7df6194c342b14480b0cf83c3f4d9134fe45098c2f74befd9", +"f26de15901fa07f464e3be824e36e63bdc587d34f04654ad6cd3f0a018889fca", +"2c724cd7e745016e6e4acccebdcc49464e13ec17ee23141c4fb2fe8004be2504", +"c3b76dabb8b8161b2848a4c313b559a2cd719b43732c3e0da00f345e571241e5", +"32074fa3b78ad30b7847e28ce1ffd6aecbd36415156cfe9f5fe5aa15f31c596e", +"82061ee410cab0e705cf38830db84ba965effc51a1e1bf43da6d39ff70ae94fb", +"6f43d35d53ae12c86681df65342315b643026e2085e41bf8b8cc67287150c375", +"cb7d4e00e9c6ba5ca1ef3b3464ce1ccf0468f7526fbda116106302525f929807", +"2564a702f3b709b000a7747ccfc6f6dcc58b638c57f29791cd01514fe91cc5f8", +"4457c130df49fb3cb1f8b99574b97b35208bd3d0d13b8d25d2b5884ed2cad13a", +"259d07628a06aee49007266630381867688fbe96c331adc1b285aa7995380815", +"855481a23310c2bccf2a6134367449d61bd2f1c8793f929516c4f68a6aaace7a", +"d50cc807305f886f712206c9a8a7e47a776a266a7367bc080fe8ce939fcfa2b8", +"984e44f2d80a93c0febf58d9ca396b5817151fc075f09333a3d387c981f75f2c", +"a29498d225fa4b13468ff4d6cf4ae0ea4adcbd95f07ce8a843a1dee10b632f3f", +"a2eb8a1c403a4440b2f578e9deb185b8e22cf4ec2a2a58441032b84b13aaab87", +"bb71b54ced62aa11f76e4f3edacb37a41300807506db840b98b740379f99cc71", +"a9104b630bac1929ad9ac2a73a17ed4beead1889341f307bff502f89b46c8501", +"fa737fa41e6e5ad02c536bd21afea4e21c061885a039e17237e08802ca5bf0bf", +"b508bac65989c98cd5ca664738ebd50b4fdaa06420f2c0c3b049a01a0856bd79", +"f1f4ce9c495cb3db6862230ad961edca8563bf85c245bd774d4d78b7de884641", +"7475258cb07b3e5fbab715aab27f383fc177154f4f0461790c57d97077a47547", +"d69877e50c4aa2360d723065716609f1e2698e45fc210438da8c325b65922735", +"8141668a92aad85f9f9f4b00e59914061df0f189b5b11fb35a15dc2708bb4596", +"8ece0bce3a95db74077d7861f7767770af5e5746c3af011e4eec7e3d2efe2be4", +"1a5f2435e8e31c4034f1d142e85d9f7d3be2a09ddf710e5ef1ad4e36c719d3c0", +"c40c24b39500901a330a025938552d70def4890fffe9bd315046bd33a2ece24d", +"9be416fd7b5a20dfe115930b759e9a69a5dd6299b42f3eab0f3f70ee6ac5331f", +"b86809b9f01a70ec1e94bddae5ddc6db160dbd03661b2914655afa98bb28d7b1", +"b48cefc7ff96f9bf4e6db66fd93d277d4ee6f4199d7f996c25a56b0b0bb2c352", +"fd8aaa5bd590e3648350cee9475dd7306f25ba03fd9c1ed6dd61cb9eccd2ca4e", +"53dd23581ff2ac3473a517c2995ad41cb214e105ebc99a122bda032051bb54c6", +"df1d89401c7320e6d62fa5bc4a516e8df21b604b10a7eedefbee9ada66b20c5d", +"5fb52d5d1316eb09e2a3f7e6e3620e5e78450f3107684166ef7ee36459ebc09c", +"2bc58b1c76e6572fa6cd68c3a448128ce90f7442d563f02e9f9db3b58d01d810", +"95b58bd89109b2bd9989c9956a8e3f5822003126bae800d9f77455c4009db5ba", +"91b9a02134bc834b96ebfa333a0bf27ac6372ac56682b5e77bf8577abe0eea78", +"73e8db145c6b2a2a11444e835a4144416c0361342dec4c7c1bc17f85223aec93", +"7e6f68b033a19fd6c2999598f9791e24014f9870c626901d254da50660fda578", +"05df2f741ed2b59af7b282946af0bae7c472e874393959778b22f6b21bf8d43d", +"ddab79c39591912bc4baf2fa950ccbecdf6a72d1a840ce244a050bf56598a4c8", +"02d7e6551ab805d301bde5c9d8cd51d791a73effab6a8b2460e4d9e9e81fdee9", +"2a40b26b3a69de566720e8e5134aaa8cf767b14d66fa8e27faca971984a6a545", +"cb604c517064f096976972384dc89948a5c850bca9b04866a443e10171d5965d", +"c7a7721cf4b6deb311e9b2e4bc2ebf07ef05d818149fd373bfb785fa47088823", +"12ffbeb52b37f08bd8224a50e1cd2173286bf432832579861a5480bd662e349d", +"e999c2718f3e000c8a2669d0358ae4be974bc45bbabec528ec076742306cb31b", +"e3c0732167495b407aeaab7cd968cac73db3351421242c9eae717f4032dba411", +"ff771deda39152ddb76add14a8eb17564af6bf2765bb1298a69a062723608298", +"2c5b687e9f6ce2b5d53541ffdf6aa23d7f645c57dc553dbabd465471c1347689", +"582506d3ac795e1d72b1674e0ee54b45431ad6fac9b51c0c8c4c1893d923c5f0", +"063ab1cdc9123ed56b7e73cbee664d24ecb7fc710ad1e0bded6cc2db0d562055", +"fa977f7d37f533bd283e44268d020c6852433f091f5373dd33ae7dc0d4522e9a", +"5e4a8cc31d062b78a7ad9e017135574809b01c4dbbf30e4dbb467ddd43025618", +"8a0153a6a099bb8dbacd0300327cd2e6c89502c4bb76ccba2eb568dd56c155a6", +"b123d9d4aa6b384aed6c45e7738861a28a2eabdf4adb72ad1e408d8578bc9b81", +"dc09ba6dfa61fefeda72672d88390226bc6fa9e94ce6a6820230d96af897b7ec", +"b7602b27efd93fafecb53a806cd74d65fdfb8548b76d028339569a37aee012c0", +"a0e04f1086aac204d4ebdd5f985c12ed226cd0006323fd8143715f9324da58d1", +"4119a5b3e5ebc809b6a3680a280ae517b92fead02e4c07b7cec0d3385c87aee2", +"7b3211c08255a17230494a384a1381bb12a284af4bf03945877fec5b7fc24410", +"8d14be896cc1660c604525abaa9911630da87127cbb70f712432fcf2e056b4d8", +"b4678fefcc469583ed4ef58a5bd90ce86208b82803f3c45f2de3e0973d268835", +"482779b01ffd93b70c1f62e7905658ca1a6b02799f498b07cce423f7841aed75", +"ca57b69f837149751431765b8cd4ed94ec8f3730b802035764ecf3505b597409", +"123e6d19e6c0f575b148c469eb191f8b92618c13c94c4758aee35e042e37fa21", +"fabfcc9d5cb07af83eec986be9a4f8dd1345079708d24bd529f4f861feb2de04", +"e41335615dc17532477792bb63034f69d430d73dc39ff8da622d17f3bad0b96a", +"c6e486a3647853c8cbc957b8ee772a9e5df51cd2f411d4a3bbb3a675728eb069", +"2f0e39323be165a0972147140c7b822be17e5eb464a5e8558ac0e0ab01c48944", +"21c3a371f72f0057186082edb2ddd43566f7e908508ac3e85373c6d1966ed614", +"e9a73053c7d8cf7f8eb732e3da6a8dfd3cc211ea4dc00e0274b9dec6e3316605", +"c934a849294b527a83d726ab792f1299630242256c338fc2ce666e12ae18d82e", +"7617c61e2d7c85b03d41ceaaf568d49e2ab270f8f6f1b25ddb4af292026fa8f5", +"078d94b4c8706e12fe379e85242ce963380acfd678518e2d8ea73ee532d9bacc", +"5a2b2db3d2ed90458a41d2a0c5e4bd28ec67b6fa272b0e201cc8508dc3d4be87", +"f6488493aa7713ec6f915ebe80070d7a4dd17da9d162d72f53117cc4f230bd75", +"c34de246586459b8a33e82efe825fec5f75ac6cee50098e76abfd8161de827f2", +"2937e3dd80ce9942cdb65a70bcc9c03489404d1bd822b9d9c2950681898b5f10", +"d046ce8e9d2d96e3a0f02d0f74e51116b1884cc4e85ca24a83506cd49fa28d29", +"aad1cc72005d28969c5c5f92d7ed93e43ab02671c601576eebff361b29770278", +"3e86467846ea19970efad254ab3fc3cb8fd57e1f38759ed736f1cbea9314a878", +"97d2ccab1d55b1c2bcd70aa20c8ccb0d6450ff577178227fc640c8f7319cd437", +"e5276850a2559a0fd4eb37207e3c9325cfb20b84ebb28a2d6ad5ade43a2a77bd", +"f957ccc70ab232638964242c24cc6286ef75aa7fd0d4d348f46213d2fea0b88c", +"4b3713c23d5b38f8ae42e0682e81b1286828b0b48ad2e983ba5b928b47f937f4", +"4aea33b6f8fd1d4b5be08cdd54356274ea3185868ace51728af7ba8891211a82", +"f384f4e9274c6e15ee1fd6f96a00ae22bb7de0053df8fbd3fcf0457de480be96", +"2b9085b314023231adf4ba051274a20b9a4b5f64fd85251a7a329e386da1811b", +"4eb754ffaf9e177eef0ef26f82b7c2fdf8d7178c52682704bf3e7830071d3427", +"a1f3f8956346e2ba29e25bc5252c6dc0b2afa9ee17aa13ecd026abafedaf8696", +"080f1b10c1a55922037a4bda62f42c7ff2b5384bc9b5d6ebf0c7cd93e70489a2", +"ee789e749e9af71b1a57a78d9066085d1da1eedbcfd221100963f10cc8452cd6", +"0ef262ca2a56b88d179c93a21383fee4e135bd7bc6680e5c2356ff8e38301037", +"e401b54ca287ce5c4c4579a91220e79816cff07cdf18b388fde84449c3be8a51", +"dbe30fc296ccd75fbf5bc7157fcfe23d839c0cea83c4883ab9601677e0a9a738" ] diff --git a/wallets/get_wc_ids.sh b/wallets/get_wc_ids.sh new file mode 100755 index 0000000..06e529b --- /dev/null +++ b/wallets/get_wc_ids.sh @@ -0,0 +1,34 @@ +#/bin/sh + +# This script gets the wallet ids from the web3modal api + +json_file_path="../cartera/src/main/res/raw/wc_modal_ids.json" + +# create a tmp file path +tmp_file_path="/tmp/wc_ids.json" + +all_wc_ids = "" + +# loop through the pages +for i in {1..5} +do + curl -H "Host: api.web3modal.org" -H "accept: */*" -H "content-type: application/json" -H "x-sdk-version: swift-1.20.3" -H "accept-language: en-US,en;q=0.9" \ + -H "x-project-id: 47559b2ec96c09aed9ff2cb54a31ab0e" -H "user-agent: CarteraExample/1 CFNetwork/1568.100.1 Darwin/24.1.0" -H "x-sdk-type: wcm" -H "referer: dYdX" \ + "https://api.web3modal.org/getWallets?entries=100&page=$i&platform=android" > $tmp_file_path + + # get the wallet ids + wc_ids=$(jq '.data[].id' $tmp_file_path) + all_wc_ids="$all_wc_ids $wc_ids" +done + +# replace spaces with commas +all_wc_ids=$(echo $all_wc_ids | tr ' ' ',') + +# insert a newline after each comma +all_wc_ids=$(echo $all_wc_ids | sed 's/,/,\n/g') + + +echo "[ $all_wc_ids ]" > $json_file_path + +# remove the tmp file +rm $tmp_file_path \ No newline at end of file From f5499947d6e89293e76314ff895d8cfbd4dfcfcb Mon Sep 17 00:00:00 2001 From: Rui Date: Thu, 19 Dec 2024 16:20:42 -0800 Subject: [PATCH 2/3] Lint --- .../exchange/dydx/cartera/CarteraConfig.kt | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/cartera/src/main/java/exchange/dydx/cartera/CarteraConfig.kt b/cartera/src/main/java/exchange/dydx/cartera/CarteraConfig.kt index abd7769..3105fd6 100644 --- a/cartera/src/main/java/exchange/dydx/cartera/CarteraConfig.kt +++ b/cartera/src/main/java/exchange/dydx/cartera/CarteraConfig.kt @@ -193,24 +193,24 @@ data class WalletConnectModalConfig( companion object { val default: WalletConnectModalConfig = WalletConnectModalConfig( walletIds = listOf( - "c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96", // Metamask - "4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0", // Trust - "971e689d0a5be527bac79629b4ee9b925e82208e5168b733496a09c0faed0709", // OKX - "c03dfee351b6fcc421b4494ea33b9d4b92a984f87aa76d1663bb28705e95034a", // Uniswap - "1ae92b26df02f0abca6304df07debccd18262fdf5fe82daa81593582dac9a369", // Rainbow - "ecc4036f814562b41a5268adc86270fba1365471402006302e70169465b7ac18", // Zerion - "c286eebc742a537cd1d6818363e9dc53b21759a1e8e5d9b263d0c03ec7703576", // 1inch - "ef333840daf915aafdc4a004525502d6d49d77bd9c65e0642dbaefb3c2893bef", // imToken - "38f5d18bd8522c244bdd70cb4a68e0e718865155811c043f052fb9f1c51de662", // Bitget - "0b415a746fb9ee99cce155c2ceca0c6f6061b1dbca2d722b3ba16381d0562150", // Safepal - "15c8b91ade1a4e58f3ce4e7a0dd7f42b47db0c8df7e0d84f63eb39bcb96c4e0f", // Bybit - "19177a98252e07ddfc9af2083ba8e07ef627cb6103467ffebb3f8f4205fd7927", // Ledger Live - "344d0e58b139eb1b6da0c29ea71d52a8eace8b57897c6098cb9b46012665c193", // Timeless X - "225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f", // Safe - "f2436c67184f158d1beda5df53298ee84abfc367581e4505134b5bcf5f46697d", // Crypto.com - "18450873727504ae9315a084fa7624b5297d2fe5880f0982979c17345a138277", // Kraken - "541d5dcd4ede02f3afaf75bf8e3e4c4f1fb09edb5fa6c4377ebf31c2785d9adf" // Ronin - ) + "c57ca95b47569778a828d19178114f4db188b89b763c899ba0be274e97267d96", // Metamask + "4622a2b2d6af1c9844944291e5e7351a6aa24cd7b23099efac1b2fd875da31a0", // Trust + "971e689d0a5be527bac79629b4ee9b925e82208e5168b733496a09c0faed0709", // OKX + "c03dfee351b6fcc421b4494ea33b9d4b92a984f87aa76d1663bb28705e95034a", // Uniswap + "1ae92b26df02f0abca6304df07debccd18262fdf5fe82daa81593582dac9a369", // Rainbow + "ecc4036f814562b41a5268adc86270fba1365471402006302e70169465b7ac18", // Zerion + "c286eebc742a537cd1d6818363e9dc53b21759a1e8e5d9b263d0c03ec7703576", // 1inch + "ef333840daf915aafdc4a004525502d6d49d77bd9c65e0642dbaefb3c2893bef", // imToken + "38f5d18bd8522c244bdd70cb4a68e0e718865155811c043f052fb9f1c51de662", // Bitget + "0b415a746fb9ee99cce155c2ceca0c6f6061b1dbca2d722b3ba16381d0562150", // Safepal + "15c8b91ade1a4e58f3ce4e7a0dd7f42b47db0c8df7e0d84f63eb39bcb96c4e0f", // Bybit + "19177a98252e07ddfc9af2083ba8e07ef627cb6103467ffebb3f8f4205fd7927", // Ledger Live + "344d0e58b139eb1b6da0c29ea71d52a8eace8b57897c6098cb9b46012665c193", // Timeless X + "225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f", // Safe + "f2436c67184f158d1beda5df53298ee84abfc367581e4505134b5bcf5f46697d", // Crypto.com + "18450873727504ae9315a084fa7624b5297d2fe5880f0982979c17345a138277", // Kraken + "541d5dcd4ede02f3afaf75bf8e3e4c4f1fb09edb5fa6c4377ebf31c2785d9adf", // Ronin + ), ) } } From a9ff6ba4ebea254eb72be057f170723e17d9a9e3 Mon Sep 17 00:00:00 2001 From: Rui Date: Thu, 19 Dec 2024 16:43:55 -0800 Subject: [PATCH 3/3] Bump version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 7456470..e40d49a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,6 +26,6 @@ android.nonTransitiveRClass=true LIBRARY_GROUP=dydxprotocol LIBRARY_ARTIFACT_ID=cartera-android -LIBRARY_VERSION_NAME=0.1.17 +LIBRARY_VERSION_NAME=0.1.18 android.enableR8.fullMode = false \ No newline at end of file