From b6079a87c6241953b924df33be957e7996cba8b2 Mon Sep 17 00:00:00 2001 From: Kwonhyukjoon Date: Thu, 9 Jan 2025 16:12:52 +0900 Subject: [PATCH 1/7] [APP-1075] init gno-testnet main token send --- .../io/cosmostaion/chain/BaseChain.kt | 6 +- .../chain/testnetClass/ChainGnoTestnet.kt | 31 + .../io/cosmostaion/common/Extensions.kt | 14 + .../cosmostaion/data/model/req/SignPayload.kt | 32 + .../data/repository/tx/TxRepository.kt | 7 +- .../data/repository/tx/TxRepositoryImpl.kt | 49 +- .../repository/wallet/WalletRepository.kt | 2 + .../repository/wallet/WalletRepositoryImpl.kt | 44 +- .../data/viewmodel/ApplicationViewModel.kt | 112 +- .../data/viewmodel/tx/TxViewModel.kt | 16 + .../wannabit/io/cosmostaion/sign/Signer.kt | 72 +- .../ui/main/chain/cosmos/HistoryViewHolder.kt | 22 +- .../ui/tx/TransferTxResultActivity.kt | 66 +- .../ui/tx/genTx/CommonTransferFragment.kt | 78 +- .../res/drawable-hdpi/chain_gno_testnet.png | Bin 0 -> 7005 bytes .../res/drawable-mdpi/chain_gno_testnet.png | Bin 0 -> 3688 bytes .../res/drawable-xhdpi/chain_gno_testnet.png | Bin 0 -> 11051 bytes .../res/drawable-xxhdpi/chain_gno_testnet.png | Bin 0 -> 21198 bytes .../drawable-xxxhdpi/chain_gno_testnet.png | Bin 0 -> 34472 bytes .../src/main/java/com/gno/bank/BankProto.java | 1015 +++ proto/src/main/java/com/gno/vm/VmProto.java | 5666 +++++++++++++++++ proto/src/main/java/com/tm2/tx/TxProto.java | 3824 +++++++++++ 22 files changed, 10990 insertions(+), 66 deletions(-) create mode 100644 app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainGnoTestnet.kt create mode 100644 app/src/main/java/wannabit/io/cosmostaion/data/model/req/SignPayload.kt create mode 100644 app/src/main/res/drawable-hdpi/chain_gno_testnet.png create mode 100644 app/src/main/res/drawable-mdpi/chain_gno_testnet.png create mode 100644 app/src/main/res/drawable-xhdpi/chain_gno_testnet.png create mode 100644 app/src/main/res/drawable-xxhdpi/chain_gno_testnet.png create mode 100644 app/src/main/res/drawable-xxxhdpi/chain_gno_testnet.png create mode 100644 proto/src/main/java/com/gno/bank/BankProto.java create mode 100644 proto/src/main/java/com/gno/vm/VmProto.java create mode 100644 proto/src/main/java/com/tm2/tx/TxProto.java diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/BaseChain.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/BaseChain.kt index db67e514c..7976f4cfe 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/chain/BaseChain.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/BaseChain.kt @@ -43,6 +43,7 @@ import wannabit.io.cosmostaion.chain.cosmosClass.ChainFetchAi60Old import wannabit.io.cosmostaion.chain.cosmosClass.ChainFetchAi60Secp import wannabit.io.cosmostaion.chain.cosmosClass.ChainFinschia import wannabit.io.cosmostaion.chain.cosmosClass.ChainFirma +import wannabit.io.cosmostaion.chain.testnetClass.ChainGnoTestnet import wannabit.io.cosmostaion.chain.cosmosClass.ChainGovgen import wannabit.io.cosmostaion.chain.cosmosClass.ChainGravityBridge import wannabit.io.cosmostaion.chain.cosmosClass.ChainInjective @@ -604,8 +605,8 @@ fun allChains(): MutableList { chains.add(ChainCoreum()) chains.add(ChainCronos()) chains.add(ChainCryptoorg()) - chains.add(ChainDHealth()) chains.add(ChainDesmos()) + chains.add(ChainDHealth()) chains.add(ChainDoravota()) chains.add(ChainDungeon()) chains.add(ChainDydx()) @@ -704,6 +705,7 @@ fun allChains(): MutableList { chains.add(ChainBitcoin44Testnet()) chains.add(ChainBitcoin49Testnet()) chains.add(ChainBitcoin84Testnet()) + chains.add(ChainGnoTestnet()) chains.add(ChainInitiaTestnet()) chains.add(ChainMantraTestnet()) chains.add(ChainNeutronTestnet()) @@ -745,6 +747,6 @@ val EVM_BASE_FEE = BigDecimal("588000000000000") enum class PubKeyType { ETH_KECCAK256, COSMOS_SECP256K1, BERA_SECP256K1, SUI_ED25519, BTC_LEGACY, BTC_NESTED_SEGWIT, BTC_NATIVE_SEGWIT, NONE } -enum class CosmosEndPointType { UNKNOWN, USE_GRPC, USE_LCD } +enum class CosmosEndPointType { UNKNOWN, USE_GRPC, USE_LCD, USE_RPC } enum class FetchState { IDLE, BUSY, SUCCESS, FAIL } \ No newline at end of file diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainGnoTestnet.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainGnoTestnet.kt new file mode 100644 index 000000000..d5af85de7 --- /dev/null +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainGnoTestnet.kt @@ -0,0 +1,31 @@ +package wannabit.io.cosmostaion.chain.testnetClass + +import android.os.Parcelable +import com.google.common.collect.ImmutableList +import kotlinx.parcelize.Parcelize +import org.bitcoinj.crypto.ChildNumber +import wannabit.io.cosmostaion.R +import wannabit.io.cosmostaion.chain.AccountKeyType +import wannabit.io.cosmostaion.chain.BaseChain +import wannabit.io.cosmostaion.chain.CosmosEndPointType +import wannabit.io.cosmostaion.chain.PubKeyType + +@Parcelize +class ChainGnoTestnet : BaseChain(), Parcelable { + + override var name: String = "Gno Testnet" + override var tag: String = "gno118_T" + override var logo: Int = R.drawable.chain_gno_testnet + override var isTestnet: Boolean = true + override var apiName: String = "gno-testnet" + + override var accountKeyType = AccountKeyType(PubKeyType.COSMOS_SECP256K1, "m/44'/118'/0'/0/X") + override var setParentPath: List = ImmutableList.of( + ChildNumber(44, true), ChildNumber(118, true), ChildNumber.ZERO_HARDENED, ChildNumber.ZERO + ) + + override var cosmosEndPointType: CosmosEndPointType? = CosmosEndPointType.USE_RPC + override var stakeDenom: String = "ugnot" + override var accountPrefix: String = "g" + override var mainUrl: String = "https://rpc.test5.gno.land" +} \ No newline at end of file diff --git a/app/src/main/java/wannabit/io/cosmostaion/common/Extensions.kt b/app/src/main/java/wannabit/io/cosmostaion/common/Extensions.kt index 8ae1b508d..92b619328 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/common/Extensions.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/common/Extensions.kt @@ -893,3 +893,17 @@ fun com.initia.mstaking.v1.StakingProto.Validator.isActiveValidator(chain: Chain } } +fun String.regexWithNumberAndChar(): Pair { + val regex = Regex("[0-9]*\\.?[0-9]*") + val matchResult = regex.find(this) + return if (matchResult != null) { + val amount = matchResult.value + val denomIndex = amount.length + val denom = this.substring(denomIndex) + Pair(denom, amount) + + } else { + Pair("", "") + } +} + diff --git a/app/src/main/java/wannabit/io/cosmostaion/data/model/req/SignPayload.kt b/app/src/main/java/wannabit/io/cosmostaion/data/model/req/SignPayload.kt new file mode 100644 index 000000000..6a734b766 --- /dev/null +++ b/app/src/main/java/wannabit/io/cosmostaion/data/model/req/SignPayload.kt @@ -0,0 +1,32 @@ +package wannabit.io.cosmostaion.data.model.req + +import com.google.gson.GsonBuilder +import com.google.gson.annotations.SerializedName + + +data class SignPayload( + val chain_id: String, + val account_number: String, + val sequence: String, + val fee: Fee, + val msgs: MutableList?, + val memo: String? = "" +) { + fun toJson(): String { + val gson = GsonBuilder().setPrettyPrinting().create() + return gson.toJson(this) + } +} + +data class Fee( + val gas_wanted: String, + val gas_fee: String +) + +data class Msgs( + @SerializedName("@type") + val type: String, + val from_address: String, + val to_address: String, + val amount: String +) diff --git a/app/src/main/java/wannabit/io/cosmostaion/data/repository/tx/TxRepository.kt b/app/src/main/java/wannabit/io/cosmostaion/data/repository/tx/TxRepository.kt index 0fb115f5c..f21bbf6a1 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/data/repository/tx/TxRepository.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/data/repository/tx/TxRepository.kt @@ -2,6 +2,7 @@ package wannabit.io.cosmostaion.data.repository.tx import com.cosmos.base.abci.v1beta1.AbciProto import com.cosmos.tx.v1beta1.TxProto.Fee +import com.gno.bank.BankProto.MsgSend import com.google.gson.JsonObject import com.ibc.applications.transfer.v1.TxProto.MsgTransfer import io.grpc.ManagedChannel @@ -9,12 +10,12 @@ import org.web3j.protocol.Web3j import wannabit.io.cosmostaion.chain.BaseChain import wannabit.io.cosmostaion.chain.fetcher.SuiFetcher import wannabit.io.cosmostaion.chain.majorClass.ChainBitCoin84 -import wannabit.io.cosmostaion.sign.BitCoinJS import wannabit.io.cosmostaion.data.model.req.LFee import wannabit.io.cosmostaion.data.model.req.Msg import wannabit.io.cosmostaion.data.model.res.LegacyRes import wannabit.io.cosmostaion.data.model.res.NetworkResult import wannabit.io.cosmostaion.data.model.res.Token +import wannabit.io.cosmostaion.sign.BitCoinJS import wannabit.io.cosmostaion.ui.tx.genTx.SendAssetType interface TxRepository { @@ -116,6 +117,10 @@ interface TxRepository { selectedChain: BaseChain ): String + suspend fun broadcastRpcTx( + msgSend: MsgSend, fee: Fee?, memo: String, selectedChain: BaseChain + ): AbciProto.TxResponse? + suspend fun broadcastOktTx( msgs: MutableList, fee: LFee, memo: String, selectedChain: BaseChain ): LegacyRes? diff --git a/app/src/main/java/wannabit/io/cosmostaion/data/repository/tx/TxRepositoryImpl.kt b/app/src/main/java/wannabit/io/cosmostaion/data/repository/tx/TxRepositoryImpl.kt index 3634dd750..215cde9f4 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/data/repository/tx/TxRepositoryImpl.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/data/repository/tx/TxRepositoryImpl.kt @@ -9,6 +9,7 @@ import com.cosmos.tx.v1beta1.ServiceProto import com.cosmos.tx.v1beta1.ServiceProto.BroadcastMode import com.cosmos.tx.v1beta1.TxProto.Fee import com.fasterxml.jackson.databind.ObjectMapper +import com.gno.bank.BankProto.MsgSend import com.google.gson.Gson import com.google.gson.JsonObject import com.google.protobuf.ByteString @@ -49,6 +50,7 @@ import wannabit.io.cosmostaion.chain.majorClass.SUI_MAIN_DENOM import wannabit.io.cosmostaion.common.BaseConstant.ICNS_OSMOSIS_ADDRESS import wannabit.io.cosmostaion.common.BaseConstant.NS_ARCHWAY_ADDRESS import wannabit.io.cosmostaion.common.BaseConstant.NS_STARGZE_ADDRESS +import wannabit.io.cosmostaion.common.formatJsonString import wannabit.io.cosmostaion.common.jsonRpcResponse import wannabit.io.cosmostaion.common.percentile import wannabit.io.cosmostaion.common.safeApiCall @@ -146,7 +148,25 @@ class TxRepositoryImpl : TxRepository { override suspend fun auth( managedChannel: ManagedChannel?, chain: BaseChain ) { - return if (chain.cosmosFetcher()?.endPointType(chain) == CosmosEndPointType.USE_GRPC) { + return if (chain.cosmosFetcher()?.endPointType(chain) == CosmosEndPointType.USE_RPC) { + val authRequest = JsonRpcRequest( + method = "abci_query", + params = listOf("auth/accounts/${chain.address}", "", "0", true) + ) + val authResponse = jsonRpcResponse(chain.mainUrl, authRequest) + val jsonResponse = Gson().fromJson( + authResponse.body?.string(), JsonObject::class.java + ) + val data = + jsonResponse["result"].asJsonObject["response"].asJsonObject["ResponseBase"].asJsonObject["Data"].asString + val decodeData = formatJsonString(String(Base64.decode(data))) + val dataJson = Gson().fromJson(decodeData, JsonObject::class.java) + val accountData = dataJson["BaseAccount"].asJsonObject + chain.cosmosFetcher()?.cosmosAccountNumber = + accountData["account_number"].asString.toLong() + chain.cosmosFetcher()?.cosmosSequence = accountData["sequence"].asString.toLong() + + } else if (chain.cosmosFetcher()?.endPointType(chain) == CosmosEndPointType.USE_GRPC) { val stub = QueryGrpc.newBlockingStub(managedChannel) .withDeadlineAfter(duration, TimeUnit.SECONDS) val request = QueryAccountRequest.newBuilder().setAddress(chain.address).build() @@ -1326,6 +1346,30 @@ class TxRepositoryImpl : TxRepository { } } + override suspend fun broadcastRpcTx( + msgSend: MsgSend, fee: Fee?, memo: String, selectedChain: BaseChain + ): TxResponse? { + return try { + val broadcastTx = Signer.signRpcBroadcastTx(msgSend, fee, memo, selectedChain) + val txByte = Base64.toBase64String(broadcastTx.toByteArray()) + val broadcastRequest = JsonRpcRequest( + method = "broadcast_tx_async", params = listOf(txByte) + ) + val broadcastResponse = jsonRpcResponse(selectedChain.mainUrl, broadcastRequest) + val broadcastJsonObject = Gson().fromJson( + broadcastResponse.body?.string(), JsonObject::class.java + ) + val result = broadcastJsonObject["result"].asJsonObject + return if (result["error"].isJsonNull) { + TxResponse.newBuilder().setCode(0).setTxhash(result["hash"].asString).build() + } else { + TxResponse.newBuilder().setCode(-1).setTxhash(result["hash"].asString).build() + } + } catch (e: Exception) { + null + } + } + override suspend fun broadcastOktTx( msgs: MutableList, fee: LFee, memo: String, selectedChain: BaseChain ): LegacyRes? { @@ -1910,8 +1954,7 @@ class TxRepositoryImpl : TxRepository { val sendRawTransactionRequest = JsonRpcRequest( method = "sendrawtransaction", params = listOf(txHex) ) - val sendRawTransactionResponse = - jsonRpcResponse(chain.mainUrl, sendRawTransactionRequest) + val sendRawTransactionResponse = jsonRpcResponse(chain.mainUrl, sendRawTransactionRequest) val sendRawTransactionJsonObject = Gson().fromJson( sendRawTransactionResponse.body?.string(), JsonObject::class.java ) diff --git a/app/src/main/java/wannabit/io/cosmostaion/data/repository/wallet/WalletRepository.kt b/app/src/main/java/wannabit/io/cosmostaion/data/repository/wallet/WalletRepository.kt index affa99261..4cda816d1 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/data/repository/wallet/WalletRepository.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/data/repository/wallet/WalletRepository.kt @@ -182,4 +182,6 @@ interface WalletRepository { ): NetworkResult> suspend fun bitBalance(chain: ChainBitCoin84): NetworkResult + + suspend fun rpcAuth(chain: BaseChain): NetworkResult } \ No newline at end of file diff --git a/app/src/main/java/wannabit/io/cosmostaion/data/repository/wallet/WalletRepositoryImpl.kt b/app/src/main/java/wannabit/io/cosmostaion/data/repository/wallet/WalletRepositoryImpl.kt index 4afc68954..d042075f8 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/data/repository/wallet/WalletRepositoryImpl.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/data/repository/wallet/WalletRepositoryImpl.kt @@ -55,7 +55,6 @@ import wannabit.io.cosmostaion.chain.majorClass.ChainSui import wannabit.io.cosmostaion.chain.testnetClass.ChainInitiaTestnet import wannabit.io.cosmostaion.common.jsonRpcResponse import wannabit.io.cosmostaion.common.safeApiCall -import wannabit.io.cosmostaion.data.api.RetrofitInstance.baseApi import wannabit.io.cosmostaion.data.api.RetrofitInstance.bitApi import wannabit.io.cosmostaion.data.api.RetrofitInstance.ecoApi import wannabit.io.cosmostaion.data.api.RetrofitInstance.lcdApi @@ -306,9 +305,11 @@ class WalletRepositoryImpl : WalletRepository { return if (chain.cosmosFetcher?.endPointType(chain) == CosmosEndPointType.USE_GRPC) { channel?.let { managedChannel -> val pageRequest = PaginationProto.PageRequest.newBuilder().setLimit(500).build() - val stub = newBlockingStub(managedChannel).withDeadlineAfter(duration, TimeUnit.SECONDS) - val request = com.cosmos.staking.v1beta1.QueryProto.QueryValidatorsRequest.newBuilder() - .setPagination(pageRequest).setStatus("BOND_STATUS_UNBONDED").build() + val stub = + newBlockingStub(managedChannel).withDeadlineAfter(duration, TimeUnit.SECONDS) + val request = + com.cosmos.staking.v1beta1.QueryProto.QueryValidatorsRequest.newBuilder() + .setPagination(pageRequest).setStatus("BOND_STATUS_UNBONDED").build() safeApiCall(Dispatchers.IO) { stub.validators(request).validatorsList } @@ -333,9 +334,11 @@ class WalletRepositoryImpl : WalletRepository { return if (chain.cosmosFetcher?.endPointType(chain) == CosmosEndPointType.USE_GRPC) { channel?.let { managedChannel -> val pageRequest = PaginationProto.PageRequest.newBuilder().setLimit(500).build() - val stub = newBlockingStub(managedChannel).withDeadlineAfter(duration, TimeUnit.SECONDS) - val request = com.cosmos.staking.v1beta1.QueryProto.QueryValidatorsRequest.newBuilder() - .setPagination(pageRequest).setStatus("BOND_STATUS_UNBONDING").build() + val stub = + newBlockingStub(managedChannel).withDeadlineAfter(duration, TimeUnit.SECONDS) + val request = + com.cosmos.staking.v1beta1.QueryProto.QueryValidatorsRequest.newBuilder() + .setPagination(pageRequest).setStatus("BOND_STATUS_UNBONDING").build() safeApiCall(Dispatchers.IO) { stub.validators(request).validatorsList } @@ -525,8 +528,7 @@ class WalletRepositoryImpl : WalletRepository { } override suspend fun initiaBondedValidator( - channel: ManagedChannel?, - chain: ChainInitiaTestnet + channel: ManagedChannel?, chain: ChainInitiaTestnet ): NetworkResult> { return if (chain.initiaFetcher()?.endPointType(chain) == CosmosEndPointType.USE_GRPC) { val pageRequest = PaginationProto.PageRequest.newBuilder().setLimit(500).build() @@ -540,14 +542,14 @@ class WalletRepositoryImpl : WalletRepository { } else { safeApiCall(Dispatchers.IO) { - lcdApi(chain).lcdInitiaBondedValidatorInfo().initiaValidators(com.initia.mstaking.v1.StakingProto.BondStatus.BOND_STATUS_BONDED) + lcdApi(chain).lcdInitiaBondedValidatorInfo() + .initiaValidators(com.initia.mstaking.v1.StakingProto.BondStatus.BOND_STATUS_BONDED) } } } override suspend fun initiaUnBondedValidator( - channel: ManagedChannel?, - chain: ChainInitiaTestnet + channel: ManagedChannel?, chain: ChainInitiaTestnet ): NetworkResult> { return if (chain.initiaFetcher()?.endPointType(chain) == CosmosEndPointType.USE_GRPC) { val pageRequest = PaginationProto.PageRequest.newBuilder().setLimit(500).build() @@ -560,14 +562,14 @@ class WalletRepositoryImpl : WalletRepository { } } else { safeApiCall(Dispatchers.IO) { - lcdApi(chain).lcdInitiaUnBondedValidatorInfo().initiaValidators(com.initia.mstaking.v1.StakingProto.BondStatus.BOND_STATUS_UNBONDED) + lcdApi(chain).lcdInitiaUnBondedValidatorInfo() + .initiaValidators(com.initia.mstaking.v1.StakingProto.BondStatus.BOND_STATUS_UNBONDED) } } } override suspend fun initiaUnBondingValidator( - channel: ManagedChannel?, - chain: ChainInitiaTestnet + channel: ManagedChannel?, chain: ChainInitiaTestnet ): NetworkResult> { return if (chain.initiaFetcher()?.endPointType(chain) == CosmosEndPointType.USE_GRPC) { val pageRequest = PaginationProto.PageRequest.newBuilder().setLimit(500).build() @@ -580,7 +582,8 @@ class WalletRepositoryImpl : WalletRepository { } } else { safeApiCall(Dispatchers.IO) { - lcdApi(chain).lcdInitiaUnBondingValidatorInfo().initiaValidators(com.initia.mstaking.v1.StakingProto.BondStatus.BOND_STATUS_UNBONDING) + lcdApi(chain).lcdInitiaUnBondingValidatorInfo() + .initiaValidators(com.initia.mstaking.v1.StakingProto.BondStatus.BOND_STATUS_UNBONDING) } } } @@ -886,4 +889,13 @@ class WalletRepositoryImpl : WalletRepository { bitApi(chain).bitBalance(chain.mainAddress) } } + + override suspend fun rpcAuth(chain: BaseChain): NetworkResult { + val authRequest = JsonRpcRequest( + method = "abci_query", params = listOf("auth/accounts/${chain.address}", "", "0", false) + ) + return safeApiCall(Dispatchers.IO) { + jsonRpcResponse(chain.mainUrl, authRequest) + } + } } \ No newline at end of file diff --git a/app/src/main/java/wannabit/io/cosmostaion/data/viewmodel/ApplicationViewModel.kt b/app/src/main/java/wannabit/io/cosmostaion/data/viewmodel/ApplicationViewModel.kt index 5b9566323..2d6d6211d 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/data/viewmodel/ApplicationViewModel.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/data/viewmodel/ApplicationViewModel.kt @@ -16,9 +16,11 @@ import kotlinx.coroutines.awaitAll import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.withContext +import org.bouncycastle.util.encoders.Base64 import org.web3j.protocol.Web3j import org.web3j.protocol.http.HttpService import wannabit.io.cosmostaion.chain.BaseChain +import wannabit.io.cosmostaion.chain.CosmosEndPointType import wannabit.io.cosmostaion.chain.FetchState import wannabit.io.cosmostaion.chain.cosmosClass.ChainNeutron import wannabit.io.cosmostaion.chain.cosmosClass.ChainOkt996Keccak @@ -31,6 +33,8 @@ import wannabit.io.cosmostaion.chain.testnetClass.ChainInitiaTestnet import wannabit.io.cosmostaion.common.BaseData import wannabit.io.cosmostaion.common.BaseUtils import wannabit.io.cosmostaion.common.ByteUtils +import wannabit.io.cosmostaion.common.formatJsonString +import wannabit.io.cosmostaion.common.regexWithNumberAndChar import wannabit.io.cosmostaion.data.model.res.NetworkResult import wannabit.io.cosmostaion.data.model.res.Token import wannabit.io.cosmostaion.data.model.res.VestingData @@ -226,7 +230,9 @@ class ApplicationViewModel( } else if (this is ChainSui) { loadSuiData(baseAccountId, this, isEdit) } else { - if (supportCosmos() && this !is ChainOktEvm) { + if (this.cosmosFetcher?.endPointType(this) == CosmosEndPointType.USE_RPC) { + loadRpcData(this, baseAccountId, isEdit) + } else if (supportCosmos() && this !is ChainOktEvm) { loadGrpcAuthData(this, baseAccountId, isEdit) } else { loadEvmChainData(this, baseAccountId, isEdit) @@ -1229,4 +1235,108 @@ class ApplicationViewModel( } } } + + private fun loadRpcData(chain: BaseChain, id: Long, isEdit: Boolean) = + CoroutineScope(Dispatchers.IO).launch { + chain.apply { + when (val response = walletRepository.rpcAuth(chain)) { + is NetworkResult.Success -> { + cosmosFetcher()?.let { fetcher -> + if (response.data.isSuccessful) { + val tempBalances: MutableList = mutableListOf() + val jsonResponse = Gson().fromJson( + response.data.body?.string(), JsonObject::class.java + ) + val data = + jsonResponse["result"].asJsonObject["response"].asJsonObject["ResponseBase"].asJsonObject["Data"].asString + val decodeData = formatJsonString(String(Base64.decode(data))) + + fetchState = FetchState.SUCCESS + if (decodeData == "null") { + tempBalances.add( + CoinProto.Coin.newBuilder().setDenom(stakeDenom) + .setAmount("0").build() + ) + fetcher.cosmosBalances = tempBalances + + val refAddress = RefAddress( + id, + tag, + address, + "", + fetcher.allAssetValue(true).toString(), + "0", + "0", + 0 + ) + BaseData.updateRefAddressesMain(refAddress) + coinCnt = 0 + + } else { + val dataJson = + Gson().fromJson(decodeData, JsonObject::class.java) + + val accountData = dataJson["BaseAccount"].asJsonObject + tempBalances.add(CoinProto.Coin.newBuilder() + .setDenom(accountData["coins"].asString.regexWithNumberAndChar().first) + .setAmount(accountData["coins"].asString.regexWithNumberAndChar().second) + .build()) + fetcher.cosmosBalances = tempBalances + fetcher.cosmosAccountNumber = + accountData["account_number"].asString.toLong() + fetcher.cosmosSequence = + accountData["sequence"].asString.toLong() + + val refAddress = RefAddress( + id, + tag, + address, + "", + fetcher.allAssetValue(true).toString(), + "0", + "0", + if (fetcher.cosmosBalances?.get(0)?.amount?.toBigDecimal() == BigDecimal.ZERO) 0 else 1 + ) + BaseData.updateRefAddressesMain(refAddress) + coinCnt = + if (fetcher.cosmosBalances?.get(0)?.amount?.toBigDecimal() == BigDecimal.ZERO) 0 else 1 + } + + withContext(Dispatchers.Main) { + if (isEdit) { + editFetchedResult.value = tag + } else { + fetchedResult.value = tag + txFetchedResult.value = tag + } + } + + } else { + fetchState = FetchState.FAIL + withContext(Dispatchers.Main) { + if (isEdit) { + editFetchedResult.value = tag + } else { + fetchedResult.value = tag + txFetchedResult.value = tag + } + } + } + } + } + + is NetworkResult.Error -> { + fetchState = FetchState.FAIL + withContext(Dispatchers.Main) { + if (isEdit) { + editFetchedResult.value = tag + } else { + fetchedResult.value = tag + txFetchedResult.value = tag + } + } + } + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/wannabit/io/cosmostaion/data/viewmodel/tx/TxViewModel.kt b/app/src/main/java/wannabit/io/cosmostaion/data/viewmodel/tx/TxViewModel.kt index f4d06ae80..9e2066f0e 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/data/viewmodel/tx/TxViewModel.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/data/viewmodel/tx/TxViewModel.kt @@ -7,6 +7,7 @@ import androidx.lifecycle.viewModelScope import com.cosmos.base.abci.v1beta1.AbciProto import com.cosmos.base.v1beta1.CoinProto import com.cosmos.tx.v1beta1.TxProto.Fee +import com.gno.bank.BankProto.MsgSend import com.google.gson.JsonObject import com.google.protobuf.Any import com.ibc.applications.transfer.v1.TxProto.MsgTransfer @@ -300,6 +301,21 @@ class TxViewModel(private val txRepository: TxRepository) : ViewModel() { val bitBroadcast = SingleLiveEvent() + fun rpcBroadcast( + msgSend: MsgSend, fee: Fee?, memo: String, selectedChain: BaseChain + ) = viewModelScope.launch(Dispatchers.IO) { + try { + txRepository.auth(null, selectedChain) + val response = txRepository.broadcastRpcTx(msgSend,fee, memo, selectedChain) + broadcast.postValue(response) + } catch (e: Exception) { + val errorResponse = txRepository.broadcastRpcTx( + msgSend, fee, memo, selectedChain + ) + errorMessage.postValue(errorResponse?.rawLog) + } + } + fun broadcast( managedChannel: ManagedChannel?, msgs: MutableList, diff --git a/app/src/main/java/wannabit/io/cosmostaion/sign/Signer.kt b/app/src/main/java/wannabit/io/cosmostaion/sign/Signer.kt index c303bf1eb..8add4e1fc 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/sign/Signer.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/sign/Signer.kt @@ -27,6 +27,9 @@ import com.cosmos.tx.v1beta1.TxProto.TxBody import com.cosmos.tx.v1beta1.TxProto.TxRaw import com.cosmwasm.wasm.v1.TxProto.MsgExecuteContract import com.ethermint.crypto.v1.ethsecp256k1.KeysProto +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.databind.SerializationFeature +import com.gno.bank.BankProto import com.google.protobuf.Any import com.google.protobuf.ByteString import com.ibc.applications.transfer.v1.TxProto.MsgTransfer @@ -44,6 +47,9 @@ import com.kava.incentive.v1beta1.TxProto.MsgClaimHardReward import com.kava.incentive.v1beta1.TxProto.MsgClaimSwapReward import com.kava.incentive.v1beta1.TxProto.MsgClaimUSDXMintingReward import com.kava.incentive.v1beta1.TxProto.Selection +import com.tm2.tx.TxProto.Tx +import com.tm2.tx.TxProto.TxFee +import com.tm2.tx.TxProto.TxSignature import net.i2p.crypto.eddsa.EdDSAEngine import net.i2p.crypto.eddsa.EdDSAPrivateKey import net.i2p.crypto.eddsa.spec.EdDSANamedCurveTable @@ -62,6 +68,7 @@ import org.web3j.crypto.Sign import wannabit.io.cosmostaion.chain.BaseChain import wannabit.io.cosmostaion.chain.PubKeyType import wannabit.io.cosmostaion.chain.cosmosClass.ChainAtomone +import wannabit.io.cosmostaion.chain.testnetClass.ChainGnoTestnet import wannabit.io.cosmostaion.chain.cosmosClass.ChainGovgen import wannabit.io.cosmostaion.chain.cosmosClass.ChainInjective import wannabit.io.cosmostaion.chain.cosmosClass.ChainOkt996Keccak @@ -87,6 +94,8 @@ import wannabit.io.cosmostaion.data.model.req.BroadcastReq import wannabit.io.cosmostaion.data.model.req.LCoin import wannabit.io.cosmostaion.data.model.req.LFee import wannabit.io.cosmostaion.data.model.req.Msg +import wannabit.io.cosmostaion.data.model.req.Msgs +import wannabit.io.cosmostaion.data.model.req.SignPayload import wannabit.io.cosmostaion.data.model.req.Signature import wannabit.io.cosmostaion.data.model.req.StdSignMsg import wannabit.io.cosmostaion.data.model.req.StdTx @@ -96,7 +105,9 @@ import java.math.BigDecimal import java.math.BigInteger import java.math.RoundingMode import java.nio.charset.Charset +import java.nio.charset.StandardCharsets import java.security.MessageDigest +import java.util.TreeMap import java.util.concurrent.TimeUnit object Signer { @@ -125,8 +136,15 @@ object Signer { fun thorchainSendMsg(msgSend: com.types.MsgSendProto.MsgSend?): MutableList { val msgAnys: MutableList = mutableListOf() msgAnys.add( - Any.newBuilder().setTypeUrl("/types.MsgSend") - .setValue(msgSend?.toByteString()).build() + Any.newBuilder().setTypeUrl("/types.MsgSend").setValue(msgSend?.toByteString()).build() + ) + return msgAnys + } + + fun gnoSendMsg(msgSend: com.gno.bank.BankProto.MsgSend?): MutableList { + val msgAnys: MutableList = mutableListOf() + msgAnys.add( + Any.newBuilder().setTypeUrl("/bank.MsgSend").setValue(msgSend?.toByteString()).build() ) return msgAnys } @@ -560,7 +578,13 @@ object Signer { private fun generateGrpcPubKeyFromPriv(chain: BaseChain?, privateKey: String): Any { val ecKey = ECKey.fromPrivate(BigInteger(privateKey, 16)) - return if (chain is ChainInjective) { + return if (chain is ChainGnoTestnet) { + val pubKey = com.tm2.tx.TxProto.PubKeySecp256k1.newBuilder() + .setKey(ByteString.copyFrom(ecKey.pubKey)).build() + Any.newBuilder().setTypeUrl("/tm.PubKeySecp256k1").setValue(pubKey.toByteString()) + .build() + + } else if (chain is ChainInjective) { val pubKey = com.injective.crypto.v1beta1.ethsecp256k1.KeysProto.PubKey.newBuilder() .setKey(ByteString.copyFrom(ecKey.pubKey)).build() Any.newBuilder().setTypeUrl("/injective.crypto.v1beta1.ethsecp256k1.PubKey") @@ -630,6 +654,45 @@ object Signer { return null } + fun signRpcBroadcastTx( + msgSend: BankProto.MsgSend, fee: Fee?, memo: String, chain: BaseChain + ): Tx { + val msgs: MutableList = mutableListOf() + val msg = Msgs( + "/bank.MsgSend", chain.address, msgSend.toAddress, msgSend.amount + ) + msgs.add(msg) + val txFee = TxFee.newBuilder().setGasWanted(fee?.gasLimit ?: 10000000L) + .setGasFee(fee?.getAmount(0)?.amount + fee?.getAmount(0)?.denom).build() + val pubKey = + generateGrpcPubKeyFromPriv(chain, ECKey.fromPrivate(chain.privateKey).privateKeyAsHex) + + val signPayload = SignPayload( + chain.chainIdCosmos, + chain.cosmosFetcher()?.cosmosAccountNumber.toString(), + chain.cosmosFetcher()?.cosmosSequence.toString(), + wannabit.io.cosmostaion.data.model.req.Fee(txFee.gasWanted.toString(), txFee.gasFee), + msgs + ) + + val mapper = ObjectMapper() + mapper.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true) + val signPayloadDoc = mapper.writeValueAsString( + mapper.readValue(signPayload.toJson(), TreeMap::class.java) + ) + + val sigByte = grpcByteSignature(chain, signPayloadDoc.toByteArray(StandardCharsets.UTF_8)) + val signatures = + TxSignature.newBuilder().setPubKey(pubKey).setSignature(ByteString.copyFrom(sigByte)) + .build() + + val builder = Tx.newBuilder() + gnoSendMsg(msgSend).forEach { msgAny -> + builder.addMessages(msgAny) + } + return builder.setFee(txFee).addSignatures(signatures).setMemo(memo).build() + } + private fun grpcTxBody( msgsAny: List?, memo: String, height: Long, chain: BaseChain? ): TxBody? { @@ -643,7 +706,8 @@ object Signer { private fun grpcSignerInfo( chain: BaseChain? ): SignerInfo { - val pubKey = generateGrpcPubKeyFromPriv(chain, ECKey.fromPrivate(chain?.privateKey).privateKeyAsHex) + val pubKey = + generateGrpcPubKeyFromPriv(chain, ECKey.fromPrivate(chain?.privateKey).privateKeyAsHex) val singleMode = ModeInfo.Single.newBuilder().setMode(SigningProto.SignMode.SIGN_MODE_DIRECT).build() val modeInfo = ModeInfo.newBuilder().setSingle(singleMode).build() diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/HistoryViewHolder.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/HistoryViewHolder.kt index 4f3bf8a73..9db6b8fae 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/HistoryViewHolder.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/HistoryViewHolder.kt @@ -3,6 +3,7 @@ package wannabit.io.cosmostaion.ui.main.chain.cosmos import android.content.Context import android.graphics.Color import android.graphics.PorterDuff +import android.util.Log import android.view.View import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView @@ -294,14 +295,21 @@ class HistoryViewHolder( txTime.text = dpTimeToMonth(historyGroup.second["txTime"].asString.toLong()) if (historyGroup.second["tokenAddress"].asString.isEmpty()) { - val amount = historyGroup.second["amount"].asString.toBigDecimal() - if (amount > BigDecimal.ZERO) { - txAmount.text = formatAmount( - historyGroup.second["amount"].asString, 18 - ) - txDenom.text = chain.coinSymbol.uppercase() - txDenom.setTextColor(Color.parseColor("#ffffff")) + if (historyGroup.second["amount"].asString.isNotEmpty()) { + val amount = historyGroup.second["amount"].asString.toBigDecimal() + if (amount > BigDecimal.ZERO) { + txAmount.text = formatAmount( + historyGroup.second["amount"].asString, 18 + ) + txDenom.text = chain.coinSymbol.uppercase() + txDenom.setTextColor(Color.parseColor("#ffffff")) + } else { + txAmount.text = "" + txDenom.text = "-" + txDenom.setTextColor(Color.parseColor("#ffffff")) + txCnt.visibility = View.GONE + } } else { txAmount.text = "" txDenom.text = "-" diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/TransferTxResultActivity.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/TransferTxResultActivity.kt index 3b9bdeb15..dc8d3c9e2 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/TransferTxResultActivity.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/TransferTxResultActivity.kt @@ -13,6 +13,7 @@ import com.cosmos.base.abci.v1beta1.AbciProto.TxResponse import com.cosmos.tx.v1beta1.ServiceGrpc import com.cosmos.tx.v1beta1.ServiceProto import com.cosmos.tx.v1beta1.ServiceProto.GetTxResponse +import com.google.gson.Gson import com.google.gson.JsonObject import com.google.gson.JsonParser import io.grpc.stub.StreamObserver @@ -29,9 +30,11 @@ import wannabit.io.cosmostaion.chain.majorClass.ChainBitCoin84 import wannabit.io.cosmostaion.common.BaseActivity import wannabit.io.cosmostaion.common.BaseData import wannabit.io.cosmostaion.common.historyToMintscan +import wannabit.io.cosmostaion.common.jsonRpcResponse import wannabit.io.cosmostaion.common.updateButtonView import wannabit.io.cosmostaion.common.visibleOrGone import wannabit.io.cosmostaion.data.api.RetrofitInstance +import wannabit.io.cosmostaion.data.model.req.JsonRpcRequest import wannabit.io.cosmostaion.data.repository.address.AddressRepositoryImpl import wannabit.io.cosmostaion.data.viewmodel.ApplicationViewModel import wannabit.io.cosmostaion.data.viewmodel.address.AddressBookViewModel @@ -114,8 +117,7 @@ class TransferTxResultActivity : BaseActivity() { toMemo = intent.getStringExtra("memo") ?: "" intent.getStringExtra("suiResult")?.let { intentData -> - suiResult = JsonParser.parseString(intentData).asJsonObject - ?: JsonObject() + suiResult = JsonParser.parseString(intentData).asJsonObject ?: JsonObject() } transferStyle = enumValues()[intent.getIntExtra("transferStyle", -1)] @@ -187,7 +189,7 @@ class TransferTxResultActivity : BaseActivity() { } } else { - if (isSuccess) { + if (isSuccess && txResponse?.txResponse?.code == 0) { loading.visibility = View.GONE successLayout.visibility = View.VISIBLE successHash.text = txHash @@ -248,7 +250,63 @@ class TransferTxResultActivity : BaseActivity() { private fun loadHistoryTx() { lifecycleScope.launch(Dispatchers.IO) { fromChain.apply { - if (cosmosFetcher?.endPointType(this) == CosmosEndPointType.USE_GRPC) { + if (cosmosFetcher?.endPointType(this) == CosmosEndPointType.USE_RPC) { + val txStatusRequest = JsonRpcRequest( + method = "tx", params = listOf(txHash) + ) + val txStatusResponse = jsonRpcResponse(mainUrl, txStatusRequest) + if (txStatusResponse.isSuccessful) { + val txStatusJsonObject = Gson().fromJson( + txStatusResponse.body?.string(), JsonObject::class.java + ) + + if (!txStatusJsonObject.has("error")) { + val txResult = + txStatusJsonObject["result"].asJsonObject["tx_result"].asJsonObject["ResponseBase"].asJsonObject + val txResultResponse = if (txResult["Error"].isJsonNull) { + TxResponse.newBuilder().setTxhash(txHash).setCode(0).setRawLog("") + .build() + + } else { + errorMsg = txResult["Error"].asJsonObject["value"].asString ?: "" + TxResponse.newBuilder().setTxhash(txHash).setCode(-1) + .setRawLog(errorMsg).build() + } + txResponse = + GetTxResponse.newBuilder().setTxResponse(txResultResponse).build() + Handler(Looper.getMainLooper()).postDelayed({ + updateView() + }, 0) + + } else { + fetchCnt -= 1 + if (isSuccess && fetchCnt > 0) { + Handler(Looper.getMainLooper()).postDelayed({ + loadHistoryTx() + }, 6000) + + } else { + runOnUiThread { + showMoreWait() + } + } + } + + } else { + fetchCnt -= 1 + if (isSuccess && fetchCnt > 0) { + Handler(Looper.getMainLooper()).postDelayed({ + loadHistoryTx() + }, 6000) + + } else { + runOnUiThread { + showMoreWait() + } + } + } + + } else if (cosmosFetcher?.endPointType(this) == CosmosEndPointType.USE_GRPC) { val channel = fromChain.cosmosFetcher?.getChannel() val stub = ServiceGrpc.newStub(channel) val request = ServiceProto.GetTxRequest.newBuilder().setHash(txHash).build() diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/CommonTransferFragment.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/CommonTransferFragment.kt index 6a4c796d6..cd1c72f79 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/CommonTransferFragment.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/CommonTransferFragment.kt @@ -34,6 +34,7 @@ import org.web3j.protocol.Web3j import org.web3j.protocol.http.HttpService import wannabit.io.cosmostaion.R import wannabit.io.cosmostaion.chain.BaseChain +import wannabit.io.cosmostaion.chain.CosmosEndPointType import wannabit.io.cosmostaion.chain.EVM_BASE_FEE import wannabit.io.cosmostaion.chain.allChains import wannabit.io.cosmostaion.chain.cosmosClass.ChainThorchain @@ -234,7 +235,8 @@ class CommonTransferFragment : BaseTxFragment() { availableAmount = fromChain.cosmosFetcher?.balanceAmount(toSendDenom) if (cosmosTxFee?.amountList?.isNotEmpty() == true) { if (cosmosTxFee?.getAmount(0)?.denom == toSendDenom) { - val feeAmount = cosmosTxFee?.getAmount(0)?.amount?.toBigDecimal() ?: BigDecimal.ZERO + val feeAmount = cosmosTxFee?.getAmount(0)?.amount?.toBigDecimal() + ?: BigDecimal.ZERO availableAmount = if (feeAmount >= availableAmount) { BigDecimal.ZERO } else { @@ -251,11 +253,13 @@ class CommonTransferFragment : BaseTxFragment() { SendAssetType.ONLY_COSMOS_COIN -> { toSendAsset = BaseData.getAsset(fromChain.apiName, toSendDenom) - availableAmount = fromChain.cosmosFetcher?.balanceAmount(toSendDenom) ?: BigDecimal.ZERO + availableAmount = + fromChain.cosmosFetcher?.balanceAmount(toSendDenom) ?: BigDecimal.ZERO if (cosmosTxFee?.amountList?.isNotEmpty() == true) { if (cosmosTxFee?.getAmount(0)?.denom == toSendDenom) { - val feeAmount = cosmosTxFee?.getAmount(0)?.amount?.toBigDecimal() ?: BigDecimal.ZERO + val feeAmount = + cosmosTxFee?.getAmount(0)?.amount?.toBigDecimal() ?: BigDecimal.ZERO availableAmount = if (feeAmount >= availableAmount) { BigDecimal.ZERO } else { @@ -1218,24 +1222,28 @@ class CommonTransferFragment : BaseTxFragment() { } private fun onBindSendMsg(): MutableList { - return if (fromChain is ChainThorchain) { - val fromAddressByteArray = convertBits(Bech32.decode(fromChain.address).data, 5, 8, false) - val toAddressByteArray = convertBits(Bech32.decode(toAddress).data, 5, 8, false) - - val sendCoin = - CoinProto.Coin.newBuilder().setAmount(toSendAmount).setDenom(toSendDenom).build() - val msgSend = com.types.MsgSendProto.MsgSend.newBuilder() - .setFromAddress(ByteString.copyFrom(fromAddressByteArray)) - .setToAddress(ByteString.copyFrom(toAddressByteArray)).addAmount(sendCoin).build() - Signer.thorchainSendMsg(msgSend) - - } else { - val sendCoin = - CoinProto.Coin.newBuilder().setAmount(toSendAmount).setDenom(toSendDenom).build() - val msgSend = - MsgSend.newBuilder().setFromAddress(fromChain.address).setToAddress(toAddress) - .addAmount(sendCoin).build() - Signer.sendMsg(msgSend) + return when (fromChain) { + is ChainThorchain -> { + val fromAddressByteArray = + convertBits(Bech32.decode(fromChain.address).data, 5, 8, false) + val toAddressByteArray = convertBits(Bech32.decode(toAddress).data, 5, 8, false) + + val sendCoin = + CoinProto.Coin.newBuilder().setAmount(toSendAmount).setDenom(toSendDenom).build() + val msgSend = com.types.MsgSendProto.MsgSend.newBuilder() + .setFromAddress(ByteString.copyFrom(fromAddressByteArray)) + .setToAddress(ByteString.copyFrom(toAddressByteArray)).addAmount(sendCoin).build() + Signer.thorchainSendMsg(msgSend) + } + + else -> { + val sendCoin = + CoinProto.Coin.newBuilder().setAmount(toSendAmount).setDenom(toSendDenom).build() + val msgSend = + MsgSend.newBuilder().setFromAddress(fromChain.address).setToAddress(toAddress) + .addAmount(sendCoin).build() + Signer.sendMsg(msgSend) + } } } @@ -1320,13 +1328,27 @@ class CommonTransferFragment : BaseTxFragment() { ) } else { - txViewModel.broadcast( - cosmosFetcher?.getChannel(), - onBindSendMsg(), - cosmosTxFee, - txMemo, - this - ) + if (cosmosFetcher?.endPointType(this) == CosmosEndPointType.USE_RPC) { + val msgSend = + com.gno.bank.BankProto.MsgSend.newBuilder().setFromAddress(fromChain.address) + .setToAddress(toAddress).setAmount(toSendAmount + toSendDenom).build() + Signer.gnoSendMsg(msgSend) + txViewModel.rpcBroadcast( + msgSend, + cosmosTxFee, + txMemo, + this + ) + + } else { + txViewModel.broadcast( + cosmosFetcher?.getChannel(), + onBindSendMsg(), + cosmosTxFee, + txMemo, + this + ) + } } } else { diff --git a/app/src/main/res/drawable-hdpi/chain_gno_testnet.png b/app/src/main/res/drawable-hdpi/chain_gno_testnet.png new file mode 100644 index 0000000000000000000000000000000000000000..e0e4352193780f2ce0ba60008f19a55edb783a95 GIT binary patch literal 7005 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

>rZ1;{e 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/chain_gno_testnet.png b/app/src/main/res/drawable-xxhdpi/chain_gno_testnet.png new file mode 100644 index 0000000000000000000000000000000000000000..ca2a75d5ac4f3cd970f5f4c8d65a70c3f156ed73 GIT binary patch literal 21198 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/chain_gno_testnet.png b/app/src/main/res/drawable-xxxhdpi/chain_gno_testnet.png new file mode 100644 index 0000000000000000000000000000000000000000..9f2ffb0ec45834ba2efecf4bb62921e985b6999a GIT binary patch literal 34472 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�w>zOsG~2my{Zg4VA*e(;_G@HjFP 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 JPDHLkV1m(?0+9d! literal 0 HcmV?d00001 diff --git a/proto/src/main/java/com/gno/bank/BankProto.java b/proto/src/main/java/com/gno/bank/BankProto.java new file mode 100644 index 000000000..c909b83ea --- /dev/null +++ b/proto/src/main/java/com/gno/bank/BankProto.java @@ -0,0 +1,1015 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: gno/bank.proto + +package com.gno.bank; + +public final class BankProto { + private BankProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface MsgSendOrBuilder extends + // @@protoc_insertion_point(interface_extends:gno.bank.MsgSend) + com.google.protobuf.MessageOrBuilder { + + /** + *

+     * the bech32 address of the fund sender
+     * 
+ * + * string from_address = 1 [json_name = "fromAddress"]; + * @return The fromAddress. + */ + java.lang.String getFromAddress(); + /** + *
+     * the bech32 address of the fund sender
+     * 
+ * + * string from_address = 1 [json_name = "fromAddress"]; + * @return The bytes for fromAddress. + */ + com.google.protobuf.ByteString + getFromAddressBytes(); + + /** + *
+     * the bech32 address of the fund receiver
+     * 
+ * + * string to_address = 2 [json_name = "toAddress"]; + * @return The toAddress. + */ + java.lang.String getToAddress(); + /** + *
+     * the bech32 address of the fund receiver
+     * 
+ * + * string to_address = 2 [json_name = "toAddress"]; + * @return The bytes for toAddress. + */ + com.google.protobuf.ByteString + getToAddressBytes(); + + /** + *
+     * the denomination and amount of fund sent ("<amount><denomination>")
+     * 
+ * + * string amount = 3 [json_name = "amount"]; + * @return The amount. + */ + java.lang.String getAmount(); + /** + *
+     * the denomination and amount of fund sent ("<amount><denomination>")
+     * 
+ * + * string amount = 3 [json_name = "amount"]; + * @return The bytes for amount. + */ + com.google.protobuf.ByteString + getAmountBytes(); + } + /** + *
+   * MsgSend is the fund transfer tx message
+   * 
+ * + * Protobuf type {@code gno.bank.MsgSend} + */ + public static final class MsgSend extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:gno.bank.MsgSend) + MsgSendOrBuilder { + private static final long serialVersionUID = 0L; + // Use MsgSend.newBuilder() to construct. + private MsgSend(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MsgSend() { + fromAddress_ = ""; + toAddress_ = ""; + amount_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MsgSend(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.bank.BankProto.internal_static_gno_bank_MsgSend_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.bank.BankProto.internal_static_gno_bank_MsgSend_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.bank.BankProto.MsgSend.class, com.gno.bank.BankProto.MsgSend.Builder.class); + } + + public static final int FROM_ADDRESS_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object fromAddress_ = ""; + /** + *
+     * the bech32 address of the fund sender
+     * 
+ * + * string from_address = 1 [json_name = "fromAddress"]; + * @return The fromAddress. + */ + @java.lang.Override + public java.lang.String getFromAddress() { + java.lang.Object ref = fromAddress_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + fromAddress_ = s; + return s; + } + } + /** + *
+     * the bech32 address of the fund sender
+     * 
+ * + * string from_address = 1 [json_name = "fromAddress"]; + * @return The bytes for fromAddress. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFromAddressBytes() { + java.lang.Object ref = fromAddress_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + fromAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int TO_ADDRESS_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object toAddress_ = ""; + /** + *
+     * the bech32 address of the fund receiver
+     * 
+ * + * string to_address = 2 [json_name = "toAddress"]; + * @return The toAddress. + */ + @java.lang.Override + public java.lang.String getToAddress() { + java.lang.Object ref = toAddress_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + toAddress_ = s; + return s; + } + } + /** + *
+     * the bech32 address of the fund receiver
+     * 
+ * + * string to_address = 2 [json_name = "toAddress"]; + * @return The bytes for toAddress. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getToAddressBytes() { + java.lang.Object ref = toAddress_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + toAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int AMOUNT_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object amount_ = ""; + /** + *
+     * the denomination and amount of fund sent ("<amount><denomination>")
+     * 
+ * + * string amount = 3 [json_name = "amount"]; + * @return The amount. + */ + @java.lang.Override + public java.lang.String getAmount() { + java.lang.Object ref = amount_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + amount_ = s; + return s; + } + } + /** + *
+     * the denomination and amount of fund sent ("<amount><denomination>")
+     * 
+ * + * string amount = 3 [json_name = "amount"]; + * @return The bytes for amount. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getAmountBytes() { + java.lang.Object ref = amount_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + amount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fromAddress_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, fromAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(toAddress_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, toAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(amount_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, amount_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(fromAddress_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, fromAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(toAddress_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, toAddress_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(amount_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, amount_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.gno.bank.BankProto.MsgSend)) { + return super.equals(obj); + } + com.gno.bank.BankProto.MsgSend other = (com.gno.bank.BankProto.MsgSend) obj; + + if (!getFromAddress() + .equals(other.getFromAddress())) return false; + if (!getToAddress() + .equals(other.getToAddress())) return false; + if (!getAmount() + .equals(other.getAmount())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + FROM_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getFromAddress().hashCode(); + hash = (37 * hash) + TO_ADDRESS_FIELD_NUMBER; + hash = (53 * hash) + getToAddress().hashCode(); + hash = (37 * hash) + AMOUNT_FIELD_NUMBER; + hash = (53 * hash) + getAmount().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.gno.bank.BankProto.MsgSend parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.bank.BankProto.MsgSend parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.bank.BankProto.MsgSend parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.bank.BankProto.MsgSend parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.bank.BankProto.MsgSend parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.bank.BankProto.MsgSend parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.bank.BankProto.MsgSend parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.bank.BankProto.MsgSend parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.gno.bank.BankProto.MsgSend parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.gno.bank.BankProto.MsgSend parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.gno.bank.BankProto.MsgSend parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.bank.BankProto.MsgSend parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.gno.bank.BankProto.MsgSend prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * MsgSend is the fund transfer tx message
+     * 
+ * + * Protobuf type {@code gno.bank.MsgSend} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:gno.bank.MsgSend) + com.gno.bank.BankProto.MsgSendOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.bank.BankProto.internal_static_gno_bank_MsgSend_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.bank.BankProto.internal_static_gno_bank_MsgSend_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.bank.BankProto.MsgSend.class, com.gno.bank.BankProto.MsgSend.Builder.class); + } + + // Construct using com.gno.bank.BankProto.MsgSend.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + fromAddress_ = ""; + toAddress_ = ""; + amount_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.gno.bank.BankProto.internal_static_gno_bank_MsgSend_descriptor; + } + + @java.lang.Override + public com.gno.bank.BankProto.MsgSend getDefaultInstanceForType() { + return com.gno.bank.BankProto.MsgSend.getDefaultInstance(); + } + + @java.lang.Override + public com.gno.bank.BankProto.MsgSend build() { + com.gno.bank.BankProto.MsgSend result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.gno.bank.BankProto.MsgSend buildPartial() { + com.gno.bank.BankProto.MsgSend result = new com.gno.bank.BankProto.MsgSend(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.gno.bank.BankProto.MsgSend result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.fromAddress_ = fromAddress_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.toAddress_ = toAddress_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.amount_ = amount_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.gno.bank.BankProto.MsgSend) { + return mergeFrom((com.gno.bank.BankProto.MsgSend)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.gno.bank.BankProto.MsgSend other) { + if (other == com.gno.bank.BankProto.MsgSend.getDefaultInstance()) return this; + if (!other.getFromAddress().isEmpty()) { + fromAddress_ = other.fromAddress_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getToAddress().isEmpty()) { + toAddress_ = other.toAddress_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getAmount().isEmpty()) { + amount_ = other.amount_; + bitField0_ |= 0x00000004; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + fromAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + toAddress_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + amount_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object fromAddress_ = ""; + /** + *
+       * the bech32 address of the fund sender
+       * 
+ * + * string from_address = 1 [json_name = "fromAddress"]; + * @return The fromAddress. + */ + public java.lang.String getFromAddress() { + java.lang.Object ref = fromAddress_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + fromAddress_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the bech32 address of the fund sender
+       * 
+ * + * string from_address = 1 [json_name = "fromAddress"]; + * @return The bytes for fromAddress. + */ + public com.google.protobuf.ByteString + getFromAddressBytes() { + java.lang.Object ref = fromAddress_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + fromAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the bech32 address of the fund sender
+       * 
+ * + * string from_address = 1 [json_name = "fromAddress"]; + * @param value The fromAddress to set. + * @return This builder for chaining. + */ + public Builder setFromAddress( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + fromAddress_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * the bech32 address of the fund sender
+       * 
+ * + * string from_address = 1 [json_name = "fromAddress"]; + * @return This builder for chaining. + */ + public Builder clearFromAddress() { + fromAddress_ = getDefaultInstance().getFromAddress(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * the bech32 address of the fund sender
+       * 
+ * + * string from_address = 1 [json_name = "fromAddress"]; + * @param value The bytes for fromAddress to set. + * @return This builder for chaining. + */ + public Builder setFromAddressBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + fromAddress_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object toAddress_ = ""; + /** + *
+       * the bech32 address of the fund receiver
+       * 
+ * + * string to_address = 2 [json_name = "toAddress"]; + * @return The toAddress. + */ + public java.lang.String getToAddress() { + java.lang.Object ref = toAddress_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + toAddress_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the bech32 address of the fund receiver
+       * 
+ * + * string to_address = 2 [json_name = "toAddress"]; + * @return The bytes for toAddress. + */ + public com.google.protobuf.ByteString + getToAddressBytes() { + java.lang.Object ref = toAddress_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + toAddress_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the bech32 address of the fund receiver
+       * 
+ * + * string to_address = 2 [json_name = "toAddress"]; + * @param value The toAddress to set. + * @return This builder for chaining. + */ + public Builder setToAddress( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + toAddress_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * the bech32 address of the fund receiver
+       * 
+ * + * string to_address = 2 [json_name = "toAddress"]; + * @return This builder for chaining. + */ + public Builder clearToAddress() { + toAddress_ = getDefaultInstance().getToAddress(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * the bech32 address of the fund receiver
+       * 
+ * + * string to_address = 2 [json_name = "toAddress"]; + * @param value The bytes for toAddress to set. + * @return This builder for chaining. + */ + public Builder setToAddressBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + toAddress_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object amount_ = ""; + /** + *
+       * the denomination and amount of fund sent ("<amount><denomination>")
+       * 
+ * + * string amount = 3 [json_name = "amount"]; + * @return The amount. + */ + public java.lang.String getAmount() { + java.lang.Object ref = amount_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + amount_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the denomination and amount of fund sent ("<amount><denomination>")
+       * 
+ * + * string amount = 3 [json_name = "amount"]; + * @return The bytes for amount. + */ + public com.google.protobuf.ByteString + getAmountBytes() { + java.lang.Object ref = amount_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + amount_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the denomination and amount of fund sent ("<amount><denomination>")
+       * 
+ * + * string amount = 3 [json_name = "amount"]; + * @param value The amount to set. + * @return This builder for chaining. + */ + public Builder setAmount( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + amount_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * the denomination and amount of fund sent ("<amount><denomination>")
+       * 
+ * + * string amount = 3 [json_name = "amount"]; + * @return This builder for chaining. + */ + public Builder clearAmount() { + amount_ = getDefaultInstance().getAmount(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + *
+       * the denomination and amount of fund sent ("<amount><denomination>")
+       * 
+ * + * string amount = 3 [json_name = "amount"]; + * @param value The bytes for amount to set. + * @return This builder for chaining. + */ + public Builder setAmountBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + amount_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:gno.bank.MsgSend) + } + + // @@protoc_insertion_point(class_scope:gno.bank.MsgSend) + private static final com.gno.bank.BankProto.MsgSend DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.gno.bank.BankProto.MsgSend(); + } + + public static com.gno.bank.BankProto.MsgSend getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MsgSend parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.gno.bank.BankProto.MsgSend getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_gno_bank_MsgSend_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_gno_bank_MsgSend_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\016gno/bank.proto\022\010gno.bank\"c\n\007MsgSend\022!\n" + + "\014from_address\030\001 \001(\tR\013fromAddress\022\035\n\nto_a" + + "ddress\030\002 \001(\tR\ttoAddress\022\026\n\006amount\030\003 \001(\tR" + + "\006amountBX\n\014com.gno.bankB\tBankProto\242\002\003GBX" + + "\252\002\010Gno.Bank\312\002\010Gno\\Bank\342\002\024Gno\\Bank\\GPBMet" + + "adata\352\002\tGno::Bankb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_gno_bank_MsgSend_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_gno_bank_MsgSend_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_gno_bank_MsgSend_descriptor, + new java.lang.String[] { "FromAddress", "ToAddress", "Amount", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/proto/src/main/java/com/gno/vm/VmProto.java b/proto/src/main/java/com/gno/vm/VmProto.java new file mode 100644 index 000000000..b0e92e9dc --- /dev/null +++ b/proto/src/main/java/com/gno/vm/VmProto.java @@ -0,0 +1,5666 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: gno/vm.proto + +package com.gno.vm; + +public final class VmProto { + private VmProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface MsgCallOrBuilder extends + // @@protoc_insertion_point(interface_extends:gno.vm.MsgCall) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * the bech32 address of the caller
+     * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The caller. + */ + java.lang.String getCaller(); + /** + *
+     * the bech32 address of the caller
+     * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The bytes for caller. + */ + com.google.protobuf.ByteString + getCallerBytes(); + + /** + *
+     * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+     * 
+ * + * string send = 2 [json_name = "send"]; + * @return The send. + */ + java.lang.String getSend(); + /** + *
+     * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+     * 
+ * + * string send = 2 [json_name = "send"]; + * @return The bytes for send. + */ + com.google.protobuf.ByteString + getSendBytes(); + + /** + *
+     * the gno package path
+     * 
+ * + * string pkg_path = 3 [json_name = "pkgPath"]; + * @return The pkgPath. + */ + java.lang.String getPkgPath(); + /** + *
+     * the gno package path
+     * 
+ * + * string pkg_path = 3 [json_name = "pkgPath"]; + * @return The bytes for pkgPath. + */ + com.google.protobuf.ByteString + getPkgPathBytes(); + + /** + *
+     * the function name being invoked
+     * 
+ * + * string func = 4 [json_name = "func"]; + * @return The func. + */ + java.lang.String getFunc(); + /** + *
+     * the function name being invoked
+     * 
+ * + * string func = 4 [json_name = "func"]; + * @return The bytes for func. + */ + com.google.protobuf.ByteString + getFuncBytes(); + + /** + *
+     * the function arguments
+     * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @return A list containing the args. + */ + java.util.List + getArgsList(); + /** + *
+     * the function arguments
+     * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @return The count of args. + */ + int getArgsCount(); + /** + *
+     * the function arguments
+     * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @param index The index of the element to return. + * @return The args at the given index. + */ + java.lang.String getArgs(int index); + /** + *
+     * the function arguments
+     * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @param index The index of the value to return. + * @return The bytes of the args at the given index. + */ + com.google.protobuf.ByteString + getArgsBytes(int index); + } + /** + *
+   * MsgCall is the method invocation tx message,
+   * denoted as "m_call"
+   * 
+ * + * Protobuf type {@code gno.vm.MsgCall} + */ + public static final class MsgCall extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:gno.vm.MsgCall) + MsgCallOrBuilder { + private static final long serialVersionUID = 0L; + // Use MsgCall.newBuilder() to construct. + private MsgCall(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MsgCall() { + caller_ = ""; + send_ = ""; + pkgPath_ = ""; + func_ = ""; + args_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MsgCall(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgCall_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgCall_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.vm.VmProto.MsgCall.class, com.gno.vm.VmProto.MsgCall.Builder.class); + } + + public static final int CALLER_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object caller_ = ""; + /** + *
+     * the bech32 address of the caller
+     * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The caller. + */ + @java.lang.Override + public java.lang.String getCaller() { + java.lang.Object ref = caller_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + caller_ = s; + return s; + } + } + /** + *
+     * the bech32 address of the caller
+     * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The bytes for caller. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCallerBytes() { + java.lang.Object ref = caller_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + caller_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SEND_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object send_ = ""; + /** + *
+     * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+     * 
+ * + * string send = 2 [json_name = "send"]; + * @return The send. + */ + @java.lang.Override + public java.lang.String getSend() { + java.lang.Object ref = send_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + send_ = s; + return s; + } + } + /** + *
+     * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+     * 
+ * + * string send = 2 [json_name = "send"]; + * @return The bytes for send. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSendBytes() { + java.lang.Object ref = send_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + send_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PKG_PATH_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object pkgPath_ = ""; + /** + *
+     * the gno package path
+     * 
+ * + * string pkg_path = 3 [json_name = "pkgPath"]; + * @return The pkgPath. + */ + @java.lang.Override + public java.lang.String getPkgPath() { + java.lang.Object ref = pkgPath_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pkgPath_ = s; + return s; + } + } + /** + *
+     * the gno package path
+     * 
+ * + * string pkg_path = 3 [json_name = "pkgPath"]; + * @return The bytes for pkgPath. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPkgPathBytes() { + java.lang.Object ref = pkgPath_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pkgPath_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FUNC_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object func_ = ""; + /** + *
+     * the function name being invoked
+     * 
+ * + * string func = 4 [json_name = "func"]; + * @return The func. + */ + @java.lang.Override + public java.lang.String getFunc() { + java.lang.Object ref = func_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + func_ = s; + return s; + } + } + /** + *
+     * the function name being invoked
+     * 
+ * + * string func = 4 [json_name = "func"]; + * @return The bytes for func. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getFuncBytes() { + java.lang.Object ref = func_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + func_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int ARGS_FIELD_NUMBER = 5; + @SuppressWarnings("serial") + private com.google.protobuf.LazyStringArrayList args_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + /** + *
+     * the function arguments
+     * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @return A list containing the args. + */ + public com.google.protobuf.ProtocolStringList + getArgsList() { + return args_; + } + /** + *
+     * the function arguments
+     * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @return The count of args. + */ + public int getArgsCount() { + return args_.size(); + } + /** + *
+     * the function arguments
+     * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @param index The index of the element to return. + * @return The args at the given index. + */ + public java.lang.String getArgs(int index) { + return args_.get(index); + } + /** + *
+     * the function arguments
+     * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @param index The index of the value to return. + * @return The bytes of the args at the given index. + */ + public com.google.protobuf.ByteString + getArgsBytes(int index) { + return args_.getByteString(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(caller_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, caller_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(send_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, send_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pkgPath_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, pkgPath_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(func_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, func_); + } + for (int i = 0; i < args_.size(); i++) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 5, args_.getRaw(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(caller_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, caller_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(send_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, send_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pkgPath_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, pkgPath_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(func_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, func_); + } + { + int dataSize = 0; + for (int i = 0; i < args_.size(); i++) { + dataSize += computeStringSizeNoTag(args_.getRaw(i)); + } + size += dataSize; + size += 1 * getArgsList().size(); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.gno.vm.VmProto.MsgCall)) { + return super.equals(obj); + } + com.gno.vm.VmProto.MsgCall other = (com.gno.vm.VmProto.MsgCall) obj; + + if (!getCaller() + .equals(other.getCaller())) return false; + if (!getSend() + .equals(other.getSend())) return false; + if (!getPkgPath() + .equals(other.getPkgPath())) return false; + if (!getFunc() + .equals(other.getFunc())) return false; + if (!getArgsList() + .equals(other.getArgsList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CALLER_FIELD_NUMBER; + hash = (53 * hash) + getCaller().hashCode(); + hash = (37 * hash) + SEND_FIELD_NUMBER; + hash = (53 * hash) + getSend().hashCode(); + hash = (37 * hash) + PKG_PATH_FIELD_NUMBER; + hash = (53 * hash) + getPkgPath().hashCode(); + hash = (37 * hash) + FUNC_FIELD_NUMBER; + hash = (53 * hash) + getFunc().hashCode(); + if (getArgsCount() > 0) { + hash = (37 * hash) + ARGS_FIELD_NUMBER; + hash = (53 * hash) + getArgsList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.gno.vm.VmProto.MsgCall parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MsgCall parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgCall parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MsgCall parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgCall parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MsgCall parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgCall parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.vm.VmProto.MsgCall parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.gno.vm.VmProto.MsgCall parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.gno.vm.VmProto.MsgCall parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgCall parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.vm.VmProto.MsgCall parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.gno.vm.VmProto.MsgCall prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * MsgCall is the method invocation tx message,
+     * denoted as "m_call"
+     * 
+ * + * Protobuf type {@code gno.vm.MsgCall} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:gno.vm.MsgCall) + com.gno.vm.VmProto.MsgCallOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgCall_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgCall_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.vm.VmProto.MsgCall.class, com.gno.vm.VmProto.MsgCall.Builder.class); + } + + // Construct using com.gno.vm.VmProto.MsgCall.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + caller_ = ""; + send_ = ""; + pkgPath_ = ""; + func_ = ""; + args_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgCall_descriptor; + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgCall getDefaultInstanceForType() { + return com.gno.vm.VmProto.MsgCall.getDefaultInstance(); + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgCall build() { + com.gno.vm.VmProto.MsgCall result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgCall buildPartial() { + com.gno.vm.VmProto.MsgCall result = new com.gno.vm.VmProto.MsgCall(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.gno.vm.VmProto.MsgCall result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.caller_ = caller_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.send_ = send_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.pkgPath_ = pkgPath_; + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.func_ = func_; + } + if (((from_bitField0_ & 0x00000010) != 0)) { + args_.makeImmutable(); + result.args_ = args_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.gno.vm.VmProto.MsgCall) { + return mergeFrom((com.gno.vm.VmProto.MsgCall)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.gno.vm.VmProto.MsgCall other) { + if (other == com.gno.vm.VmProto.MsgCall.getDefaultInstance()) return this; + if (!other.getCaller().isEmpty()) { + caller_ = other.caller_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getSend().isEmpty()) { + send_ = other.send_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (!other.getPkgPath().isEmpty()) { + pkgPath_ = other.pkgPath_; + bitField0_ |= 0x00000004; + onChanged(); + } + if (!other.getFunc().isEmpty()) { + func_ = other.func_; + bitField0_ |= 0x00000008; + onChanged(); + } + if (!other.args_.isEmpty()) { + if (args_.isEmpty()) { + args_ = other.args_; + bitField0_ |= 0x00000010; + } else { + ensureArgsIsMutable(); + args_.addAll(other.args_); + } + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + caller_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + send_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + pkgPath_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + case 34: { + func_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + case 42: { + java.lang.String s = input.readStringRequireUtf8(); + ensureArgsIsMutable(); + args_.add(s); + break; + } // case 42 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object caller_ = ""; + /** + *
+       * the bech32 address of the caller
+       * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The caller. + */ + public java.lang.String getCaller() { + java.lang.Object ref = caller_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + caller_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the bech32 address of the caller
+       * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The bytes for caller. + */ + public com.google.protobuf.ByteString + getCallerBytes() { + java.lang.Object ref = caller_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + caller_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the bech32 address of the caller
+       * 
+ * + * string caller = 1 [json_name = "caller"]; + * @param value The caller to set. + * @return This builder for chaining. + */ + public Builder setCaller( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + caller_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * the bech32 address of the caller
+       * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return This builder for chaining. + */ + public Builder clearCaller() { + caller_ = getDefaultInstance().getCaller(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * the bech32 address of the caller
+       * 
+ * + * string caller = 1 [json_name = "caller"]; + * @param value The bytes for caller to set. + * @return This builder for chaining. + */ + public Builder setCallerBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + caller_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object send_ = ""; + /** + *
+       * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+       * 
+ * + * string send = 2 [json_name = "send"]; + * @return The send. + */ + public java.lang.String getSend() { + java.lang.Object ref = send_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + send_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+       * 
+ * + * string send = 2 [json_name = "send"]; + * @return The bytes for send. + */ + public com.google.protobuf.ByteString + getSendBytes() { + java.lang.Object ref = send_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + send_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+       * 
+ * + * string send = 2 [json_name = "send"]; + * @param value The send to set. + * @return This builder for chaining. + */ + public Builder setSend( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + send_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+       * 
+ * + * string send = 2 [json_name = "send"]; + * @return This builder for chaining. + */ + public Builder clearSend() { + send_ = getDefaultInstance().getSend(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+       * 
+ * + * string send = 2 [json_name = "send"]; + * @param value The bytes for send to set. + * @return This builder for chaining. + */ + public Builder setSendBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + send_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.lang.Object pkgPath_ = ""; + /** + *
+       * the gno package path
+       * 
+ * + * string pkg_path = 3 [json_name = "pkgPath"]; + * @return The pkgPath. + */ + public java.lang.String getPkgPath() { + java.lang.Object ref = pkgPath_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + pkgPath_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the gno package path
+       * 
+ * + * string pkg_path = 3 [json_name = "pkgPath"]; + * @return The bytes for pkgPath. + */ + public com.google.protobuf.ByteString + getPkgPathBytes() { + java.lang.Object ref = pkgPath_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + pkgPath_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the gno package path
+       * 
+ * + * string pkg_path = 3 [json_name = "pkgPath"]; + * @param value The pkgPath to set. + * @return This builder for chaining. + */ + public Builder setPkgPath( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + pkgPath_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * the gno package path
+       * 
+ * + * string pkg_path = 3 [json_name = "pkgPath"]; + * @return This builder for chaining. + */ + public Builder clearPkgPath() { + pkgPath_ = getDefaultInstance().getPkgPath(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + *
+       * the gno package path
+       * 
+ * + * string pkg_path = 3 [json_name = "pkgPath"]; + * @param value The bytes for pkgPath to set. + * @return This builder for chaining. + */ + public Builder setPkgPathBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + pkgPath_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + + private java.lang.Object func_ = ""; + /** + *
+       * the function name being invoked
+       * 
+ * + * string func = 4 [json_name = "func"]; + * @return The func. + */ + public java.lang.String getFunc() { + java.lang.Object ref = func_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + func_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the function name being invoked
+       * 
+ * + * string func = 4 [json_name = "func"]; + * @return The bytes for func. + */ + public com.google.protobuf.ByteString + getFuncBytes() { + java.lang.Object ref = func_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + func_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the function name being invoked
+       * 
+ * + * string func = 4 [json_name = "func"]; + * @param value The func to set. + * @return This builder for chaining. + */ + public Builder setFunc( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + func_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * the function name being invoked
+       * 
+ * + * string func = 4 [json_name = "func"]; + * @return This builder for chaining. + */ + public Builder clearFunc() { + func_ = getDefaultInstance().getFunc(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + *
+       * the function name being invoked
+       * 
+ * + * string func = 4 [json_name = "func"]; + * @param value The bytes for func to set. + * @return This builder for chaining. + */ + public Builder setFuncBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + func_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + + private com.google.protobuf.LazyStringArrayList args_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + private void ensureArgsIsMutable() { + if (!args_.isModifiable()) { + args_ = new com.google.protobuf.LazyStringArrayList(args_); + } + bitField0_ |= 0x00000010; + } + /** + *
+       * the function arguments
+       * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @return A list containing the args. + */ + public com.google.protobuf.ProtocolStringList + getArgsList() { + args_.makeImmutable(); + return args_; + } + /** + *
+       * the function arguments
+       * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @return The count of args. + */ + public int getArgsCount() { + return args_.size(); + } + /** + *
+       * the function arguments
+       * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @param index The index of the element to return. + * @return The args at the given index. + */ + public java.lang.String getArgs(int index) { + return args_.get(index); + } + /** + *
+       * the function arguments
+       * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @param index The index of the value to return. + * @return The bytes of the args at the given index. + */ + public com.google.protobuf.ByteString + getArgsBytes(int index) { + return args_.getByteString(index); + } + /** + *
+       * the function arguments
+       * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @param index The index to set the value at. + * @param value The args to set. + * @return This builder for chaining. + */ + public Builder setArgs( + int index, java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureArgsIsMutable(); + args_.set(index, value); + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * the function arguments
+       * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @param value The args to add. + * @return This builder for chaining. + */ + public Builder addArgs( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + ensureArgsIsMutable(); + args_.add(value); + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * the function arguments
+       * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @param values The args to add. + * @return This builder for chaining. + */ + public Builder addAllArgs( + java.lang.Iterable values) { + ensureArgsIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, args_); + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + /** + *
+       * the function arguments
+       * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @return This builder for chaining. + */ + public Builder clearArgs() { + args_ = + com.google.protobuf.LazyStringArrayList.emptyList(); + bitField0_ = (bitField0_ & ~0x00000010);; + onChanged(); + return this; + } + /** + *
+       * the function arguments
+       * 
+ * + * repeated string args = 5 [json_name = "args"]; + * @param value The bytes of the args to add. + * @return This builder for chaining. + */ + public Builder addArgsBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + ensureArgsIsMutable(); + args_.add(value); + bitField0_ |= 0x00000010; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:gno.vm.MsgCall) + } + + // @@protoc_insertion_point(class_scope:gno.vm.MsgCall) + private static final com.gno.vm.VmProto.MsgCall DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.gno.vm.VmProto.MsgCall(); + } + + public static com.gno.vm.VmProto.MsgCall getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MsgCall parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgCall getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface MsgAddPackageOrBuilder extends + // @@protoc_insertion_point(interface_extends:gno.vm.MsgAddPackage) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * the package deployer
+     * 
+ * + * string creator = 1 [json_name = "creator"]; + * @return The creator. + */ + java.lang.String getCreator(); + /** + *
+     * the package deployer
+     * 
+ * + * string creator = 1 [json_name = "creator"]; + * @return The bytes for creator. + */ + com.google.protobuf.ByteString + getCreatorBytes(); + + /** + *
+     * the package being deployed
+     * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + * @return Whether the package field is set. + */ + boolean hasPackage(); + /** + *
+     * the package being deployed
+     * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + * @return The package. + */ + com.gno.vm.VmProto.MemPackage getPackage(); + /** + *
+     * the package being deployed
+     * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + */ + com.gno.vm.VmProto.MemPackageOrBuilder getPackageOrBuilder(); + + /** + *
+     * the amount of funds to be deposited at deployment, if any ("<amount><denomination>")
+     * 
+ * + * string deposit = 3 [json_name = "deposit"]; + * @return The deposit. + */ + java.lang.String getDeposit(); + /** + *
+     * the amount of funds to be deposited at deployment, if any ("<amount><denomination>")
+     * 
+ * + * string deposit = 3 [json_name = "deposit"]; + * @return The bytes for deposit. + */ + com.google.protobuf.ByteString + getDepositBytes(); + } + /** + *
+   * MsgAddPackage is the package deployment tx message,
+   * denoted as "m_addpkg"
+   * 
+ * + * Protobuf type {@code gno.vm.MsgAddPackage} + */ + public static final class MsgAddPackage extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:gno.vm.MsgAddPackage) + MsgAddPackageOrBuilder { + private static final long serialVersionUID = 0L; + // Use MsgAddPackage.newBuilder() to construct. + private MsgAddPackage(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MsgAddPackage() { + creator_ = ""; + deposit_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MsgAddPackage(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgAddPackage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgAddPackage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.vm.VmProto.MsgAddPackage.class, com.gno.vm.VmProto.MsgAddPackage.Builder.class); + } + + public static final int CREATOR_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object creator_ = ""; + /** + *
+     * the package deployer
+     * 
+ * + * string creator = 1 [json_name = "creator"]; + * @return The creator. + */ + @java.lang.Override + public java.lang.String getCreator() { + java.lang.Object ref = creator_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + creator_ = s; + return s; + } + } + /** + *
+     * the package deployer
+     * 
+ * + * string creator = 1 [json_name = "creator"]; + * @return The bytes for creator. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCreatorBytes() { + java.lang.Object ref = creator_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + creator_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PACKAGE_FIELD_NUMBER = 2; + private com.gno.vm.VmProto.MemPackage package_; + /** + *
+     * the package being deployed
+     * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + * @return Whether the package field is set. + */ + @java.lang.Override + public boolean hasPackage() { + return package_ != null; + } + /** + *
+     * the package being deployed
+     * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + * @return The package. + */ + @java.lang.Override + public com.gno.vm.VmProto.MemPackage getPackage() { + return package_ == null ? com.gno.vm.VmProto.MemPackage.getDefaultInstance() : package_; + } + /** + *
+     * the package being deployed
+     * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + */ + @java.lang.Override + public com.gno.vm.VmProto.MemPackageOrBuilder getPackageOrBuilder() { + return package_ == null ? com.gno.vm.VmProto.MemPackage.getDefaultInstance() : package_; + } + + public static final int DEPOSIT_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private volatile java.lang.Object deposit_ = ""; + /** + *
+     * the amount of funds to be deposited at deployment, if any ("<amount><denomination>")
+     * 
+ * + * string deposit = 3 [json_name = "deposit"]; + * @return The deposit. + */ + @java.lang.Override + public java.lang.String getDeposit() { + java.lang.Object ref = deposit_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deposit_ = s; + return s; + } + } + /** + *
+     * the amount of funds to be deposited at deployment, if any ("<amount><denomination>")
+     * 
+ * + * string deposit = 3 [json_name = "deposit"]; + * @return The bytes for deposit. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getDepositBytes() { + java.lang.Object ref = deposit_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deposit_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(creator_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, creator_); + } + if (package_ != null) { + output.writeMessage(2, getPackage()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deposit_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 3, deposit_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(creator_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, creator_); + } + if (package_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getPackage()); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(deposit_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, deposit_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.gno.vm.VmProto.MsgAddPackage)) { + return super.equals(obj); + } + com.gno.vm.VmProto.MsgAddPackage other = (com.gno.vm.VmProto.MsgAddPackage) obj; + + if (!getCreator() + .equals(other.getCreator())) return false; + if (hasPackage() != other.hasPackage()) return false; + if (hasPackage()) { + if (!getPackage() + .equals(other.getPackage())) return false; + } + if (!getDeposit() + .equals(other.getDeposit())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CREATOR_FIELD_NUMBER; + hash = (53 * hash) + getCreator().hashCode(); + if (hasPackage()) { + hash = (37 * hash) + PACKAGE_FIELD_NUMBER; + hash = (53 * hash) + getPackage().hashCode(); + } + hash = (37 * hash) + DEPOSIT_FIELD_NUMBER; + hash = (53 * hash) + getDeposit().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.gno.vm.VmProto.MsgAddPackage parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MsgAddPackage parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgAddPackage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MsgAddPackage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgAddPackage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MsgAddPackage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgAddPackage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.vm.VmProto.MsgAddPackage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.gno.vm.VmProto.MsgAddPackage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.gno.vm.VmProto.MsgAddPackage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgAddPackage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.vm.VmProto.MsgAddPackage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.gno.vm.VmProto.MsgAddPackage prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * MsgAddPackage is the package deployment tx message,
+     * denoted as "m_addpkg"
+     * 
+ * + * Protobuf type {@code gno.vm.MsgAddPackage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:gno.vm.MsgAddPackage) + com.gno.vm.VmProto.MsgAddPackageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgAddPackage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgAddPackage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.vm.VmProto.MsgAddPackage.class, com.gno.vm.VmProto.MsgAddPackage.Builder.class); + } + + // Construct using com.gno.vm.VmProto.MsgAddPackage.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + creator_ = ""; + package_ = null; + if (packageBuilder_ != null) { + packageBuilder_.dispose(); + packageBuilder_ = null; + } + deposit_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgAddPackage_descriptor; + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgAddPackage getDefaultInstanceForType() { + return com.gno.vm.VmProto.MsgAddPackage.getDefaultInstance(); + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgAddPackage build() { + com.gno.vm.VmProto.MsgAddPackage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgAddPackage buildPartial() { + com.gno.vm.VmProto.MsgAddPackage result = new com.gno.vm.VmProto.MsgAddPackage(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.gno.vm.VmProto.MsgAddPackage result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.creator_ = creator_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.package_ = packageBuilder_ == null + ? package_ + : packageBuilder_.build(); + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.deposit_ = deposit_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.gno.vm.VmProto.MsgAddPackage) { + return mergeFrom((com.gno.vm.VmProto.MsgAddPackage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.gno.vm.VmProto.MsgAddPackage other) { + if (other == com.gno.vm.VmProto.MsgAddPackage.getDefaultInstance()) return this; + if (!other.getCreator().isEmpty()) { + creator_ = other.creator_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (other.hasPackage()) { + mergePackage(other.getPackage()); + } + if (!other.getDeposit().isEmpty()) { + deposit_ = other.deposit_; + bitField0_ |= 0x00000004; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + creator_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + input.readMessage( + getPackageFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + deposit_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object creator_ = ""; + /** + *
+       * the package deployer
+       * 
+ * + * string creator = 1 [json_name = "creator"]; + * @return The creator. + */ + public java.lang.String getCreator() { + java.lang.Object ref = creator_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + creator_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the package deployer
+       * 
+ * + * string creator = 1 [json_name = "creator"]; + * @return The bytes for creator. + */ + public com.google.protobuf.ByteString + getCreatorBytes() { + java.lang.Object ref = creator_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + creator_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the package deployer
+       * 
+ * + * string creator = 1 [json_name = "creator"]; + * @param value The creator to set. + * @return This builder for chaining. + */ + public Builder setCreator( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + creator_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * the package deployer
+       * 
+ * + * string creator = 1 [json_name = "creator"]; + * @return This builder for chaining. + */ + public Builder clearCreator() { + creator_ = getDefaultInstance().getCreator(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * the package deployer
+       * 
+ * + * string creator = 1 [json_name = "creator"]; + * @param value The bytes for creator to set. + * @return This builder for chaining. + */ + public Builder setCreatorBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + creator_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private com.gno.vm.VmProto.MemPackage package_; + private com.google.protobuf.SingleFieldBuilderV3< + com.gno.vm.VmProto.MemPackage, com.gno.vm.VmProto.MemPackage.Builder, com.gno.vm.VmProto.MemPackageOrBuilder> packageBuilder_; + /** + *
+       * the package being deployed
+       * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + * @return Whether the package field is set. + */ + public boolean hasPackage() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + *
+       * the package being deployed
+       * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + * @return The package. + */ + public com.gno.vm.VmProto.MemPackage getPackage() { + if (packageBuilder_ == null) { + return package_ == null ? com.gno.vm.VmProto.MemPackage.getDefaultInstance() : package_; + } else { + return packageBuilder_.getMessage(); + } + } + /** + *
+       * the package being deployed
+       * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + */ + public Builder setPackage(com.gno.vm.VmProto.MemPackage value) { + if (packageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + package_ = value; + } else { + packageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * the package being deployed
+       * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + */ + public Builder setPackage( + com.gno.vm.VmProto.MemPackage.Builder builderForValue) { + if (packageBuilder_ == null) { + package_ = builderForValue.build(); + } else { + packageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * the package being deployed
+       * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + */ + public Builder mergePackage(com.gno.vm.VmProto.MemPackage value) { + if (packageBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + package_ != null && + package_ != com.gno.vm.VmProto.MemPackage.getDefaultInstance()) { + getPackageBuilder().mergeFrom(value); + } else { + package_ = value; + } + } else { + packageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * the package being deployed
+       * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + */ + public Builder clearPackage() { + bitField0_ = (bitField0_ & ~0x00000002); + package_ = null; + if (packageBuilder_ != null) { + packageBuilder_.dispose(); + packageBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * the package being deployed
+       * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + */ + public com.gno.vm.VmProto.MemPackage.Builder getPackageBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getPackageFieldBuilder().getBuilder(); + } + /** + *
+       * the package being deployed
+       * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + */ + public com.gno.vm.VmProto.MemPackageOrBuilder getPackageOrBuilder() { + if (packageBuilder_ != null) { + return packageBuilder_.getMessageOrBuilder(); + } else { + return package_ == null ? + com.gno.vm.VmProto.MemPackage.getDefaultInstance() : package_; + } + } + /** + *
+       * the package being deployed
+       * 
+ * + * .gno.vm.MemPackage package = 2 [json_name = "package"]; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.gno.vm.VmProto.MemPackage, com.gno.vm.VmProto.MemPackage.Builder, com.gno.vm.VmProto.MemPackageOrBuilder> + getPackageFieldBuilder() { + if (packageBuilder_ == null) { + packageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.gno.vm.VmProto.MemPackage, com.gno.vm.VmProto.MemPackage.Builder, com.gno.vm.VmProto.MemPackageOrBuilder>( + getPackage(), + getParentForChildren(), + isClean()); + package_ = null; + } + return packageBuilder_; + } + + private java.lang.Object deposit_ = ""; + /** + *
+       * the amount of funds to be deposited at deployment, if any ("<amount><denomination>")
+       * 
+ * + * string deposit = 3 [json_name = "deposit"]; + * @return The deposit. + */ + public java.lang.String getDeposit() { + java.lang.Object ref = deposit_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + deposit_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the amount of funds to be deposited at deployment, if any ("<amount><denomination>")
+       * 
+ * + * string deposit = 3 [json_name = "deposit"]; + * @return The bytes for deposit. + */ + public com.google.protobuf.ByteString + getDepositBytes() { + java.lang.Object ref = deposit_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + deposit_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the amount of funds to be deposited at deployment, if any ("<amount><denomination>")
+       * 
+ * + * string deposit = 3 [json_name = "deposit"]; + * @param value The deposit to set. + * @return This builder for chaining. + */ + public Builder setDeposit( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + deposit_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * the amount of funds to be deposited at deployment, if any ("<amount><denomination>")
+       * 
+ * + * string deposit = 3 [json_name = "deposit"]; + * @return This builder for chaining. + */ + public Builder clearDeposit() { + deposit_ = getDefaultInstance().getDeposit(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + return this; + } + /** + *
+       * the amount of funds to be deposited at deployment, if any ("<amount><denomination>")
+       * 
+ * + * string deposit = 3 [json_name = "deposit"]; + * @param value The bytes for deposit to set. + * @return This builder for chaining. + */ + public Builder setDepositBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + deposit_ = value; + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:gno.vm.MsgAddPackage) + } + + // @@protoc_insertion_point(class_scope:gno.vm.MsgAddPackage) + private static final com.gno.vm.VmProto.MsgAddPackage DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.gno.vm.VmProto.MsgAddPackage(); + } + + public static com.gno.vm.VmProto.MsgAddPackage getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MsgAddPackage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgAddPackage getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface MsgRunOrBuilder extends + // @@protoc_insertion_point(interface_extends:gno.vm.MsgRun) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * the bech32 address of the caller
+     * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The caller. + */ + java.lang.String getCaller(); + /** + *
+     * the bech32 address of the caller
+     * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The bytes for caller. + */ + com.google.protobuf.ByteString + getCallerBytes(); + + /** + *
+     * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+     * 
+ * + * string send = 2 [json_name = "send"]; + * @return The send. + */ + java.lang.String getSend(); + /** + *
+     * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+     * 
+ * + * string send = 2 [json_name = "send"]; + * @return The bytes for send. + */ + com.google.protobuf.ByteString + getSendBytes(); + + /** + *
+     * the package being executed
+     * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + * @return Whether the package field is set. + */ + boolean hasPackage(); + /** + *
+     * the package being executed
+     * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + * @return The package. + */ + com.gno.vm.VmProto.MemPackage getPackage(); + /** + *
+     * the package being executed
+     * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + */ + com.gno.vm.VmProto.MemPackageOrBuilder getPackageOrBuilder(); + } + /** + *
+   * MsgRun is the execute arbitrary Gno code tx message,
+   * denoted as "m_run"
+   * 
+ * + * Protobuf type {@code gno.vm.MsgRun} + */ + public static final class MsgRun extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:gno.vm.MsgRun) + MsgRunOrBuilder { + private static final long serialVersionUID = 0L; + // Use MsgRun.newBuilder() to construct. + private MsgRun(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MsgRun() { + caller_ = ""; + send_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MsgRun(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgRun_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgRun_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.vm.VmProto.MsgRun.class, com.gno.vm.VmProto.MsgRun.Builder.class); + } + + public static final int CALLER_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object caller_ = ""; + /** + *
+     * the bech32 address of the caller
+     * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The caller. + */ + @java.lang.Override + public java.lang.String getCaller() { + java.lang.Object ref = caller_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + caller_ = s; + return s; + } + } + /** + *
+     * the bech32 address of the caller
+     * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The bytes for caller. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getCallerBytes() { + java.lang.Object ref = caller_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + caller_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int SEND_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object send_ = ""; + /** + *
+     * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+     * 
+ * + * string send = 2 [json_name = "send"]; + * @return The send. + */ + @java.lang.Override + public java.lang.String getSend() { + java.lang.Object ref = send_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + send_ = s; + return s; + } + } + /** + *
+     * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+     * 
+ * + * string send = 2 [json_name = "send"]; + * @return The bytes for send. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getSendBytes() { + java.lang.Object ref = send_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + send_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PACKAGE_FIELD_NUMBER = 3; + private com.gno.vm.VmProto.MemPackage package_; + /** + *
+     * the package being executed
+     * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + * @return Whether the package field is set. + */ + @java.lang.Override + public boolean hasPackage() { + return package_ != null; + } + /** + *
+     * the package being executed
+     * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + * @return The package. + */ + @java.lang.Override + public com.gno.vm.VmProto.MemPackage getPackage() { + return package_ == null ? com.gno.vm.VmProto.MemPackage.getDefaultInstance() : package_; + } + /** + *
+     * the package being executed
+     * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + */ + @java.lang.Override + public com.gno.vm.VmProto.MemPackageOrBuilder getPackageOrBuilder() { + return package_ == null ? com.gno.vm.VmProto.MemPackage.getDefaultInstance() : package_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(caller_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, caller_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(send_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, send_); + } + if (package_ != null) { + output.writeMessage(3, getPackage()); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(caller_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, caller_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(send_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, send_); + } + if (package_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, getPackage()); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.gno.vm.VmProto.MsgRun)) { + return super.equals(obj); + } + com.gno.vm.VmProto.MsgRun other = (com.gno.vm.VmProto.MsgRun) obj; + + if (!getCaller() + .equals(other.getCaller())) return false; + if (!getSend() + .equals(other.getSend())) return false; + if (hasPackage() != other.hasPackage()) return false; + if (hasPackage()) { + if (!getPackage() + .equals(other.getPackage())) return false; + } + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + CALLER_FIELD_NUMBER; + hash = (53 * hash) + getCaller().hashCode(); + hash = (37 * hash) + SEND_FIELD_NUMBER; + hash = (53 * hash) + getSend().hashCode(); + if (hasPackage()) { + hash = (37 * hash) + PACKAGE_FIELD_NUMBER; + hash = (53 * hash) + getPackage().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.gno.vm.VmProto.MsgRun parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MsgRun parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgRun parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MsgRun parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgRun parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MsgRun parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgRun parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.vm.VmProto.MsgRun parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.gno.vm.VmProto.MsgRun parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.gno.vm.VmProto.MsgRun parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.gno.vm.VmProto.MsgRun parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.vm.VmProto.MsgRun parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.gno.vm.VmProto.MsgRun prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * MsgRun is the execute arbitrary Gno code tx message,
+     * denoted as "m_run"
+     * 
+ * + * Protobuf type {@code gno.vm.MsgRun} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:gno.vm.MsgRun) + com.gno.vm.VmProto.MsgRunOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgRun_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgRun_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.vm.VmProto.MsgRun.class, com.gno.vm.VmProto.MsgRun.Builder.class); + } + + // Construct using com.gno.vm.VmProto.MsgRun.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + caller_ = ""; + send_ = ""; + package_ = null; + if (packageBuilder_ != null) { + packageBuilder_.dispose(); + packageBuilder_ = null; + } + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.gno.vm.VmProto.internal_static_gno_vm_MsgRun_descriptor; + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgRun getDefaultInstanceForType() { + return com.gno.vm.VmProto.MsgRun.getDefaultInstance(); + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgRun build() { + com.gno.vm.VmProto.MsgRun result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgRun buildPartial() { + com.gno.vm.VmProto.MsgRun result = new com.gno.vm.VmProto.MsgRun(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.gno.vm.VmProto.MsgRun result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.caller_ = caller_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.send_ = send_; + } + if (((from_bitField0_ & 0x00000004) != 0)) { + result.package_ = packageBuilder_ == null + ? package_ + : packageBuilder_.build(); + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.gno.vm.VmProto.MsgRun) { + return mergeFrom((com.gno.vm.VmProto.MsgRun)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.gno.vm.VmProto.MsgRun other) { + if (other == com.gno.vm.VmProto.MsgRun.getDefaultInstance()) return this; + if (!other.getCaller().isEmpty()) { + caller_ = other.caller_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getSend().isEmpty()) { + send_ = other.send_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (other.hasPackage()) { + mergePackage(other.getPackage()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + caller_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + send_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + input.readMessage( + getPackageFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000004; + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object caller_ = ""; + /** + *
+       * the bech32 address of the caller
+       * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The caller. + */ + public java.lang.String getCaller() { + java.lang.Object ref = caller_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + caller_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the bech32 address of the caller
+       * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return The bytes for caller. + */ + public com.google.protobuf.ByteString + getCallerBytes() { + java.lang.Object ref = caller_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + caller_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the bech32 address of the caller
+       * 
+ * + * string caller = 1 [json_name = "caller"]; + * @param value The caller to set. + * @return This builder for chaining. + */ + public Builder setCaller( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + caller_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * the bech32 address of the caller
+       * 
+ * + * string caller = 1 [json_name = "caller"]; + * @return This builder for chaining. + */ + public Builder clearCaller() { + caller_ = getDefaultInstance().getCaller(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * the bech32 address of the caller
+       * 
+ * + * string caller = 1 [json_name = "caller"]; + * @param value The bytes for caller to set. + * @return This builder for chaining. + */ + public Builder setCallerBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + caller_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object send_ = ""; + /** + *
+       * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+       * 
+ * + * string send = 2 [json_name = "send"]; + * @return The send. + */ + public java.lang.String getSend() { + java.lang.Object ref = send_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + send_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+       * 
+ * + * string send = 2 [json_name = "send"]; + * @return The bytes for send. + */ + public com.google.protobuf.ByteString + getSendBytes() { + java.lang.Object ref = send_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + send_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+       * 
+ * + * string send = 2 [json_name = "send"]; + * @param value The send to set. + * @return This builder for chaining. + */ + public Builder setSend( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + send_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+       * 
+ * + * string send = 2 [json_name = "send"]; + * @return This builder for chaining. + */ + public Builder clearSend() { + send_ = getDefaultInstance().getSend(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * the amount of funds to be deposited to the package, if any ("<amount><denomination>")
+       * 
+ * + * string send = 2 [json_name = "send"]; + * @param value The bytes for send to set. + * @return This builder for chaining. + */ + public Builder setSendBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + send_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private com.gno.vm.VmProto.MemPackage package_; + private com.google.protobuf.SingleFieldBuilderV3< + com.gno.vm.VmProto.MemPackage, com.gno.vm.VmProto.MemPackage.Builder, com.gno.vm.VmProto.MemPackageOrBuilder> packageBuilder_; + /** + *
+       * the package being executed
+       * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + * @return Whether the package field is set. + */ + public boolean hasPackage() { + return ((bitField0_ & 0x00000004) != 0); + } + /** + *
+       * the package being executed
+       * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + * @return The package. + */ + public com.gno.vm.VmProto.MemPackage getPackage() { + if (packageBuilder_ == null) { + return package_ == null ? com.gno.vm.VmProto.MemPackage.getDefaultInstance() : package_; + } else { + return packageBuilder_.getMessage(); + } + } + /** + *
+       * the package being executed
+       * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + */ + public Builder setPackage(com.gno.vm.VmProto.MemPackage value) { + if (packageBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + package_ = value; + } else { + packageBuilder_.setMessage(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * the package being executed
+       * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + */ + public Builder setPackage( + com.gno.vm.VmProto.MemPackage.Builder builderForValue) { + if (packageBuilder_ == null) { + package_ = builderForValue.build(); + } else { + packageBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * the package being executed
+       * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + */ + public Builder mergePackage(com.gno.vm.VmProto.MemPackage value) { + if (packageBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0) && + package_ != null && + package_ != com.gno.vm.VmProto.MemPackage.getDefaultInstance()) { + getPackageBuilder().mergeFrom(value); + } else { + package_ = value; + } + } else { + packageBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000004; + onChanged(); + return this; + } + /** + *
+       * the package being executed
+       * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + */ + public Builder clearPackage() { + bitField0_ = (bitField0_ & ~0x00000004); + package_ = null; + if (packageBuilder_ != null) { + packageBuilder_.dispose(); + packageBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * the package being executed
+       * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + */ + public com.gno.vm.VmProto.MemPackage.Builder getPackageBuilder() { + bitField0_ |= 0x00000004; + onChanged(); + return getPackageFieldBuilder().getBuilder(); + } + /** + *
+       * the package being executed
+       * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + */ + public com.gno.vm.VmProto.MemPackageOrBuilder getPackageOrBuilder() { + if (packageBuilder_ != null) { + return packageBuilder_.getMessageOrBuilder(); + } else { + return package_ == null ? + com.gno.vm.VmProto.MemPackage.getDefaultInstance() : package_; + } + } + /** + *
+       * the package being executed
+       * 
+ * + * .gno.vm.MemPackage package = 3 [json_name = "package"]; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.gno.vm.VmProto.MemPackage, com.gno.vm.VmProto.MemPackage.Builder, com.gno.vm.VmProto.MemPackageOrBuilder> + getPackageFieldBuilder() { + if (packageBuilder_ == null) { + packageBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.gno.vm.VmProto.MemPackage, com.gno.vm.VmProto.MemPackage.Builder, com.gno.vm.VmProto.MemPackageOrBuilder>( + getPackage(), + getParentForChildren(), + isClean()); + package_ = null; + } + return packageBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:gno.vm.MsgRun) + } + + // @@protoc_insertion_point(class_scope:gno.vm.MsgRun) + private static final com.gno.vm.VmProto.MsgRun DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.gno.vm.VmProto.MsgRun(); + } + + public static com.gno.vm.VmProto.MsgRun getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MsgRun parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.gno.vm.VmProto.MsgRun getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface MemPackageOrBuilder extends + // @@protoc_insertion_point(interface_extends:gno.vm.MemPackage) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * the name of the package
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The name. + */ + java.lang.String getName(); + /** + *
+     * the name of the package
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + *
+     * the gno path of the package
+     * 
+ * + * string path = 2 [json_name = "path"]; + * @return The path. + */ + java.lang.String getPath(); + /** + *
+     * the gno path of the package
+     * 
+ * + * string path = 2 [json_name = "path"]; + * @return The bytes for path. + */ + com.google.protobuf.ByteString + getPathBytes(); + + /** + *
+     * the associated package gno source
+     * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + java.util.List + getFilesList(); + /** + *
+     * the associated package gno source
+     * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + com.gno.vm.VmProto.MemFile getFiles(int index); + /** + *
+     * the associated package gno source
+     * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + int getFilesCount(); + /** + *
+     * the associated package gno source
+     * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + java.util.List + getFilesOrBuilderList(); + /** + *
+     * the associated package gno source
+     * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + com.gno.vm.VmProto.MemFileOrBuilder getFilesOrBuilder( + int index); + } + /** + *
+   * MemPackage is the metadata information tied to
+   * package / realm deployment
+   * 
+ * + * Protobuf type {@code gno.vm.MemPackage} + */ + public static final class MemPackage extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:gno.vm.MemPackage) + MemPackageOrBuilder { + private static final long serialVersionUID = 0L; + // Use MemPackage.newBuilder() to construct. + private MemPackage(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MemPackage() { + name_ = ""; + path_ = ""; + files_ = java.util.Collections.emptyList(); + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MemPackage(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.vm.VmProto.internal_static_gno_vm_MemPackage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.vm.VmProto.internal_static_gno_vm_MemPackage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.vm.VmProto.MemPackage.class, com.gno.vm.VmProto.MemPackage.Builder.class); + } + + public static final int NAME_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** + *
+     * the name of the package
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + *
+     * the name of the package
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int PATH_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object path_ = ""; + /** + *
+     * the gno path of the package
+     * 
+ * + * string path = 2 [json_name = "path"]; + * @return The path. + */ + @java.lang.Override + public java.lang.String getPath() { + java.lang.Object ref = path_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + path_ = s; + return s; + } + } + /** + *
+     * the gno path of the package
+     * 
+ * + * string path = 2 [json_name = "path"]; + * @return The bytes for path. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getPathBytes() { + java.lang.Object ref = path_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + path_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int FILES_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private java.util.List files_; + /** + *
+     * the associated package gno source
+     * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + @java.lang.Override + public java.util.List getFilesList() { + return files_; + } + /** + *
+     * the associated package gno source
+     * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + @java.lang.Override + public java.util.List + getFilesOrBuilderList() { + return files_; + } + /** + *
+     * the associated package gno source
+     * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + @java.lang.Override + public int getFilesCount() { + return files_.size(); + } + /** + *
+     * the associated package gno source
+     * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + @java.lang.Override + public com.gno.vm.VmProto.MemFile getFiles(int index) { + return files_.get(index); + } + /** + *
+     * the associated package gno source
+     * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + @java.lang.Override + public com.gno.vm.VmProto.MemFileOrBuilder getFilesOrBuilder( + int index) { + return files_.get(index); + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(path_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, path_); + } + for (int i = 0; i < files_.size(); i++) { + output.writeMessage(3, files_.get(i)); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(path_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, path_); + } + for (int i = 0; i < files_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, files_.get(i)); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.gno.vm.VmProto.MemPackage)) { + return super.equals(obj); + } + com.gno.vm.VmProto.MemPackage other = (com.gno.vm.VmProto.MemPackage) obj; + + if (!getName() + .equals(other.getName())) return false; + if (!getPath() + .equals(other.getPath())) return false; + if (!getFilesList() + .equals(other.getFilesList())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + PATH_FIELD_NUMBER; + hash = (53 * hash) + getPath().hashCode(); + if (getFilesCount() > 0) { + hash = (37 * hash) + FILES_FIELD_NUMBER; + hash = (53 * hash) + getFilesList().hashCode(); + } + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.gno.vm.VmProto.MemPackage parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MemPackage parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MemPackage parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MemPackage parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MemPackage parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MemPackage parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MemPackage parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.vm.VmProto.MemPackage parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.gno.vm.VmProto.MemPackage parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.gno.vm.VmProto.MemPackage parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.gno.vm.VmProto.MemPackage parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.vm.VmProto.MemPackage parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.gno.vm.VmProto.MemPackage prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * MemPackage is the metadata information tied to
+     * package / realm deployment
+     * 
+ * + * Protobuf type {@code gno.vm.MemPackage} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:gno.vm.MemPackage) + com.gno.vm.VmProto.MemPackageOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.vm.VmProto.internal_static_gno_vm_MemPackage_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.vm.VmProto.internal_static_gno_vm_MemPackage_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.vm.VmProto.MemPackage.class, com.gno.vm.VmProto.MemPackage.Builder.class); + } + + // Construct using com.gno.vm.VmProto.MemPackage.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + name_ = ""; + path_ = ""; + if (filesBuilder_ == null) { + files_ = java.util.Collections.emptyList(); + } else { + files_ = null; + filesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.gno.vm.VmProto.internal_static_gno_vm_MemPackage_descriptor; + } + + @java.lang.Override + public com.gno.vm.VmProto.MemPackage getDefaultInstanceForType() { + return com.gno.vm.VmProto.MemPackage.getDefaultInstance(); + } + + @java.lang.Override + public com.gno.vm.VmProto.MemPackage build() { + com.gno.vm.VmProto.MemPackage result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.gno.vm.VmProto.MemPackage buildPartial() { + com.gno.vm.VmProto.MemPackage result = new com.gno.vm.VmProto.MemPackage(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.gno.vm.VmProto.MemPackage result) { + if (filesBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + files_ = java.util.Collections.unmodifiableList(files_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.files_ = files_; + } else { + result.files_ = filesBuilder_.build(); + } + } + + private void buildPartial0(com.gno.vm.VmProto.MemPackage result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.path_ = path_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.gno.vm.VmProto.MemPackage) { + return mergeFrom((com.gno.vm.VmProto.MemPackage)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.gno.vm.VmProto.MemPackage other) { + if (other == com.gno.vm.VmProto.MemPackage.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getPath().isEmpty()) { + path_ = other.path_; + bitField0_ |= 0x00000002; + onChanged(); + } + if (filesBuilder_ == null) { + if (!other.files_.isEmpty()) { + if (files_.isEmpty()) { + files_ = other.files_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureFilesIsMutable(); + files_.addAll(other.files_); + } + onChanged(); + } + } else { + if (!other.files_.isEmpty()) { + if (filesBuilder_.isEmpty()) { + filesBuilder_.dispose(); + filesBuilder_ = null; + files_ = other.files_; + bitField0_ = (bitField0_ & ~0x00000004); + filesBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getFilesFieldBuilder() : null; + } else { + filesBuilder_.addAllMessages(other.files_); + } + } + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + path_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + com.gno.vm.VmProto.MemFile m = + input.readMessage( + com.gno.vm.VmProto.MemFile.parser(), + extensionRegistry); + if (filesBuilder_ == null) { + ensureFilesIsMutable(); + files_.add(m); + } else { + filesBuilder_.addMessage(m); + } + break; + } // case 26 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object name_ = ""; + /** + *
+       * the name of the package
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the name of the package
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the name of the package
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * the name of the package
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * the name of the package
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object path_ = ""; + /** + *
+       * the gno path of the package
+       * 
+ * + * string path = 2 [json_name = "path"]; + * @return The path. + */ + public java.lang.String getPath() { + java.lang.Object ref = path_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + path_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the gno path of the package
+       * 
+ * + * string path = 2 [json_name = "path"]; + * @return The bytes for path. + */ + public com.google.protobuf.ByteString + getPathBytes() { + java.lang.Object ref = path_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + path_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the gno path of the package
+       * 
+ * + * string path = 2 [json_name = "path"]; + * @param value The path to set. + * @return This builder for chaining. + */ + public Builder setPath( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + path_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * the gno path of the package
+       * 
+ * + * string path = 2 [json_name = "path"]; + * @return This builder for chaining. + */ + public Builder clearPath() { + path_ = getDefaultInstance().getPath(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * the gno path of the package
+       * 
+ * + * string path = 2 [json_name = "path"]; + * @param value The bytes for path to set. + * @return This builder for chaining. + */ + public Builder setPathBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + path_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + + private java.util.List files_ = + java.util.Collections.emptyList(); + private void ensureFilesIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + files_ = new java.util.ArrayList(files_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.gno.vm.VmProto.MemFile, com.gno.vm.VmProto.MemFile.Builder, com.gno.vm.VmProto.MemFileOrBuilder> filesBuilder_; + + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public java.util.List getFilesList() { + if (filesBuilder_ == null) { + return java.util.Collections.unmodifiableList(files_); + } else { + return filesBuilder_.getMessageList(); + } + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public int getFilesCount() { + if (filesBuilder_ == null) { + return files_.size(); + } else { + return filesBuilder_.getCount(); + } + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public com.gno.vm.VmProto.MemFile getFiles(int index) { + if (filesBuilder_ == null) { + return files_.get(index); + } else { + return filesBuilder_.getMessage(index); + } + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public Builder setFiles( + int index, com.gno.vm.VmProto.MemFile value) { + if (filesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureFilesIsMutable(); + files_.set(index, value); + onChanged(); + } else { + filesBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public Builder setFiles( + int index, com.gno.vm.VmProto.MemFile.Builder builderForValue) { + if (filesBuilder_ == null) { + ensureFilesIsMutable(); + files_.set(index, builderForValue.build()); + onChanged(); + } else { + filesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public Builder addFiles(com.gno.vm.VmProto.MemFile value) { + if (filesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureFilesIsMutable(); + files_.add(value); + onChanged(); + } else { + filesBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public Builder addFiles( + int index, com.gno.vm.VmProto.MemFile value) { + if (filesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureFilesIsMutable(); + files_.add(index, value); + onChanged(); + } else { + filesBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public Builder addFiles( + com.gno.vm.VmProto.MemFile.Builder builderForValue) { + if (filesBuilder_ == null) { + ensureFilesIsMutable(); + files_.add(builderForValue.build()); + onChanged(); + } else { + filesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public Builder addFiles( + int index, com.gno.vm.VmProto.MemFile.Builder builderForValue) { + if (filesBuilder_ == null) { + ensureFilesIsMutable(); + files_.add(index, builderForValue.build()); + onChanged(); + } else { + filesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public Builder addAllFiles( + java.lang.Iterable values) { + if (filesBuilder_ == null) { + ensureFilesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, files_); + onChanged(); + } else { + filesBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public Builder clearFiles() { + if (filesBuilder_ == null) { + files_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + filesBuilder_.clear(); + } + return this; + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public Builder removeFiles(int index) { + if (filesBuilder_ == null) { + ensureFilesIsMutable(); + files_.remove(index); + onChanged(); + } else { + filesBuilder_.remove(index); + } + return this; + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public com.gno.vm.VmProto.MemFile.Builder getFilesBuilder( + int index) { + return getFilesFieldBuilder().getBuilder(index); + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public com.gno.vm.VmProto.MemFileOrBuilder getFilesOrBuilder( + int index) { + if (filesBuilder_ == null) { + return files_.get(index); } else { + return filesBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public java.util.List + getFilesOrBuilderList() { + if (filesBuilder_ != null) { + return filesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(files_); + } + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public com.gno.vm.VmProto.MemFile.Builder addFilesBuilder() { + return getFilesFieldBuilder().addBuilder( + com.gno.vm.VmProto.MemFile.getDefaultInstance()); + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public com.gno.vm.VmProto.MemFile.Builder addFilesBuilder( + int index) { + return getFilesFieldBuilder().addBuilder( + index, com.gno.vm.VmProto.MemFile.getDefaultInstance()); + } + /** + *
+       * the associated package gno source
+       * 
+ * + * repeated .gno.vm.MemFile files = 3 [json_name = "files"]; + */ + public java.util.List + getFilesBuilderList() { + return getFilesFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + com.gno.vm.VmProto.MemFile, com.gno.vm.VmProto.MemFile.Builder, com.gno.vm.VmProto.MemFileOrBuilder> + getFilesFieldBuilder() { + if (filesBuilder_ == null) { + filesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + com.gno.vm.VmProto.MemFile, com.gno.vm.VmProto.MemFile.Builder, com.gno.vm.VmProto.MemFileOrBuilder>( + files_, + ((bitField0_ & 0x00000004) != 0), + getParentForChildren(), + isClean()); + files_ = null; + } + return filesBuilder_; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:gno.vm.MemPackage) + } + + // @@protoc_insertion_point(class_scope:gno.vm.MemPackage) + private static final com.gno.vm.VmProto.MemPackage DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.gno.vm.VmProto.MemPackage(); + } + + public static com.gno.vm.VmProto.MemPackage getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MemPackage parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.gno.vm.VmProto.MemPackage getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface MemFileOrBuilder extends + // @@protoc_insertion_point(interface_extends:gno.vm.MemFile) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * the name of the source gno file
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The name. + */ + java.lang.String getName(); + /** + *
+     * the name of the source gno file
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + com.google.protobuf.ByteString + getNameBytes(); + + /** + *
+     * the content of the source gno file
+     * 
+ * + * string body = 2 [json_name = "body"]; + * @return The body. + */ + java.lang.String getBody(); + /** + *
+     * the content of the source gno file
+     * 
+ * + * string body = 2 [json_name = "body"]; + * @return The bytes for body. + */ + com.google.protobuf.ByteString + getBodyBytes(); + } + /** + *
+   * MemFile is the metadata information tied to
+   * a single gno package / realm file
+   * 
+ * + * Protobuf type {@code gno.vm.MemFile} + */ + public static final class MemFile extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:gno.vm.MemFile) + MemFileOrBuilder { + private static final long serialVersionUID = 0L; + // Use MemFile.newBuilder() to construct. + private MemFile(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private MemFile() { + name_ = ""; + body_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new MemFile(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.vm.VmProto.internal_static_gno_vm_MemFile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.vm.VmProto.internal_static_gno_vm_MemFile_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.vm.VmProto.MemFile.class, com.gno.vm.VmProto.MemFile.Builder.class); + } + + public static final int NAME_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private volatile java.lang.Object name_ = ""; + /** + *
+     * the name of the source gno file
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The name. + */ + @java.lang.Override + public java.lang.String getName() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } + } + /** + *
+     * the name of the source gno file
+     * 
+ * + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + public static final int BODY_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object body_ = ""; + /** + *
+     * the content of the source gno file
+     * 
+ * + * string body = 2 [json_name = "body"]; + * @return The body. + */ + @java.lang.Override + public java.lang.String getBody() { + java.lang.Object ref = body_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + body_ = s; + return s; + } + } + /** + *
+     * the content of the source gno file
+     * 
+ * + * string body = 2 [json_name = "body"]; + * @return The bytes for body. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getBodyBytes() { + java.lang.Object ref = body_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + body_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 1, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(body_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, body_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(name_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, name_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(body_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, body_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.gno.vm.VmProto.MemFile)) { + return super.equals(obj); + } + com.gno.vm.VmProto.MemFile other = (com.gno.vm.VmProto.MemFile) obj; + + if (!getName() + .equals(other.getName())) return false; + if (!getBody() + .equals(other.getBody())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + NAME_FIELD_NUMBER; + hash = (53 * hash) + getName().hashCode(); + hash = (37 * hash) + BODY_FIELD_NUMBER; + hash = (53 * hash) + getBody().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.gno.vm.VmProto.MemFile parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MemFile parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MemFile parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MemFile parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MemFile parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.gno.vm.VmProto.MemFile parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.gno.vm.VmProto.MemFile parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.vm.VmProto.MemFile parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.gno.vm.VmProto.MemFile parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.gno.vm.VmProto.MemFile parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.gno.vm.VmProto.MemFile parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.gno.vm.VmProto.MemFile parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.gno.vm.VmProto.MemFile prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + *
+     * MemFile is the metadata information tied to
+     * a single gno package / realm file
+     * 
+ * + * Protobuf type {@code gno.vm.MemFile} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:gno.vm.MemFile) + com.gno.vm.VmProto.MemFileOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.gno.vm.VmProto.internal_static_gno_vm_MemFile_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.gno.vm.VmProto.internal_static_gno_vm_MemFile_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.gno.vm.VmProto.MemFile.class, com.gno.vm.VmProto.MemFile.Builder.class); + } + + // Construct using com.gno.vm.VmProto.MemFile.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + name_ = ""; + body_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.gno.vm.VmProto.internal_static_gno_vm_MemFile_descriptor; + } + + @java.lang.Override + public com.gno.vm.VmProto.MemFile getDefaultInstanceForType() { + return com.gno.vm.VmProto.MemFile.getDefaultInstance(); + } + + @java.lang.Override + public com.gno.vm.VmProto.MemFile build() { + com.gno.vm.VmProto.MemFile result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.gno.vm.VmProto.MemFile buildPartial() { + com.gno.vm.VmProto.MemFile result = new com.gno.vm.VmProto.MemFile(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.gno.vm.VmProto.MemFile result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.name_ = name_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.body_ = body_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.gno.vm.VmProto.MemFile) { + return mergeFrom((com.gno.vm.VmProto.MemFile)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.gno.vm.VmProto.MemFile other) { + if (other == com.gno.vm.VmProto.MemFile.getDefaultInstance()) return this; + if (!other.getName().isEmpty()) { + name_ = other.name_; + bitField0_ |= 0x00000001; + onChanged(); + } + if (!other.getBody().isEmpty()) { + body_ = other.body_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + name_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + body_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.lang.Object name_ = ""; + /** + *
+       * the name of the source gno file
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @return The name. + */ + public java.lang.String getName() { + java.lang.Object ref = name_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + name_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the name of the source gno file
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @return The bytes for name. + */ + public com.google.protobuf.ByteString + getNameBytes() { + java.lang.Object ref = name_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + name_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the name of the source gno file
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @param value The name to set. + * @return This builder for chaining. + */ + public Builder setName( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * the name of the source gno file
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @return This builder for chaining. + */ + public Builder clearName() { + name_ = getDefaultInstance().getName(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + return this; + } + /** + *
+       * the name of the source gno file
+       * 
+ * + * string name = 1 [json_name = "name"]; + * @param value The bytes for name to set. + * @return This builder for chaining. + */ + public Builder setNameBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + name_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + + private java.lang.Object body_ = ""; + /** + *
+       * the content of the source gno file
+       * 
+ * + * string body = 2 [json_name = "body"]; + * @return The body. + */ + public java.lang.String getBody() { + java.lang.Object ref = body_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + body_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * the content of the source gno file
+       * 
+ * + * string body = 2 [json_name = "body"]; + * @return The bytes for body. + */ + public com.google.protobuf.ByteString + getBodyBytes() { + java.lang.Object ref = body_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + body_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * the content of the source gno file
+       * 
+ * + * string body = 2 [json_name = "body"]; + * @param value The body to set. + * @return This builder for chaining. + */ + public Builder setBody( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + body_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * the content of the source gno file
+       * 
+ * + * string body = 2 [json_name = "body"]; + * @return This builder for chaining. + */ + public Builder clearBody() { + body_ = getDefaultInstance().getBody(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * the content of the source gno file
+       * 
+ * + * string body = 2 [json_name = "body"]; + * @param value The bytes for body to set. + * @return This builder for chaining. + */ + public Builder setBodyBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + body_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:gno.vm.MemFile) + } + + // @@protoc_insertion_point(class_scope:gno.vm.MemFile) + private static final com.gno.vm.VmProto.MemFile DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.gno.vm.VmProto.MemFile(); + } + + public static com.gno.vm.VmProto.MemFile getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public MemFile parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.gno.vm.VmProto.MemFile getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_gno_vm_MsgCall_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_gno_vm_MsgCall_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_gno_vm_MsgAddPackage_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_gno_vm_MsgAddPackage_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_gno_vm_MsgRun_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_gno_vm_MsgRun_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_gno_vm_MemPackage_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_gno_vm_MemPackage_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_gno_vm_MemFile_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_gno_vm_MemFile_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\014gno/vm.proto\022\006gno.vm\"x\n\007MsgCall\022\026\n\006cal" + + "ler\030\001 \001(\tR\006caller\022\022\n\004send\030\002 \001(\tR\004send\022\031\n" + + "\010pkg_path\030\003 \001(\tR\007pkgPath\022\022\n\004func\030\004 \001(\tR\004" + + "func\022\022\n\004args\030\005 \003(\tR\004args\"q\n\rMsgAddPackag" + + "e\022\030\n\007creator\030\001 \001(\tR\007creator\022,\n\007package\030\002" + + " \001(\0132\022.gno.vm.MemPackageR\007package\022\030\n\007dep" + + "osit\030\003 \001(\tR\007deposit\"b\n\006MsgRun\022\026\n\006caller\030" + + "\001 \001(\tR\006caller\022\022\n\004send\030\002 \001(\tR\004send\022,\n\007pac" + + "kage\030\003 \001(\0132\022.gno.vm.MemPackageR\007package\"" + + "[\n\nMemPackage\022\022\n\004name\030\001 \001(\tR\004name\022\022\n\004pat" + + "h\030\002 \001(\tR\004path\022%\n\005files\030\003 \003(\0132\017.gno.vm.Me" + + "mFileR\005files\"1\n\007MemFile\022\022\n\004name\030\001 \001(\tR\004n" + + "ame\022\022\n\004body\030\002 \001(\tR\004bodyBL\n\ncom.gno.vmB\007V" + + "mProto\242\002\003GVX\252\002\006Gno.Vm\312\002\006Gno\\Vm\342\002\022Gno\\Vm\\" + + "GPBMetadata\352\002\007Gno::Vmb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + }); + internal_static_gno_vm_MsgCall_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_gno_vm_MsgCall_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_gno_vm_MsgCall_descriptor, + new java.lang.String[] { "Caller", "Send", "PkgPath", "Func", "Args", }); + internal_static_gno_vm_MsgAddPackage_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_gno_vm_MsgAddPackage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_gno_vm_MsgAddPackage_descriptor, + new java.lang.String[] { "Creator", "Package", "Deposit", }); + internal_static_gno_vm_MsgRun_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_gno_vm_MsgRun_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_gno_vm_MsgRun_descriptor, + new java.lang.String[] { "Caller", "Send", "Package", }); + internal_static_gno_vm_MemPackage_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_gno_vm_MemPackage_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_gno_vm_MemPackage_descriptor, + new java.lang.String[] { "Name", "Path", "Files", }); + internal_static_gno_vm_MemFile_descriptor = + getDescriptor().getMessageTypes().get(4); + internal_static_gno_vm_MemFile_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_gno_vm_MemFile_descriptor, + new java.lang.String[] { "Name", "Body", }); + } + + // @@protoc_insertion_point(outer_class_scope) +} diff --git a/proto/src/main/java/com/tm2/tx/TxProto.java b/proto/src/main/java/com/tm2/tx/TxProto.java new file mode 100644 index 000000000..61fa875a5 --- /dev/null +++ b/proto/src/main/java/com/tm2/tx/TxProto.java @@ -0,0 +1,3824 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: tm2/tx.proto + +package com.tm2.tx; + +public final class TxProto { + private TxProto() {} + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistryLite registry) { + } + + public static void registerAllExtensions( + com.google.protobuf.ExtensionRegistry registry) { + registerAllExtensions( + (com.google.protobuf.ExtensionRegistryLite) registry); + } + public interface TxOrBuilder extends + // @@protoc_insertion_point(interface_extends:tm2.tx.Tx) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * specific message types
+     * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + java.util.List + getMessagesList(); + /** + *
+     * specific message types
+     * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + com.google.protobuf.Any getMessages(int index); + /** + *
+     * specific message types
+     * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + int getMessagesCount(); + /** + *
+     * specific message types
+     * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + java.util.List + getMessagesOrBuilderList(); + /** + *
+     * specific message types
+     * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + com.google.protobuf.AnyOrBuilder getMessagesOrBuilder( + int index); + + /** + *
+     * transaction costs (fee)
+     * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + * @return Whether the fee field is set. + */ + boolean hasFee(); + /** + *
+     * transaction costs (fee)
+     * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + * @return The fee. + */ + com.tm2.tx.TxProto.TxFee getFee(); + /** + *
+     * transaction costs (fee)
+     * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + */ + com.tm2.tx.TxProto.TxFeeOrBuilder getFeeOrBuilder(); + + /** + *
+     * the signatures for the transaction
+     * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + java.util.List + getSignaturesList(); + /** + *
+     * the signatures for the transaction
+     * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + com.tm2.tx.TxProto.TxSignature getSignatures(int index); + /** + *
+     * the signatures for the transaction
+     * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + int getSignaturesCount(); + /** + *
+     * the signatures for the transaction
+     * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + java.util.List + getSignaturesOrBuilderList(); + /** + *
+     * the signatures for the transaction
+     * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + com.tm2.tx.TxProto.TxSignatureOrBuilder getSignaturesOrBuilder( + int index); + + /** + *
+     * memo attached to the transaction
+     * 
+ * + * string memo = 4 [json_name = "memo"]; + * @return The memo. + */ + java.lang.String getMemo(); + /** + *
+     * memo attached to the transaction
+     * 
+ * + * string memo = 4 [json_name = "memo"]; + * @return The bytes for memo. + */ + com.google.protobuf.ByteString + getMemoBytes(); + } + /** + * Protobuf type {@code tm2.tx.Tx} + */ + public static final class Tx extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tm2.tx.Tx) + TxOrBuilder { + private static final long serialVersionUID = 0L; + // Use Tx.newBuilder() to construct. + private Tx(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private Tx() { + messages_ = java.util.Collections.emptyList(); + signatures_ = java.util.Collections.emptyList(); + memo_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new Tx(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_Tx_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_Tx_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.tm2.tx.TxProto.Tx.class, com.tm2.tx.TxProto.Tx.Builder.class); + } + + public static final int MESSAGES_FIELD_NUMBER = 1; + @SuppressWarnings("serial") + private java.util.List messages_; + /** + *
+     * specific message types
+     * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + @java.lang.Override + public java.util.List getMessagesList() { + return messages_; + } + /** + *
+     * specific message types
+     * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + @java.lang.Override + public java.util.List + getMessagesOrBuilderList() { + return messages_; + } + /** + *
+     * specific message types
+     * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + @java.lang.Override + public int getMessagesCount() { + return messages_.size(); + } + /** + *
+     * specific message types
+     * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + @java.lang.Override + public com.google.protobuf.Any getMessages(int index) { + return messages_.get(index); + } + /** + *
+     * specific message types
+     * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + @java.lang.Override + public com.google.protobuf.AnyOrBuilder getMessagesOrBuilder( + int index) { + return messages_.get(index); + } + + public static final int FEE_FIELD_NUMBER = 2; + private com.tm2.tx.TxProto.TxFee fee_; + /** + *
+     * transaction costs (fee)
+     * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + * @return Whether the fee field is set. + */ + @java.lang.Override + public boolean hasFee() { + return fee_ != null; + } + /** + *
+     * transaction costs (fee)
+     * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + * @return The fee. + */ + @java.lang.Override + public com.tm2.tx.TxProto.TxFee getFee() { + return fee_ == null ? com.tm2.tx.TxProto.TxFee.getDefaultInstance() : fee_; + } + /** + *
+     * transaction costs (fee)
+     * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + */ + @java.lang.Override + public com.tm2.tx.TxProto.TxFeeOrBuilder getFeeOrBuilder() { + return fee_ == null ? com.tm2.tx.TxProto.TxFee.getDefaultInstance() : fee_; + } + + public static final int SIGNATURES_FIELD_NUMBER = 3; + @SuppressWarnings("serial") + private java.util.List signatures_; + /** + *
+     * the signatures for the transaction
+     * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + @java.lang.Override + public java.util.List getSignaturesList() { + return signatures_; + } + /** + *
+     * the signatures for the transaction
+     * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + @java.lang.Override + public java.util.List + getSignaturesOrBuilderList() { + return signatures_; + } + /** + *
+     * the signatures for the transaction
+     * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + @java.lang.Override + public int getSignaturesCount() { + return signatures_.size(); + } + /** + *
+     * the signatures for the transaction
+     * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + @java.lang.Override + public com.tm2.tx.TxProto.TxSignature getSignatures(int index) { + return signatures_.get(index); + } + /** + *
+     * the signatures for the transaction
+     * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + @java.lang.Override + public com.tm2.tx.TxProto.TxSignatureOrBuilder getSignaturesOrBuilder( + int index) { + return signatures_.get(index); + } + + public static final int MEMO_FIELD_NUMBER = 4; + @SuppressWarnings("serial") + private volatile java.lang.Object memo_ = ""; + /** + *
+     * memo attached to the transaction
+     * 
+ * + * string memo = 4 [json_name = "memo"]; + * @return The memo. + */ + @java.lang.Override + public java.lang.String getMemo() { + java.lang.Object ref = memo_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + memo_ = s; + return s; + } + } + /** + *
+     * memo attached to the transaction
+     * 
+ * + * string memo = 4 [json_name = "memo"]; + * @return The bytes for memo. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getMemoBytes() { + java.lang.Object ref = memo_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + memo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + for (int i = 0; i < messages_.size(); i++) { + output.writeMessage(1, messages_.get(i)); + } + if (fee_ != null) { + output.writeMessage(2, getFee()); + } + for (int i = 0; i < signatures_.size(); i++) { + output.writeMessage(3, signatures_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(memo_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 4, memo_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + for (int i = 0; i < messages_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, messages_.get(i)); + } + if (fee_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(2, getFee()); + } + for (int i = 0; i < signatures_.size(); i++) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(3, signatures_.get(i)); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(memo_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, memo_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.tm2.tx.TxProto.Tx)) { + return super.equals(obj); + } + com.tm2.tx.TxProto.Tx other = (com.tm2.tx.TxProto.Tx) obj; + + if (!getMessagesList() + .equals(other.getMessagesList())) return false; + if (hasFee() != other.hasFee()) return false; + if (hasFee()) { + if (!getFee() + .equals(other.getFee())) return false; + } + if (!getSignaturesList() + .equals(other.getSignaturesList())) return false; + if (!getMemo() + .equals(other.getMemo())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (getMessagesCount() > 0) { + hash = (37 * hash) + MESSAGES_FIELD_NUMBER; + hash = (53 * hash) + getMessagesList().hashCode(); + } + if (hasFee()) { + hash = (37 * hash) + FEE_FIELD_NUMBER; + hash = (53 * hash) + getFee().hashCode(); + } + if (getSignaturesCount() > 0) { + hash = (37 * hash) + SIGNATURES_FIELD_NUMBER; + hash = (53 * hash) + getSignaturesList().hashCode(); + } + hash = (37 * hash) + MEMO_FIELD_NUMBER; + hash = (53 * hash) + getMemo().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.tm2.tx.TxProto.Tx parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.Tx parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.Tx parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.Tx parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.Tx parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.Tx parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.Tx parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.tm2.tx.TxProto.Tx parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.tm2.tx.TxProto.Tx parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.tm2.tx.TxProto.Tx parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.tm2.tx.TxProto.Tx parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.tm2.tx.TxProto.Tx parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.tm2.tx.TxProto.Tx prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tm2.tx.Tx} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tm2.tx.Tx) + com.tm2.tx.TxProto.TxOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_Tx_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_Tx_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.tm2.tx.TxProto.Tx.class, com.tm2.tx.TxProto.Tx.Builder.class); + } + + // Construct using com.tm2.tx.TxProto.Tx.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + if (messagesBuilder_ == null) { + messages_ = java.util.Collections.emptyList(); + } else { + messages_ = null; + messagesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000001); + fee_ = null; + if (feeBuilder_ != null) { + feeBuilder_.dispose(); + feeBuilder_ = null; + } + if (signaturesBuilder_ == null) { + signatures_ = java.util.Collections.emptyList(); + } else { + signatures_ = null; + signaturesBuilder_.clear(); + } + bitField0_ = (bitField0_ & ~0x00000004); + memo_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_Tx_descriptor; + } + + @java.lang.Override + public com.tm2.tx.TxProto.Tx getDefaultInstanceForType() { + return com.tm2.tx.TxProto.Tx.getDefaultInstance(); + } + + @java.lang.Override + public com.tm2.tx.TxProto.Tx build() { + com.tm2.tx.TxProto.Tx result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.tm2.tx.TxProto.Tx buildPartial() { + com.tm2.tx.TxProto.Tx result = new com.tm2.tx.TxProto.Tx(this); + buildPartialRepeatedFields(result); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartialRepeatedFields(com.tm2.tx.TxProto.Tx result) { + if (messagesBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0)) { + messages_ = java.util.Collections.unmodifiableList(messages_); + bitField0_ = (bitField0_ & ~0x00000001); + } + result.messages_ = messages_; + } else { + result.messages_ = messagesBuilder_.build(); + } + if (signaturesBuilder_ == null) { + if (((bitField0_ & 0x00000004) != 0)) { + signatures_ = java.util.Collections.unmodifiableList(signatures_); + bitField0_ = (bitField0_ & ~0x00000004); + } + result.signatures_ = signatures_; + } else { + result.signatures_ = signaturesBuilder_.build(); + } + } + + private void buildPartial0(com.tm2.tx.TxProto.Tx result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000002) != 0)) { + result.fee_ = feeBuilder_ == null + ? fee_ + : feeBuilder_.build(); + } + if (((from_bitField0_ & 0x00000008) != 0)) { + result.memo_ = memo_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.tm2.tx.TxProto.Tx) { + return mergeFrom((com.tm2.tx.TxProto.Tx)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.tm2.tx.TxProto.Tx other) { + if (other == com.tm2.tx.TxProto.Tx.getDefaultInstance()) return this; + if (messagesBuilder_ == null) { + if (!other.messages_.isEmpty()) { + if (messages_.isEmpty()) { + messages_ = other.messages_; + bitField0_ = (bitField0_ & ~0x00000001); + } else { + ensureMessagesIsMutable(); + messages_.addAll(other.messages_); + } + onChanged(); + } + } else { + if (!other.messages_.isEmpty()) { + if (messagesBuilder_.isEmpty()) { + messagesBuilder_.dispose(); + messagesBuilder_ = null; + messages_ = other.messages_; + bitField0_ = (bitField0_ & ~0x00000001); + messagesBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getMessagesFieldBuilder() : null; + } else { + messagesBuilder_.addAllMessages(other.messages_); + } + } + } + if (other.hasFee()) { + mergeFee(other.getFee()); + } + if (signaturesBuilder_ == null) { + if (!other.signatures_.isEmpty()) { + if (signatures_.isEmpty()) { + signatures_ = other.signatures_; + bitField0_ = (bitField0_ & ~0x00000004); + } else { + ensureSignaturesIsMutable(); + signatures_.addAll(other.signatures_); + } + onChanged(); + } + } else { + if (!other.signatures_.isEmpty()) { + if (signaturesBuilder_.isEmpty()) { + signaturesBuilder_.dispose(); + signaturesBuilder_ = null; + signatures_ = other.signatures_; + bitField0_ = (bitField0_ & ~0x00000004); + signaturesBuilder_ = + com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ? + getSignaturesFieldBuilder() : null; + } else { + signaturesBuilder_.addAllMessages(other.signatures_); + } + } + } + if (!other.getMemo().isEmpty()) { + memo_ = other.memo_; + bitField0_ |= 0x00000008; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + com.google.protobuf.Any m = + input.readMessage( + com.google.protobuf.Any.parser(), + extensionRegistry); + if (messagesBuilder_ == null) { + ensureMessagesIsMutable(); + messages_.add(m); + } else { + messagesBuilder_.addMessage(m); + } + break; + } // case 10 + case 18: { + input.readMessage( + getFeeFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000002; + break; + } // case 18 + case 26: { + com.tm2.tx.TxProto.TxSignature m = + input.readMessage( + com.tm2.tx.TxProto.TxSignature.parser(), + extensionRegistry); + if (signaturesBuilder_ == null) { + ensureSignaturesIsMutable(); + signatures_.add(m); + } else { + signaturesBuilder_.addMessage(m); + } + break; + } // case 26 + case 34: { + memo_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000008; + break; + } // case 34 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private java.util.List messages_ = + java.util.Collections.emptyList(); + private void ensureMessagesIsMutable() { + if (!((bitField0_ & 0x00000001) != 0)) { + messages_ = new java.util.ArrayList(messages_); + bitField0_ |= 0x00000001; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> messagesBuilder_; + + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public java.util.List getMessagesList() { + if (messagesBuilder_ == null) { + return java.util.Collections.unmodifiableList(messages_); + } else { + return messagesBuilder_.getMessageList(); + } + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public int getMessagesCount() { + if (messagesBuilder_ == null) { + return messages_.size(); + } else { + return messagesBuilder_.getCount(); + } + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public com.google.protobuf.Any getMessages(int index) { + if (messagesBuilder_ == null) { + return messages_.get(index); + } else { + return messagesBuilder_.getMessage(index); + } + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public Builder setMessages( + int index, com.google.protobuf.Any value) { + if (messagesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessagesIsMutable(); + messages_.set(index, value); + onChanged(); + } else { + messagesBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public Builder setMessages( + int index, com.google.protobuf.Any.Builder builderForValue) { + if (messagesBuilder_ == null) { + ensureMessagesIsMutable(); + messages_.set(index, builderForValue.build()); + onChanged(); + } else { + messagesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public Builder addMessages(com.google.protobuf.Any value) { + if (messagesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessagesIsMutable(); + messages_.add(value); + onChanged(); + } else { + messagesBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public Builder addMessages( + int index, com.google.protobuf.Any value) { + if (messagesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureMessagesIsMutable(); + messages_.add(index, value); + onChanged(); + } else { + messagesBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public Builder addMessages( + com.google.protobuf.Any.Builder builderForValue) { + if (messagesBuilder_ == null) { + ensureMessagesIsMutable(); + messages_.add(builderForValue.build()); + onChanged(); + } else { + messagesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public Builder addMessages( + int index, com.google.protobuf.Any.Builder builderForValue) { + if (messagesBuilder_ == null) { + ensureMessagesIsMutable(); + messages_.add(index, builderForValue.build()); + onChanged(); + } else { + messagesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public Builder addAllMessages( + java.lang.Iterable values) { + if (messagesBuilder_ == null) { + ensureMessagesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, messages_); + onChanged(); + } else { + messagesBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public Builder clearMessages() { + if (messagesBuilder_ == null) { + messages_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000001); + onChanged(); + } else { + messagesBuilder_.clear(); + } + return this; + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public Builder removeMessages(int index) { + if (messagesBuilder_ == null) { + ensureMessagesIsMutable(); + messages_.remove(index); + onChanged(); + } else { + messagesBuilder_.remove(index); + } + return this; + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public com.google.protobuf.Any.Builder getMessagesBuilder( + int index) { + return getMessagesFieldBuilder().getBuilder(index); + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public com.google.protobuf.AnyOrBuilder getMessagesOrBuilder( + int index) { + if (messagesBuilder_ == null) { + return messages_.get(index); } else { + return messagesBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public java.util.List + getMessagesOrBuilderList() { + if (messagesBuilder_ != null) { + return messagesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(messages_); + } + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public com.google.protobuf.Any.Builder addMessagesBuilder() { + return getMessagesFieldBuilder().addBuilder( + com.google.protobuf.Any.getDefaultInstance()); + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public com.google.protobuf.Any.Builder addMessagesBuilder( + int index) { + return getMessagesFieldBuilder().addBuilder( + index, com.google.protobuf.Any.getDefaultInstance()); + } + /** + *
+       * specific message types
+       * 
+ * + * repeated .google.protobuf.Any messages = 1 [json_name = "messages"]; + */ + public java.util.List + getMessagesBuilderList() { + return getMessagesFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> + getMessagesFieldBuilder() { + if (messagesBuilder_ == null) { + messagesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder>( + messages_, + ((bitField0_ & 0x00000001) != 0), + getParentForChildren(), + isClean()); + messages_ = null; + } + return messagesBuilder_; + } + + private com.tm2.tx.TxProto.TxFee fee_; + private com.google.protobuf.SingleFieldBuilderV3< + com.tm2.tx.TxProto.TxFee, com.tm2.tx.TxProto.TxFee.Builder, com.tm2.tx.TxProto.TxFeeOrBuilder> feeBuilder_; + /** + *
+       * transaction costs (fee)
+       * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + * @return Whether the fee field is set. + */ + public boolean hasFee() { + return ((bitField0_ & 0x00000002) != 0); + } + /** + *
+       * transaction costs (fee)
+       * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + * @return The fee. + */ + public com.tm2.tx.TxProto.TxFee getFee() { + if (feeBuilder_ == null) { + return fee_ == null ? com.tm2.tx.TxProto.TxFee.getDefaultInstance() : fee_; + } else { + return feeBuilder_.getMessage(); + } + } + /** + *
+       * transaction costs (fee)
+       * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + */ + public Builder setFee(com.tm2.tx.TxProto.TxFee value) { + if (feeBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + fee_ = value; + } else { + feeBuilder_.setMessage(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * transaction costs (fee)
+       * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + */ + public Builder setFee( + com.tm2.tx.TxProto.TxFee.Builder builderForValue) { + if (feeBuilder_ == null) { + fee_ = builderForValue.build(); + } else { + feeBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * transaction costs (fee)
+       * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + */ + public Builder mergeFee(com.tm2.tx.TxProto.TxFee value) { + if (feeBuilder_ == null) { + if (((bitField0_ & 0x00000002) != 0) && + fee_ != null && + fee_ != com.tm2.tx.TxProto.TxFee.getDefaultInstance()) { + getFeeBuilder().mergeFrom(value); + } else { + fee_ = value; + } + } else { + feeBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * transaction costs (fee)
+       * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + */ + public Builder clearFee() { + bitField0_ = (bitField0_ & ~0x00000002); + fee_ = null; + if (feeBuilder_ != null) { + feeBuilder_.dispose(); + feeBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * transaction costs (fee)
+       * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + */ + public com.tm2.tx.TxProto.TxFee.Builder getFeeBuilder() { + bitField0_ |= 0x00000002; + onChanged(); + return getFeeFieldBuilder().getBuilder(); + } + /** + *
+       * transaction costs (fee)
+       * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + */ + public com.tm2.tx.TxProto.TxFeeOrBuilder getFeeOrBuilder() { + if (feeBuilder_ != null) { + return feeBuilder_.getMessageOrBuilder(); + } else { + return fee_ == null ? + com.tm2.tx.TxProto.TxFee.getDefaultInstance() : fee_; + } + } + /** + *
+       * transaction costs (fee)
+       * 
+ * + * .tm2.tx.TxFee fee = 2 [json_name = "fee"]; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.tm2.tx.TxProto.TxFee, com.tm2.tx.TxProto.TxFee.Builder, com.tm2.tx.TxProto.TxFeeOrBuilder> + getFeeFieldBuilder() { + if (feeBuilder_ == null) { + feeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.tm2.tx.TxProto.TxFee, com.tm2.tx.TxProto.TxFee.Builder, com.tm2.tx.TxProto.TxFeeOrBuilder>( + getFee(), + getParentForChildren(), + isClean()); + fee_ = null; + } + return feeBuilder_; + } + + private java.util.List signatures_ = + java.util.Collections.emptyList(); + private void ensureSignaturesIsMutable() { + if (!((bitField0_ & 0x00000004) != 0)) { + signatures_ = new java.util.ArrayList(signatures_); + bitField0_ |= 0x00000004; + } + } + + private com.google.protobuf.RepeatedFieldBuilderV3< + com.tm2.tx.TxProto.TxSignature, com.tm2.tx.TxProto.TxSignature.Builder, com.tm2.tx.TxProto.TxSignatureOrBuilder> signaturesBuilder_; + + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public java.util.List getSignaturesList() { + if (signaturesBuilder_ == null) { + return java.util.Collections.unmodifiableList(signatures_); + } else { + return signaturesBuilder_.getMessageList(); + } + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public int getSignaturesCount() { + if (signaturesBuilder_ == null) { + return signatures_.size(); + } else { + return signaturesBuilder_.getCount(); + } + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public com.tm2.tx.TxProto.TxSignature getSignatures(int index) { + if (signaturesBuilder_ == null) { + return signatures_.get(index); + } else { + return signaturesBuilder_.getMessage(index); + } + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public Builder setSignatures( + int index, com.tm2.tx.TxProto.TxSignature value) { + if (signaturesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSignaturesIsMutable(); + signatures_.set(index, value); + onChanged(); + } else { + signaturesBuilder_.setMessage(index, value); + } + return this; + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public Builder setSignatures( + int index, com.tm2.tx.TxProto.TxSignature.Builder builderForValue) { + if (signaturesBuilder_ == null) { + ensureSignaturesIsMutable(); + signatures_.set(index, builderForValue.build()); + onChanged(); + } else { + signaturesBuilder_.setMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public Builder addSignatures(com.tm2.tx.TxProto.TxSignature value) { + if (signaturesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSignaturesIsMutable(); + signatures_.add(value); + onChanged(); + } else { + signaturesBuilder_.addMessage(value); + } + return this; + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public Builder addSignatures( + int index, com.tm2.tx.TxProto.TxSignature value) { + if (signaturesBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + ensureSignaturesIsMutable(); + signatures_.add(index, value); + onChanged(); + } else { + signaturesBuilder_.addMessage(index, value); + } + return this; + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public Builder addSignatures( + com.tm2.tx.TxProto.TxSignature.Builder builderForValue) { + if (signaturesBuilder_ == null) { + ensureSignaturesIsMutable(); + signatures_.add(builderForValue.build()); + onChanged(); + } else { + signaturesBuilder_.addMessage(builderForValue.build()); + } + return this; + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public Builder addSignatures( + int index, com.tm2.tx.TxProto.TxSignature.Builder builderForValue) { + if (signaturesBuilder_ == null) { + ensureSignaturesIsMutable(); + signatures_.add(index, builderForValue.build()); + onChanged(); + } else { + signaturesBuilder_.addMessage(index, builderForValue.build()); + } + return this; + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public Builder addAllSignatures( + java.lang.Iterable values) { + if (signaturesBuilder_ == null) { + ensureSignaturesIsMutable(); + com.google.protobuf.AbstractMessageLite.Builder.addAll( + values, signatures_); + onChanged(); + } else { + signaturesBuilder_.addAllMessages(values); + } + return this; + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public Builder clearSignatures() { + if (signaturesBuilder_ == null) { + signatures_ = java.util.Collections.emptyList(); + bitField0_ = (bitField0_ & ~0x00000004); + onChanged(); + } else { + signaturesBuilder_.clear(); + } + return this; + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public Builder removeSignatures(int index) { + if (signaturesBuilder_ == null) { + ensureSignaturesIsMutable(); + signatures_.remove(index); + onChanged(); + } else { + signaturesBuilder_.remove(index); + } + return this; + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public com.tm2.tx.TxProto.TxSignature.Builder getSignaturesBuilder( + int index) { + return getSignaturesFieldBuilder().getBuilder(index); + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public com.tm2.tx.TxProto.TxSignatureOrBuilder getSignaturesOrBuilder( + int index) { + if (signaturesBuilder_ == null) { + return signatures_.get(index); } else { + return signaturesBuilder_.getMessageOrBuilder(index); + } + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public java.util.List + getSignaturesOrBuilderList() { + if (signaturesBuilder_ != null) { + return signaturesBuilder_.getMessageOrBuilderList(); + } else { + return java.util.Collections.unmodifiableList(signatures_); + } + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public com.tm2.tx.TxProto.TxSignature.Builder addSignaturesBuilder() { + return getSignaturesFieldBuilder().addBuilder( + com.tm2.tx.TxProto.TxSignature.getDefaultInstance()); + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public com.tm2.tx.TxProto.TxSignature.Builder addSignaturesBuilder( + int index) { + return getSignaturesFieldBuilder().addBuilder( + index, com.tm2.tx.TxProto.TxSignature.getDefaultInstance()); + } + /** + *
+       * the signatures for the transaction
+       * 
+ * + * repeated .tm2.tx.TxSignature signatures = 3 [json_name = "signatures"]; + */ + public java.util.List + getSignaturesBuilderList() { + return getSignaturesFieldBuilder().getBuilderList(); + } + private com.google.protobuf.RepeatedFieldBuilderV3< + com.tm2.tx.TxProto.TxSignature, com.tm2.tx.TxProto.TxSignature.Builder, com.tm2.tx.TxProto.TxSignatureOrBuilder> + getSignaturesFieldBuilder() { + if (signaturesBuilder_ == null) { + signaturesBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3< + com.tm2.tx.TxProto.TxSignature, com.tm2.tx.TxProto.TxSignature.Builder, com.tm2.tx.TxProto.TxSignatureOrBuilder>( + signatures_, + ((bitField0_ & 0x00000004) != 0), + getParentForChildren(), + isClean()); + signatures_ = null; + } + return signaturesBuilder_; + } + + private java.lang.Object memo_ = ""; + /** + *
+       * memo attached to the transaction
+       * 
+ * + * string memo = 4 [json_name = "memo"]; + * @return The memo. + */ + public java.lang.String getMemo() { + java.lang.Object ref = memo_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + memo_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * memo attached to the transaction
+       * 
+ * + * string memo = 4 [json_name = "memo"]; + * @return The bytes for memo. + */ + public com.google.protobuf.ByteString + getMemoBytes() { + java.lang.Object ref = memo_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + memo_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * memo attached to the transaction
+       * 
+ * + * string memo = 4 [json_name = "memo"]; + * @param value The memo to set. + * @return This builder for chaining. + */ + public Builder setMemo( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + memo_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + /** + *
+       * memo attached to the transaction
+       * 
+ * + * string memo = 4 [json_name = "memo"]; + * @return This builder for chaining. + */ + public Builder clearMemo() { + memo_ = getDefaultInstance().getMemo(); + bitField0_ = (bitField0_ & ~0x00000008); + onChanged(); + return this; + } + /** + *
+       * memo attached to the transaction
+       * 
+ * + * string memo = 4 [json_name = "memo"]; + * @param value The bytes for memo to set. + * @return This builder for chaining. + */ + public Builder setMemoBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + memo_ = value; + bitField0_ |= 0x00000008; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tm2.tx.Tx) + } + + // @@protoc_insertion_point(class_scope:tm2.tx.Tx) + private static final com.tm2.tx.TxProto.Tx DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.tm2.tx.TxProto.Tx(); + } + + public static com.tm2.tx.TxProto.Tx getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public Tx parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.tm2.tx.TxProto.Tx getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TxFeeOrBuilder extends + // @@protoc_insertion_point(interface_extends:tm2.tx.TxFee) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * gas limit
+     * 
+ * + * sint64 gas_wanted = 1 [json_name = "gasWanted"]; + * @return The gasWanted. + */ + long getGasWanted(); + + /** + *
+     * gas fee details (<value><denomination>)
+     * 
+ * + * string gas_fee = 2 [json_name = "gasFee"]; + * @return The gasFee. + */ + java.lang.String getGasFee(); + /** + *
+     * gas fee details (<value><denomination>)
+     * 
+ * + * string gas_fee = 2 [json_name = "gasFee"]; + * @return The bytes for gasFee. + */ + com.google.protobuf.ByteString + getGasFeeBytes(); + } + /** + * Protobuf type {@code tm2.tx.TxFee} + */ + public static final class TxFee extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tm2.tx.TxFee) + TxFeeOrBuilder { + private static final long serialVersionUID = 0L; + // Use TxFee.newBuilder() to construct. + private TxFee(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TxFee() { + gasFee_ = ""; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TxFee(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_TxFee_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_TxFee_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.tm2.tx.TxProto.TxFee.class, com.tm2.tx.TxProto.TxFee.Builder.class); + } + + public static final int GAS_WANTED_FIELD_NUMBER = 1; + private long gasWanted_ = 0L; + /** + *
+     * gas limit
+     * 
+ * + * sint64 gas_wanted = 1 [json_name = "gasWanted"]; + * @return The gasWanted. + */ + @java.lang.Override + public long getGasWanted() { + return gasWanted_; + } + + public static final int GAS_FEE_FIELD_NUMBER = 2; + @SuppressWarnings("serial") + private volatile java.lang.Object gasFee_ = ""; + /** + *
+     * gas fee details (<value><denomination>)
+     * 
+ * + * string gas_fee = 2 [json_name = "gasFee"]; + * @return The gasFee. + */ + @java.lang.Override + public java.lang.String getGasFee() { + java.lang.Object ref = gasFee_; + if (ref instanceof java.lang.String) { + return (java.lang.String) ref; + } else { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gasFee_ = s; + return s; + } + } + /** + *
+     * gas fee details (<value><denomination>)
+     * 
+ * + * string gas_fee = 2 [json_name = "gasFee"]; + * @return The bytes for gasFee. + */ + @java.lang.Override + public com.google.protobuf.ByteString + getGasFeeBytes() { + java.lang.Object ref = gasFee_; + if (ref instanceof java.lang.String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + gasFee_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (gasWanted_ != 0L) { + output.writeSInt64(1, gasWanted_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gasFee_)) { + com.google.protobuf.GeneratedMessageV3.writeString(output, 2, gasFee_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (gasWanted_ != 0L) { + size += com.google.protobuf.CodedOutputStream + .computeSInt64Size(1, gasWanted_); + } + if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(gasFee_)) { + size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, gasFee_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.tm2.tx.TxProto.TxFee)) { + return super.equals(obj); + } + com.tm2.tx.TxProto.TxFee other = (com.tm2.tx.TxProto.TxFee) obj; + + if (getGasWanted() + != other.getGasWanted()) return false; + if (!getGasFee() + .equals(other.getGasFee())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + GAS_WANTED_FIELD_NUMBER; + hash = (53 * hash) + com.google.protobuf.Internal.hashLong( + getGasWanted()); + hash = (37 * hash) + GAS_FEE_FIELD_NUMBER; + hash = (53 * hash) + getGasFee().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.tm2.tx.TxProto.TxFee parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.TxFee parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.TxFee parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.TxFee parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.TxFee parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.TxFee parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.TxFee parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.tm2.tx.TxProto.TxFee parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.tm2.tx.TxProto.TxFee parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.tm2.tx.TxProto.TxFee parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.tm2.tx.TxProto.TxFee parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.tm2.tx.TxProto.TxFee parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.tm2.tx.TxProto.TxFee prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tm2.tx.TxFee} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tm2.tx.TxFee) + com.tm2.tx.TxProto.TxFeeOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_TxFee_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_TxFee_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.tm2.tx.TxProto.TxFee.class, com.tm2.tx.TxProto.TxFee.Builder.class); + } + + // Construct using com.tm2.tx.TxProto.TxFee.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + gasWanted_ = 0L; + gasFee_ = ""; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_TxFee_descriptor; + } + + @java.lang.Override + public com.tm2.tx.TxProto.TxFee getDefaultInstanceForType() { + return com.tm2.tx.TxProto.TxFee.getDefaultInstance(); + } + + @java.lang.Override + public com.tm2.tx.TxProto.TxFee build() { + com.tm2.tx.TxProto.TxFee result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.tm2.tx.TxProto.TxFee buildPartial() { + com.tm2.tx.TxProto.TxFee result = new com.tm2.tx.TxProto.TxFee(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.tm2.tx.TxProto.TxFee result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.gasWanted_ = gasWanted_; + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.gasFee_ = gasFee_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.tm2.tx.TxProto.TxFee) { + return mergeFrom((com.tm2.tx.TxProto.TxFee)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.tm2.tx.TxProto.TxFee other) { + if (other == com.tm2.tx.TxProto.TxFee.getDefaultInstance()) return this; + if (other.getGasWanted() != 0L) { + setGasWanted(other.getGasWanted()); + } + if (!other.getGasFee().isEmpty()) { + gasFee_ = other.gasFee_; + bitField0_ |= 0x00000002; + onChanged(); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 8: { + gasWanted_ = input.readSInt64(); + bitField0_ |= 0x00000001; + break; + } // case 8 + case 18: { + gasFee_ = input.readStringRequireUtf8(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private long gasWanted_ ; + /** + *
+       * gas limit
+       * 
+ * + * sint64 gas_wanted = 1 [json_name = "gasWanted"]; + * @return The gasWanted. + */ + @java.lang.Override + public long getGasWanted() { + return gasWanted_; + } + /** + *
+       * gas limit
+       * 
+ * + * sint64 gas_wanted = 1 [json_name = "gasWanted"]; + * @param value The gasWanted to set. + * @return This builder for chaining. + */ + public Builder setGasWanted(long value) { + + gasWanted_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * gas limit
+       * 
+ * + * sint64 gas_wanted = 1 [json_name = "gasWanted"]; + * @return This builder for chaining. + */ + public Builder clearGasWanted() { + bitField0_ = (bitField0_ & ~0x00000001); + gasWanted_ = 0L; + onChanged(); + return this; + } + + private java.lang.Object gasFee_ = ""; + /** + *
+       * gas fee details (<value><denomination>)
+       * 
+ * + * string gas_fee = 2 [json_name = "gasFee"]; + * @return The gasFee. + */ + public java.lang.String getGasFee() { + java.lang.Object ref = gasFee_; + if (!(ref instanceof java.lang.String)) { + com.google.protobuf.ByteString bs = + (com.google.protobuf.ByteString) ref; + java.lang.String s = bs.toStringUtf8(); + gasFee_ = s; + return s; + } else { + return (java.lang.String) ref; + } + } + /** + *
+       * gas fee details (<value><denomination>)
+       * 
+ * + * string gas_fee = 2 [json_name = "gasFee"]; + * @return The bytes for gasFee. + */ + public com.google.protobuf.ByteString + getGasFeeBytes() { + java.lang.Object ref = gasFee_; + if (ref instanceof String) { + com.google.protobuf.ByteString b = + com.google.protobuf.ByteString.copyFromUtf8( + (java.lang.String) ref); + gasFee_ = b; + return b; + } else { + return (com.google.protobuf.ByteString) ref; + } + } + /** + *
+       * gas fee details (<value><denomination>)
+       * 
+ * + * string gas_fee = 2 [json_name = "gasFee"]; + * @param value The gasFee to set. + * @return This builder for chaining. + */ + public Builder setGasFee( + java.lang.String value) { + if (value == null) { throw new NullPointerException(); } + gasFee_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * gas fee details (<value><denomination>)
+       * 
+ * + * string gas_fee = 2 [json_name = "gasFee"]; + * @return This builder for chaining. + */ + public Builder clearGasFee() { + gasFee_ = getDefaultInstance().getGasFee(); + bitField0_ = (bitField0_ & ~0x00000002); + onChanged(); + return this; + } + /** + *
+       * gas fee details (<value><denomination>)
+       * 
+ * + * string gas_fee = 2 [json_name = "gasFee"]; + * @param value The bytes for gasFee to set. + * @return This builder for chaining. + */ + public Builder setGasFeeBytes( + com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + checkByteStringIsUtf8(value); + gasFee_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tm2.tx.TxFee) + } + + // @@protoc_insertion_point(class_scope:tm2.tx.TxFee) + private static final com.tm2.tx.TxProto.TxFee DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.tm2.tx.TxProto.TxFee(); + } + + public static com.tm2.tx.TxProto.TxFee getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TxFee parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.tm2.tx.TxProto.TxFee getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface TxSignatureOrBuilder extends + // @@protoc_insertion_point(interface_extends:tm2.tx.TxSignature) + com.google.protobuf.MessageOrBuilder { + + /** + *
+     * public key associated with the signature
+     * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + * @return Whether the pubKey field is set. + */ + boolean hasPubKey(); + /** + *
+     * public key associated with the signature
+     * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + * @return The pubKey. + */ + com.google.protobuf.Any getPubKey(); + /** + *
+     * public key associated with the signature
+     * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + */ + com.google.protobuf.AnyOrBuilder getPubKeyOrBuilder(); + + /** + *
+     * the signature
+     * 
+ * + * bytes signature = 2 [json_name = "signature"]; + * @return The signature. + */ + com.google.protobuf.ByteString getSignature(); + } + /** + * Protobuf type {@code tm2.tx.TxSignature} + */ + public static final class TxSignature extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tm2.tx.TxSignature) + TxSignatureOrBuilder { + private static final long serialVersionUID = 0L; + // Use TxSignature.newBuilder() to construct. + private TxSignature(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private TxSignature() { + signature_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new TxSignature(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_TxSignature_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_TxSignature_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.tm2.tx.TxProto.TxSignature.class, com.tm2.tx.TxProto.TxSignature.Builder.class); + } + + public static final int PUB_KEY_FIELD_NUMBER = 1; + private com.google.protobuf.Any pubKey_; + /** + *
+     * public key associated with the signature
+     * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + * @return Whether the pubKey field is set. + */ + @java.lang.Override + public boolean hasPubKey() { + return pubKey_ != null; + } + /** + *
+     * public key associated with the signature
+     * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + * @return The pubKey. + */ + @java.lang.Override + public com.google.protobuf.Any getPubKey() { + return pubKey_ == null ? com.google.protobuf.Any.getDefaultInstance() : pubKey_; + } + /** + *
+     * public key associated with the signature
+     * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + */ + @java.lang.Override + public com.google.protobuf.AnyOrBuilder getPubKeyOrBuilder() { + return pubKey_ == null ? com.google.protobuf.Any.getDefaultInstance() : pubKey_; + } + + public static final int SIGNATURE_FIELD_NUMBER = 2; + private com.google.protobuf.ByteString signature_ = com.google.protobuf.ByteString.EMPTY; + /** + *
+     * the signature
+     * 
+ * + * bytes signature = 2 [json_name = "signature"]; + * @return The signature. + */ + @java.lang.Override + public com.google.protobuf.ByteString getSignature() { + return signature_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (pubKey_ != null) { + output.writeMessage(1, getPubKey()); + } + if (!signature_.isEmpty()) { + output.writeBytes(2, signature_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (pubKey_ != null) { + size += com.google.protobuf.CodedOutputStream + .computeMessageSize(1, getPubKey()); + } + if (!signature_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(2, signature_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.tm2.tx.TxProto.TxSignature)) { + return super.equals(obj); + } + com.tm2.tx.TxProto.TxSignature other = (com.tm2.tx.TxProto.TxSignature) obj; + + if (hasPubKey() != other.hasPubKey()) return false; + if (hasPubKey()) { + if (!getPubKey() + .equals(other.getPubKey())) return false; + } + if (!getSignature() + .equals(other.getSignature())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + if (hasPubKey()) { + hash = (37 * hash) + PUB_KEY_FIELD_NUMBER; + hash = (53 * hash) + getPubKey().hashCode(); + } + hash = (37 * hash) + SIGNATURE_FIELD_NUMBER; + hash = (53 * hash) + getSignature().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.tm2.tx.TxProto.TxSignature parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.TxSignature parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.TxSignature parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.TxSignature parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.TxSignature parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.TxSignature parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.TxSignature parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.tm2.tx.TxProto.TxSignature parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.tm2.tx.TxProto.TxSignature parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.tm2.tx.TxProto.TxSignature parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.tm2.tx.TxProto.TxSignature parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.tm2.tx.TxProto.TxSignature parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.tm2.tx.TxProto.TxSignature prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tm2.tx.TxSignature} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tm2.tx.TxSignature) + com.tm2.tx.TxProto.TxSignatureOrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_TxSignature_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_TxSignature_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.tm2.tx.TxProto.TxSignature.class, com.tm2.tx.TxProto.TxSignature.Builder.class); + } + + // Construct using com.tm2.tx.TxProto.TxSignature.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + pubKey_ = null; + if (pubKeyBuilder_ != null) { + pubKeyBuilder_.dispose(); + pubKeyBuilder_ = null; + } + signature_ = com.google.protobuf.ByteString.EMPTY; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_TxSignature_descriptor; + } + + @java.lang.Override + public com.tm2.tx.TxProto.TxSignature getDefaultInstanceForType() { + return com.tm2.tx.TxProto.TxSignature.getDefaultInstance(); + } + + @java.lang.Override + public com.tm2.tx.TxProto.TxSignature build() { + com.tm2.tx.TxProto.TxSignature result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.tm2.tx.TxProto.TxSignature buildPartial() { + com.tm2.tx.TxProto.TxSignature result = new com.tm2.tx.TxProto.TxSignature(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.tm2.tx.TxProto.TxSignature result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.pubKey_ = pubKeyBuilder_ == null + ? pubKey_ + : pubKeyBuilder_.build(); + } + if (((from_bitField0_ & 0x00000002) != 0)) { + result.signature_ = signature_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.tm2.tx.TxProto.TxSignature) { + return mergeFrom((com.tm2.tx.TxProto.TxSignature)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.tm2.tx.TxProto.TxSignature other) { + if (other == com.tm2.tx.TxProto.TxSignature.getDefaultInstance()) return this; + if (other.hasPubKey()) { + mergePubKey(other.getPubKey()); + } + if (other.getSignature() != com.google.protobuf.ByteString.EMPTY) { + setSignature(other.getSignature()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + input.readMessage( + getPubKeyFieldBuilder().getBuilder(), + extensionRegistry); + bitField0_ |= 0x00000001; + break; + } // case 10 + case 18: { + signature_ = input.readBytes(); + bitField0_ |= 0x00000002; + break; + } // case 18 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.Any pubKey_; + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> pubKeyBuilder_; + /** + *
+       * public key associated with the signature
+       * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + * @return Whether the pubKey field is set. + */ + public boolean hasPubKey() { + return ((bitField0_ & 0x00000001) != 0); + } + /** + *
+       * public key associated with the signature
+       * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + * @return The pubKey. + */ + public com.google.protobuf.Any getPubKey() { + if (pubKeyBuilder_ == null) { + return pubKey_ == null ? com.google.protobuf.Any.getDefaultInstance() : pubKey_; + } else { + return pubKeyBuilder_.getMessage(); + } + } + /** + *
+       * public key associated with the signature
+       * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + */ + public Builder setPubKey(com.google.protobuf.Any value) { + if (pubKeyBuilder_ == null) { + if (value == null) { + throw new NullPointerException(); + } + pubKey_ = value; + } else { + pubKeyBuilder_.setMessage(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * public key associated with the signature
+       * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + */ + public Builder setPubKey( + com.google.protobuf.Any.Builder builderForValue) { + if (pubKeyBuilder_ == null) { + pubKey_ = builderForValue.build(); + } else { + pubKeyBuilder_.setMessage(builderForValue.build()); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * public key associated with the signature
+       * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + */ + public Builder mergePubKey(com.google.protobuf.Any value) { + if (pubKeyBuilder_ == null) { + if (((bitField0_ & 0x00000001) != 0) && + pubKey_ != null && + pubKey_ != com.google.protobuf.Any.getDefaultInstance()) { + getPubKeyBuilder().mergeFrom(value); + } else { + pubKey_ = value; + } + } else { + pubKeyBuilder_.mergeFrom(value); + } + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + *
+       * public key associated with the signature
+       * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + */ + public Builder clearPubKey() { + bitField0_ = (bitField0_ & ~0x00000001); + pubKey_ = null; + if (pubKeyBuilder_ != null) { + pubKeyBuilder_.dispose(); + pubKeyBuilder_ = null; + } + onChanged(); + return this; + } + /** + *
+       * public key associated with the signature
+       * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + */ + public com.google.protobuf.Any.Builder getPubKeyBuilder() { + bitField0_ |= 0x00000001; + onChanged(); + return getPubKeyFieldBuilder().getBuilder(); + } + /** + *
+       * public key associated with the signature
+       * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + */ + public com.google.protobuf.AnyOrBuilder getPubKeyOrBuilder() { + if (pubKeyBuilder_ != null) { + return pubKeyBuilder_.getMessageOrBuilder(); + } else { + return pubKey_ == null ? + com.google.protobuf.Any.getDefaultInstance() : pubKey_; + } + } + /** + *
+       * public key associated with the signature
+       * 
+ * + * .google.protobuf.Any pub_key = 1 [json_name = "pubKey"]; + */ + private com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder> + getPubKeyFieldBuilder() { + if (pubKeyBuilder_ == null) { + pubKeyBuilder_ = new com.google.protobuf.SingleFieldBuilderV3< + com.google.protobuf.Any, com.google.protobuf.Any.Builder, com.google.protobuf.AnyOrBuilder>( + getPubKey(), + getParentForChildren(), + isClean()); + pubKey_ = null; + } + return pubKeyBuilder_; + } + + private com.google.protobuf.ByteString signature_ = com.google.protobuf.ByteString.EMPTY; + /** + *
+       * the signature
+       * 
+ * + * bytes signature = 2 [json_name = "signature"]; + * @return The signature. + */ + @java.lang.Override + public com.google.protobuf.ByteString getSignature() { + return signature_; + } + /** + *
+       * the signature
+       * 
+ * + * bytes signature = 2 [json_name = "signature"]; + * @param value The signature to set. + * @return This builder for chaining. + */ + public Builder setSignature(com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + signature_ = value; + bitField0_ |= 0x00000002; + onChanged(); + return this; + } + /** + *
+       * the signature
+       * 
+ * + * bytes signature = 2 [json_name = "signature"]; + * @return This builder for chaining. + */ + public Builder clearSignature() { + bitField0_ = (bitField0_ & ~0x00000002); + signature_ = getDefaultInstance().getSignature(); + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tm2.tx.TxSignature) + } + + // @@protoc_insertion_point(class_scope:tm2.tx.TxSignature) + private static final com.tm2.tx.TxProto.TxSignature DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.tm2.tx.TxProto.TxSignature(); + } + + public static com.tm2.tx.TxProto.TxSignature getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public TxSignature parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.tm2.tx.TxProto.TxSignature getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + public interface PubKeySecp256k1OrBuilder extends + // @@protoc_insertion_point(interface_extends:tm2.tx.PubKeySecp256k1) + com.google.protobuf.MessageOrBuilder { + + /** + * bytes key = 1 [json_name = "key"]; + * @return The key. + */ + com.google.protobuf.ByteString getKey(); + } + /** + * Protobuf type {@code tm2.tx.PubKeySecp256k1} + */ + public static final class PubKeySecp256k1 extends + com.google.protobuf.GeneratedMessageV3 implements + // @@protoc_insertion_point(message_implements:tm2.tx.PubKeySecp256k1) + PubKeySecp256k1OrBuilder { + private static final long serialVersionUID = 0L; + // Use PubKeySecp256k1.newBuilder() to construct. + private PubKeySecp256k1(com.google.protobuf.GeneratedMessageV3.Builder builder) { + super(builder); + } + private PubKeySecp256k1() { + key_ = com.google.protobuf.ByteString.EMPTY; + } + + @java.lang.Override + @SuppressWarnings({"unused"}) + protected java.lang.Object newInstance( + UnusedPrivateParameter unused) { + return new PubKeySecp256k1(); + } + + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_PubKeySecp256k1_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_PubKeySecp256k1_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.tm2.tx.TxProto.PubKeySecp256k1.class, com.tm2.tx.TxProto.PubKeySecp256k1.Builder.class); + } + + public static final int KEY_FIELD_NUMBER = 1; + private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY; + /** + * bytes key = 1 [json_name = "key"]; + * @return The key. + */ + @java.lang.Override + public com.google.protobuf.ByteString getKey() { + return key_; + } + + private byte memoizedIsInitialized = -1; + @java.lang.Override + public final boolean isInitialized() { + byte isInitialized = memoizedIsInitialized; + if (isInitialized == 1) return true; + if (isInitialized == 0) return false; + + memoizedIsInitialized = 1; + return true; + } + + @java.lang.Override + public void writeTo(com.google.protobuf.CodedOutputStream output) + throws java.io.IOException { + if (!key_.isEmpty()) { + output.writeBytes(1, key_); + } + getUnknownFields().writeTo(output); + } + + @java.lang.Override + public int getSerializedSize() { + int size = memoizedSize; + if (size != -1) return size; + + size = 0; + if (!key_.isEmpty()) { + size += com.google.protobuf.CodedOutputStream + .computeBytesSize(1, key_); + } + size += getUnknownFields().getSerializedSize(); + memoizedSize = size; + return size; + } + + @java.lang.Override + public boolean equals(final java.lang.Object obj) { + if (obj == this) { + return true; + } + if (!(obj instanceof com.tm2.tx.TxProto.PubKeySecp256k1)) { + return super.equals(obj); + } + com.tm2.tx.TxProto.PubKeySecp256k1 other = (com.tm2.tx.TxProto.PubKeySecp256k1) obj; + + if (!getKey() + .equals(other.getKey())) return false; + if (!getUnknownFields().equals(other.getUnknownFields())) return false; + return true; + } + + @java.lang.Override + public int hashCode() { + if (memoizedHashCode != 0) { + return memoizedHashCode; + } + int hash = 41; + hash = (19 * hash) + getDescriptor().hashCode(); + hash = (37 * hash) + KEY_FIELD_NUMBER; + hash = (53 * hash) + getKey().hashCode(); + hash = (29 * hash) + getUnknownFields().hashCode(); + memoizedHashCode = hash; + return hash; + } + + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseFrom( + java.nio.ByteBuffer data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseFrom( + java.nio.ByteBuffer data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseFrom( + com.google.protobuf.ByteString data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseFrom( + com.google.protobuf.ByteString data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseFrom(byte[] data) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data); + } + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseFrom( + byte[] data, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + return PARSER.parseFrom(data, extensionRegistry); + } + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseDelimitedFrom(java.io.InputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input); + } + + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseDelimitedFrom( + java.io.InputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseDelimitedWithIOException(PARSER, input, extensionRegistry); + } + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseFrom( + com.google.protobuf.CodedInputStream input) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input); + } + public static com.tm2.tx.TxProto.PubKeySecp256k1 parseFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + return com.google.protobuf.GeneratedMessageV3 + .parseWithIOException(PARSER, input, extensionRegistry); + } + + @java.lang.Override + public Builder newBuilderForType() { return newBuilder(); } + public static Builder newBuilder() { + return DEFAULT_INSTANCE.toBuilder(); + } + public static Builder newBuilder(com.tm2.tx.TxProto.PubKeySecp256k1 prototype) { + return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype); + } + @java.lang.Override + public Builder toBuilder() { + return this == DEFAULT_INSTANCE + ? new Builder() : new Builder().mergeFrom(this); + } + + @java.lang.Override + protected Builder newBuilderForType( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + Builder builder = new Builder(parent); + return builder; + } + /** + * Protobuf type {@code tm2.tx.PubKeySecp256k1} + */ + public static final class Builder extends + com.google.protobuf.GeneratedMessageV3.Builder implements + // @@protoc_insertion_point(builder_implements:tm2.tx.PubKeySecp256k1) + com.tm2.tx.TxProto.PubKeySecp256k1OrBuilder { + public static final com.google.protobuf.Descriptors.Descriptor + getDescriptor() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_PubKeySecp256k1_descriptor; + } + + @java.lang.Override + protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internalGetFieldAccessorTable() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_PubKeySecp256k1_fieldAccessorTable + .ensureFieldAccessorsInitialized( + com.tm2.tx.TxProto.PubKeySecp256k1.class, com.tm2.tx.TxProto.PubKeySecp256k1.Builder.class); + } + + // Construct using com.tm2.tx.TxProto.PubKeySecp256k1.newBuilder() + private Builder() { + + } + + private Builder( + com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { + super(parent); + + } + @java.lang.Override + public Builder clear() { + super.clear(); + bitField0_ = 0; + key_ = com.google.protobuf.ByteString.EMPTY; + return this; + } + + @java.lang.Override + public com.google.protobuf.Descriptors.Descriptor + getDescriptorForType() { + return com.tm2.tx.TxProto.internal_static_tm2_tx_PubKeySecp256k1_descriptor; + } + + @java.lang.Override + public com.tm2.tx.TxProto.PubKeySecp256k1 getDefaultInstanceForType() { + return com.tm2.tx.TxProto.PubKeySecp256k1.getDefaultInstance(); + } + + @java.lang.Override + public com.tm2.tx.TxProto.PubKeySecp256k1 build() { + com.tm2.tx.TxProto.PubKeySecp256k1 result = buildPartial(); + if (!result.isInitialized()) { + throw newUninitializedMessageException(result); + } + return result; + } + + @java.lang.Override + public com.tm2.tx.TxProto.PubKeySecp256k1 buildPartial() { + com.tm2.tx.TxProto.PubKeySecp256k1 result = new com.tm2.tx.TxProto.PubKeySecp256k1(this); + if (bitField0_ != 0) { buildPartial0(result); } + onBuilt(); + return result; + } + + private void buildPartial0(com.tm2.tx.TxProto.PubKeySecp256k1 result) { + int from_bitField0_ = bitField0_; + if (((from_bitField0_ & 0x00000001) != 0)) { + result.key_ = key_; + } + } + + @java.lang.Override + public Builder clone() { + return super.clone(); + } + @java.lang.Override + public Builder setField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.setField(field, value); + } + @java.lang.Override + public Builder clearField( + com.google.protobuf.Descriptors.FieldDescriptor field) { + return super.clearField(field); + } + @java.lang.Override + public Builder clearOneof( + com.google.protobuf.Descriptors.OneofDescriptor oneof) { + return super.clearOneof(oneof); + } + @java.lang.Override + public Builder setRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + int index, java.lang.Object value) { + return super.setRepeatedField(field, index, value); + } + @java.lang.Override + public Builder addRepeatedField( + com.google.protobuf.Descriptors.FieldDescriptor field, + java.lang.Object value) { + return super.addRepeatedField(field, value); + } + @java.lang.Override + public Builder mergeFrom(com.google.protobuf.Message other) { + if (other instanceof com.tm2.tx.TxProto.PubKeySecp256k1) { + return mergeFrom((com.tm2.tx.TxProto.PubKeySecp256k1)other); + } else { + super.mergeFrom(other); + return this; + } + } + + public Builder mergeFrom(com.tm2.tx.TxProto.PubKeySecp256k1 other) { + if (other == com.tm2.tx.TxProto.PubKeySecp256k1.getDefaultInstance()) return this; + if (other.getKey() != com.google.protobuf.ByteString.EMPTY) { + setKey(other.getKey()); + } + this.mergeUnknownFields(other.getUnknownFields()); + onChanged(); + return this; + } + + @java.lang.Override + public final boolean isInitialized() { + return true; + } + + @java.lang.Override + public Builder mergeFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws java.io.IOException { + if (extensionRegistry == null) { + throw new java.lang.NullPointerException(); + } + try { + boolean done = false; + while (!done) { + int tag = input.readTag(); + switch (tag) { + case 0: + done = true; + break; + case 10: { + key_ = input.readBytes(); + bitField0_ |= 0x00000001; + break; + } // case 10 + default: { + if (!super.parseUnknownField(input, extensionRegistry, tag)) { + done = true; // was an endgroup tag + } + break; + } // default: + } // switch (tag) + } // while (!done) + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.unwrapIOException(); + } finally { + onChanged(); + } // finally + return this; + } + private int bitField0_; + + private com.google.protobuf.ByteString key_ = com.google.protobuf.ByteString.EMPTY; + /** + * bytes key = 1 [json_name = "key"]; + * @return The key. + */ + @java.lang.Override + public com.google.protobuf.ByteString getKey() { + return key_; + } + /** + * bytes key = 1 [json_name = "key"]; + * @param value The key to set. + * @return This builder for chaining. + */ + public Builder setKey(com.google.protobuf.ByteString value) { + if (value == null) { throw new NullPointerException(); } + key_ = value; + bitField0_ |= 0x00000001; + onChanged(); + return this; + } + /** + * bytes key = 1 [json_name = "key"]; + * @return This builder for chaining. + */ + public Builder clearKey() { + bitField0_ = (bitField0_ & ~0x00000001); + key_ = getDefaultInstance().getKey(); + onChanged(); + return this; + } + @java.lang.Override + public final Builder setUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.setUnknownFields(unknownFields); + } + + @java.lang.Override + public final Builder mergeUnknownFields( + final com.google.protobuf.UnknownFieldSet unknownFields) { + return super.mergeUnknownFields(unknownFields); + } + + + // @@protoc_insertion_point(builder_scope:tm2.tx.PubKeySecp256k1) + } + + // @@protoc_insertion_point(class_scope:tm2.tx.PubKeySecp256k1) + private static final com.tm2.tx.TxProto.PubKeySecp256k1 DEFAULT_INSTANCE; + static { + DEFAULT_INSTANCE = new com.tm2.tx.TxProto.PubKeySecp256k1(); + } + + public static com.tm2.tx.TxProto.PubKeySecp256k1 getDefaultInstance() { + return DEFAULT_INSTANCE; + } + + private static final com.google.protobuf.Parser + PARSER = new com.google.protobuf.AbstractParser() { + @java.lang.Override + public PubKeySecp256k1 parsePartialFrom( + com.google.protobuf.CodedInputStream input, + com.google.protobuf.ExtensionRegistryLite extensionRegistry) + throws com.google.protobuf.InvalidProtocolBufferException { + Builder builder = newBuilder(); + try { + builder.mergeFrom(input, extensionRegistry); + } catch (com.google.protobuf.InvalidProtocolBufferException e) { + throw e.setUnfinishedMessage(builder.buildPartial()); + } catch (com.google.protobuf.UninitializedMessageException e) { + throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial()); + } catch (java.io.IOException e) { + throw new com.google.protobuf.InvalidProtocolBufferException(e) + .setUnfinishedMessage(builder.buildPartial()); + } + return builder.buildPartial(); + } + }; + + public static com.google.protobuf.Parser parser() { + return PARSER; + } + + @java.lang.Override + public com.google.protobuf.Parser getParserForType() { + return PARSER; + } + + @java.lang.Override + public com.tm2.tx.TxProto.PubKeySecp256k1 getDefaultInstanceForType() { + return DEFAULT_INSTANCE; + } + + } + + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_tm2_tx_Tx_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tm2_tx_Tx_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_tm2_tx_TxFee_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tm2_tx_TxFee_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_tm2_tx_TxSignature_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tm2_tx_TxSignature_fieldAccessorTable; + private static final com.google.protobuf.Descriptors.Descriptor + internal_static_tm2_tx_PubKeySecp256k1_descriptor; + private static final + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable + internal_static_tm2_tx_PubKeySecp256k1_fieldAccessorTable; + + public static com.google.protobuf.Descriptors.FileDescriptor + getDescriptor() { + return descriptor; + } + private static com.google.protobuf.Descriptors.FileDescriptor + descriptor; + static { + java.lang.String[] descriptorData = { + "\n\014tm2/tx.proto\022\006tm2.tx\032\031google/protobuf/" + + "any.proto\"\240\001\n\002Tx\0220\n\010messages\030\001 \003(\0132\024.goo" + + "gle.protobuf.AnyR\010messages\022\037\n\003fee\030\002 \001(\0132" + + "\r.tm2.tx.TxFeeR\003fee\0223\n\nsignatures\030\003 \003(\0132" + + "\023.tm2.tx.TxSignatureR\nsignatures\022\022\n\004memo" + + "\030\004 \001(\tR\004memo\"?\n\005TxFee\022\035\n\ngas_wanted\030\001 \001(" + + "\022R\tgasWanted\022\027\n\007gas_fee\030\002 \001(\tR\006gasFee\"Z\n" + + "\013TxSignature\022-\n\007pub_key\030\001 \001(\0132\024.google.p" + + "rotobuf.AnyR\006pubKey\022\034\n\tsignature\030\002 \001(\014R\t" + + "signature\"#\n\017PubKeySecp256k1\022\020\n\003key\030\001 \001(" + + "\014R\003keyBL\n\ncom.tm2.txB\007TxProto\242\002\003TTX\252\002\006Tm" + + "2.Tx\312\002\006Tm2\\Tx\342\002\022Tm2\\Tx\\GPBMetadata\352\002\007Tm2" + + "::Txb\006proto3" + }; + descriptor = com.google.protobuf.Descriptors.FileDescriptor + .internalBuildGeneratedFileFrom(descriptorData, + new com.google.protobuf.Descriptors.FileDescriptor[] { + com.google.protobuf.AnyProto.getDescriptor(), + }); + internal_static_tm2_tx_Tx_descriptor = + getDescriptor().getMessageTypes().get(0); + internal_static_tm2_tx_Tx_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tm2_tx_Tx_descriptor, + new java.lang.String[] { "Messages", "Fee", "Signatures", "Memo", }); + internal_static_tm2_tx_TxFee_descriptor = + getDescriptor().getMessageTypes().get(1); + internal_static_tm2_tx_TxFee_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tm2_tx_TxFee_descriptor, + new java.lang.String[] { "GasWanted", "GasFee", }); + internal_static_tm2_tx_TxSignature_descriptor = + getDescriptor().getMessageTypes().get(2); + internal_static_tm2_tx_TxSignature_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tm2_tx_TxSignature_descriptor, + new java.lang.String[] { "PubKey", "Signature", }); + internal_static_tm2_tx_PubKeySecp256k1_descriptor = + getDescriptor().getMessageTypes().get(3); + internal_static_tm2_tx_PubKeySecp256k1_fieldAccessorTable = new + com.google.protobuf.GeneratedMessageV3.FieldAccessorTable( + internal_static_tm2_tx_PubKeySecp256k1_descriptor, + new java.lang.String[] { "Key", }); + com.google.protobuf.AnyProto.getDescriptor(); + } + + // @@protoc_insertion_point(outer_class_scope) +} From fc593888590bedea93a110cbbbb0c921ff3e562f Mon Sep 17 00:00:00 2001 From: Kwonhyukjoon Date: Thu, 9 Jan 2025 16:14:47 +0900 Subject: [PATCH 2/7] [APP-1049] Update secret logo --- .../main/res/drawable-hdpi/chain_secret.png | Bin 6337 -> 6733 bytes .../main/res/drawable-mdpi/chain_secret.png | Bin 3362 -> 3568 bytes .../main/res/drawable-xhdpi/chain_secret.png | Bin 9947 -> 10485 bytes .../main/res/drawable-xxhdpi/chain_secret.png | Bin 18746 -> 19818 bytes .../res/drawable-xxxhdpi/chain_secret.png | Bin 30278 -> 32061 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/app/src/main/res/drawable-hdpi/chain_secret.png b/app/src/main/res/drawable-hdpi/chain_secret.png index bbcea072de9c7c82351bd44f77e03c1e2e86b6e1..992bcf238729c51fea6105560991b77f6b4c1c34 100644 GIT binary patch delta 6707 zcmV-38qDRvG0ilPReu@cNklk2snb{ zIUr|1o#BWKn-W1(lw-tkNE}6EL?)gY9mhEgXJ(L55Dp?J$fhA=BU=-)^}cs?bywH& z>fQP7eeYFO2Pf%3hs-(VCax&3m}vyW;)^vi9}n_=Q~d`jJ;m3_a!m1 zrOX`8twl6&o2N1!({xXvD^@m*?9d>roC(XLBU0Z$+J^=2N0`$BiOre3{@hYhIUHgghBS0y8oUy&?`x^B^-ij8y*sJhk2wTaBXHX{Iac6L@)RDV=_njEv08^g08aadm<1APsch!@YK zE0JHc!2y_~LjZv>$|_2_A^wjiaDOg~%)$Lgbaf%Nd<6pK$m+BZTWtebC|&=yi?IJO&B}3*8ZTJ5Zwd zI)6NjvG%=4lf!COu7qusHc;tF{n>Of^qKPd`h%FE_KpD}5a;q`4Y&UwFunXt0?GfB zBe)otobm`Uo`mS>g-N?Inwp^d0 z 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 diff --git a/app/src/main/res/drawable-xhdpi/chain_secret.png b/app/src/main/res/drawable-xhdpi/chain_secret.png index 4837aca816dca8b7fbcd47a117513e69df8345db..cce61e280623a90734973f76578426ea2a1097f7 100644 GIT binary patch literal 10485 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 YzmBGWTq3xWs{jB107*qoM6N<$g4{xL7XSbN diff --git a/app/src/main/res/drawable-xxhdpi/chain_secret.png b/app/src/main/res/drawable-xxhdpi/chain_secret.png index 4551ecf6191e367863618a8203a5e654a6addfe7..719c7bf10c7d3c9b703bc557c8a4f5813927a263 100644 GIT binary patch literal 19818 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 V5U2Psa3cT!002ovPDHLkV1o5%Rx1Di literal 18746 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 z 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 diff --git a/app/src/main/res/drawable-xxxhdpi/chain_secret.png b/app/src/main/res/drawable-xxxhdpi/chain_secret.png index 23be7cf925ca4f4efbb20ed5fe646698be6f33a8..9644a6386b9000a7be880578b942f623f88ed701 100644 GIT binary patch literal 32061 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 R{Ls#Uq{S7)>O>5K{|`#~B@+Mu literal 30278 zcmb4~V|OS$7lv!wwr$(CZQE{7+f&=NZQG}|ZQFeN{DgPSWU?k-vXY(2?0x0l;R+|(3ItL*Fn zhjiXGHM`zyf7x{IIeMTy@eY%!Ui`mrTX~BJscP|zWv&T&;a7WvAJuz(XXs{|s-p2^ zsq$c{D_u)cu+x$e5dG!(c_yAj%1m9o9Nq-}o6#WMDdFw$!kC+L31$3bMeXtN@#`@Y zCimMJJX5n(sp4hh>LGxi-I3s$^~`ni6xCGUct{_l*xN6kSF&}%T4i3_lb5(>%3}*F}antST2-6a=TrAI%`{BTuegX zpY&GrKDGX~oWAt=!u$C4GtX3?TvYAuPrq$N<$giVeHFoFo&a~I`mkI^XuQXLyKi}Bt1v65Ew4e`UzWKn znq;|czgL6CzVrU3pM(66*0$K~`{Q!|kGvMU^`*`KfWCL;#ims0gTM8+tLW(PMz4pF zsodYG>Zz;fh|o=;U7=EKE?8}kd-e5x;SDW*Ma3)@Gi}sd@A2hURZ&sU)x|YjZEhJK zfbexk_ojc*D~<_5G@Hth702;>mHv8v=}4n+_gB{{UHooQGYa_0XUtEr*XlhhJI@%W zuB@nVE3>f5N)+^|fRFkeIJiao0 zPJ26O!^2*Vt;=9ejcLh$EuYf$xF+A)ddabr}q(?@@v|k zgEcxC{O@zI=iKXDbhdU@-#XUP&c4>x*tR?ELFZN%Wep7jIi|&Jr1FHe(9cuegAn&U zVMY)#`>`G&r>A2JiVv{`!0?+tAr%=J{>K+RBE`?_zjhIU-OirEX7jHr=-9u2aaUt@ z>y3h^r%9;{a{l?+`SDc~xBhU?%*=#08&Kb9u`P`836=P=VIvl?y4=7x#s16{dnu=G z+_Q!;c+qs{QY>Ww>Jl9cfh|>@;c%rCu9JS7rQJN?NnZb1m4XonNn5Ga<1g)~dAB0_ zL~L)s!A^6rR}cP4%>6Xc5Hs)j2Uy3ft)(^2Zoe%eD=WKLDvv*Yq;t!*>vnMnX=Y1u zw6R9r1ndy*pGyL1%8bdDLLJ^Mqw=qI7Nr32P^bs~TI#tQ&0a~`8XDL6($Q=ByV3q? zsdDA$b7Q4^al5{|7878o%XwkCyG%w`M^V#JqlV_AQ-3q5)*hoMK{vHw zh~N8UdSpA3-M++jqeV&AmseGl=pvsvhu+~~Y-71aZN1AB+IF)o{=SNFmlPJ~bSEK1wJH>!Y&D+#eY0-T(14sB{mW|Q@PL#Qm+`Tp{3?Vpz6RR(L*=T)m{L+p+> z52K*6Cfmu_w*E>v%GJ&A${2am&g9qQ9XU>KUQf^W@8;T`5Wm^peS-l2X?D5H)85f? z&IBjdEoW{zSc)OtUEuS5VcztzPMzp zBe}N4W^LTh$Kx+n+Nm?m)rRPL>uo&`GOx7N8z~DQ3y^nqSs*4%s%E_tX!rAaWzycx z)E-A)T)%J^_L4vmi4lM?ewd;y=H4T-{7o8{>A8G`RfPdbZK=}3mG3YBwptBNYGuuv zqHt}8Zg$)O5reSt3aXKB%^CWz?}0keTNp}2h@9rTlTSO7^SuB?;^0s$!l_T5vcliLdwPhdaQAkeW6zXda%pUF}vo z#1IN|Fs;G5(u{c6CWK9keTaYWmc*Z=y>e-n_J}0$})wx1{9l7M4 z+B5x!9{9YgIhfmZ>)It)Jcivio0`w@@$+$ZOf8>C_+Ev{PUk7s6_c1u|IP2qrMFbv zjaJ+`pW%)3W_5k!R1;wAcESj06^m7_0{5ZL1us`Cs|wI<0W0B*mz$MXFj&0F*%Bfp zoIUqD)rB5^+7a3)JNM6OQfZ5~h$9xKSBVThTP{^~^?2ucsau&$0<9`Yqzg)*g{;rL z#2pMak5zT+kHwx^U<+>&;4pXdiRtzV9p6|(@tuYSroQaVPA%_`@j&$vx5JIzwYJK; zBGpQD^`3@X)07TvO{W(m9y+obC_35HX@i?%Oat`=IzlCkRv-C4e3=^11aG#lb%sMD z6rL}|qqqH$$QLOt6~Ugsl-q6A=o`q|WgQh-U81!;9U5Iy%4G7U7A!GBIf^*^bz1$~ z5)ZCi_nsNt=5`bH53$|duI3jfVA0r3f3`zyV~qje#G>hDlJzHgJ~>T~OjqvnGt)S* zf30q{RM8{5flY61v+4T%4tsH-?{O!p)#8)B>-4%mN5rl6eaC5|=zugL zx6u);R;@R@LQ$G89HMx$-CY%r{UtFhr))i@)D}*xae^x)?G&SCzfEDM%y7Cvy2!!nylV> zPvHClh*(`aRyu={&2HVoKuNc|FEUx?HGp4uO_|xCPhjNDw21qK;HV{P=P%#LiD-x& z3XHX-<r!W`$@|N6F|{xhwBBInwpB9wz4*J2;oRC_xeGPQl+uG$xQT6iBGEocq(#IzNKl=V!RPag+2@ zKzxHuB8n7aV$aiA!^Ki}{F?=Ou~(FKs={qW!bwSfYYutzRZuu8LZ_%xrZmKx9RmrF zD;BRsi#f271Cu}#J>*qrjzP@P_4Rem(-wE9Nk;JOKww5t@DKICQd z(H7j?>N1)i7;#7c(a`VqN-wUk*OnVA{=(+wxAo{uHdz1tf8=N35;O)))hO9s#>%1~wS~4GHx%pbtgO=FjW=iX^fh%^UQ?*H@>I(MxK0I*E_@eXtHc z@_LUkIV;;W%81?+-9l?h7wKg8&g0iA9_D^6A_k!uzysbH=Fw$&hWi*{W~uzfO>A^^ zw0k{N z4uenV!5_kn_;njPz%F8s=j} z+dkq?Ojkj@@rYJ5>LoOIkV_G2A4VOs*;LjNm-}?qPO9ldZFb#FuxV3h(+dyqt;pjE zI*l;T-=CTTeiQ5K(|sL{E}!ka z+Q+Lchr5pIOgzrVS>ec%_)EDf-U$GnQwRO534eT3%bqZ%YJK7g4J8^YNO^=_oJoIu zTYFpn-8ayg<5E6nH?gjA)YqEf85=+J8hJ zkO!j+r*p=uXix+S*4a=Q?GsSS49{7t&Sniek7xd4trxXZ-+hF!b;jI3=y@Faj^JNaDERfqi^3 zq>wlOj3wyUQYe~$7};h<_gbg$S*`-spv!l~Dr86+lz&mTniELoGt`^;Q*Axr)vmOS zNM@gw4U2X7_kcAhcUgkrT!bpM;;|^v;==P*>S$Ff`8Po5057h}Kn1%(p7P_W*w#Z%>L?1yNq9JVXodyoZMT3=N6b4Tv|`f8FQeUl&o@CPd>RO{4>8 zihyoGErZb(Y$}WOAm{vjUAja*_j~->jHLGh#vpn*|MLa)n>*x30rzdEQ!9D+ggF1$ z<-0RYH_n^aV<+f*+xsS75_B(;Uw;^(xUE0(o(LkqwN4+OR2pFzR4rtWBkui7o4|wTW8PHyi0eaURXhhDhUi+UI%rg4G>3?Gtp?)#ir-vr;!slgr`p(iwACDs z)0z8<>`K=Z;9`q2lHe&^@35Et7NqNUf=@5}K3|->YIN$AzV6X`Q4UZPb!1ZF@(U2U zq(ECQ3-6_&Kdu?~AhZNKgn_HHd-WRl#G`R&EoYt=o2t|;{d)wcZEwyvhcWvX|KU-1 z2BASTQZ4F?FB&^hEQ%7EsN97Vs z?!70r`Ncct7tmk#j7eiLdqwem&JODD-+e6NzHHX-W?0vF&R7Sz{{^JklP5cv7I8Vo z{&aV*ck)lUb(}VTy9tE7V1Mj*h~YjvE6p{7)TKj|b3F6DtBH{Cd%zQ~Wxx z)9m%jo;>@7C?MB;tQrw?S-hlS~U8(1Y$S55u!ZGr% zJ&E-?1{9%rsrmB%m~1ym*WnSbextO73mopg)$8t+?E=`z!l2VF)<8#_F0pVO@B{Zn zLvfbt=9$-tE7=2+wm1 zu;sHb#RTZ;`bvf1O*p4q1^ManYi=_rLMWcIrnQKj+{O9>3;r;8X9|T#6|@QDvq9Vd3m<03PdXq#{;{vsAe_7Y z{(7H3{HHtwe0&Lj(Ag$=U>&Eq0K+luMB>Cx13x68?x0a@e|9daCDZZQO=?OOJA6DA|L5w98k(YPy zj?j3dwz8EIQss*)(y%BChElKAWytGw{nzfUj7I%Y7wxrt+(|}M zOj@8=X3J4)xXk8LU4*61>ev3K-xFuN%U;2N0LE-pTMkO9vP-V6Ppwq|q4?77UkJx2yEEXFwM{QhgY-_p~-*VG@h2LejP$IX(=sWUAeS**Y z)A2ISG-+oJ5P~0s<<7FbVlU7uTE#U(oicL!9=P(6ymZu4$aHQ@J5_xo&-Vnv`+6%3 zq+RD3>}VT8=RFXs$B+@tjXm599v-AzCuNN-kB3$%;HnNyT#Vm-+sJ9QV*$0xN4f^R zgFb+@b%rO2MC(-==Km@0(zmEq4SEyJO^VR*A?p#ol_S_#)GZ)4?j9nH2c}r%*<=Ck zvpFp0q`W|Ph7K}mg+>)1q+BY~Ou9n}>JLR2FF8MPu$kg`@cjLbs;>J?pAB}dYq2#B z@Hx9=tzP{lx&!EI-Vo0jOYWh&$Lat5VC-sY^-+Bp!(EjeT`L-iKDV!~U;K+)gH3~} zBo1!Zx<>2KQe-qjASSi6wTV6NG{Ryit_{dOxBYDG<1YOGh(@TEb(Sg42%-mF$2_SE zBSH5czM9CnJ0hB;f;E)hgom31@cTq>G z=fKRi08)Gl?uY9Pi7jgD4>-nh;FdWlj-b9f{FsRQm>&x>?Rw54+_jNisDZ0=yPpp( z?LIYqb*Ct)QaihEKd|lE@~uvmaa)~Po*jy|Ym9%G(VPfc`LIzVppf)Eg#>4i?+ope zxOgE(SftM4S((P-UVmZ1lMIS?I25x0@E)pHBA4`s(BHdhjNDIV6fcX<-j3Z9yxLIj z5|UoHub6P!C#%}R!b}i%%Xgm}G}4dl0rXLjZx50=KzSV*0{j?~WN&Fedpg+Lx z%3`L~#}J*HAhC&Oy!&92j6X`s+D}tE-_Na`r@B^KBLJU$tQTsvp5^wv-@ovD9F7tu z-k3SO9J$o5wXpE(fd>OK2}!fbBVWW2_tKGfi2Fga-Fl(`9wk{6A*z-Tj1H}wz#QDq zS~){Ul%bqi(cLLqsqcy^VO`1<)EO#-{;zch);i0m2v7zPV(0_UoOs(-wBS4YABihS z6&5iBObS|j7RY&=~`x3TboSkDxg$he>v;$ zf^j^>u+fq%QxqjgBLk*JT%e8Y;rqdbV^xTF42ET4>akD6q94oCbB16A^970k>6ux7=MJ{jhuo=_O8bMUR;D2P55=W zZv^M}EuN71=Qi@tvgdKSImsN|vX`ZxQH{lU0hvDEQIRsA#EsGg8d$(aV|n=*3Y&+5 z?(Q1Vj``|>GpTd{jvD=+JVk2c*DcASq^7zX#1?Ta`U>_w?z?4ednhtoHWv)TD{EU@ z-FH5ef0`eH#XV20c?3EOQ7e-B=V^{M{H%(XIV2I7#g&XqwN&$B$MnR>+g*D%ZzK#^ zw?xAy=N3L=@Z?yRbm)SkM#LT=?@t%x^+D=uDZ)5_ zD+BWjd5S{rn!8Jm!QWb9AWM&QO*pQ?+Rav~_9G|GPNtlThnm{2U#-1gSHP-zQ^0dU zfF$sv@5ysfO|z8ce_p~A3WPSe;LHpOz3@Z$3xjWEuVV~z%Ju`{W<|NRrKw{Dk{T7d z;gh>;R_18H%P)Ii6(%uD{{m2B_(>j)G(`=72jnXL_>aZ)3kfW-vJ%Mx5|ZE!I*D}J zq^^_2!CNN)J}E>4ImQ5ZLgg!GNS5~n$Xx(eV$$l#TV|YM{pFNO3cl;t0$Me=LbWBz zLon}etn%;%-GJCAvPjhou^ge69N-;lk5^4>wb=}VTK3&kt>NbdslMI9~iB-vYryC8dSeiM$@znp(!octQ z8DY%?k==if$Dog0!P-xoRRTw41YQL%D}g1;X}NKMl;A3Xa*KSk)fWFaAFmkaWZ(8U zusZKwro{^QXDVdsT5M!47!M>3FMmCDv8M3!RwPW+bhLa5OM(gNmvl#6Sax~eni_eC zzK_o+RoE6S+hFokKQej8>4j{tXEp>O`~z zUPq1YHXepJXnEP@xL7GqpJ@H#Z{rct^XobZg5!&T`|c93iMh}3i$(2@v3LFIZ1eB^J9 zJvTA}7&xuCNjWKMddz#D=@3|K(jeztNMxJ8M;c~|9=U;ZA!7%kxAiLQC!AssB*kAR zuV^8iMHNia{VmIEhB_E`3?}d#w*cj6fZiq;gSZl3GA#fb?xM|`b;^?yF#38P-=1Dy zPb;L5vh}uoav)SQ$zOwT?=)p@t2st005vAou-fr#rp5G~@cMcHIz+p+84U zQ?S%AEhTIu!hB-9iyh*?7TLDzODZm*!xKGDXAmZaLhnHV^N32+o>Tvr%F1-=5=g~a zkpZ1v?zCf#nqm^BT>b+4tYEGQ_57`bU=e>z(UjewUr5w4!1eO&3hAxyIGr=nTq^sLm}ee2KIXnBSs6cK=u zP-^q4te`5k8czDBY|;B=Hv0;Bfa&xEHEDofC%?nz@)UAJKyAweHdO#6C5S=pMG`#i_mj=-J|^U9FnUgPAeBh=kSr;w2JFs+ zf~|3=S{+%TC3&;wXF_cub+VcE9q|~95`>NRw>Ykm#dW;LWfu@!2~<2QzM9K$9>gqo zeX+41C8mu9x`?IdI-xaX7XRlKoDl&K5bGT46U?*T7SI+L0^(&qCfgeFOr^|YE;ibr zYTs+`FZwXSh#lj{RGOf0DEw8CFPTi1K<>}L$=N&qcew9EZTzzc`koJ}dQshADKv@) z%e3G-w^3=*{$nXMGBtpsG2?uT=>|rMZ6cNTGnwG(ZM+T9#h`bUD>SgdYa*Rm5K|Pz z3Y#UBq>DrKpVMwo>nLReU?5!skbf|us;wx?t*?5OdGnr5%xL7`L-L4L^V4WiWV|9g z;bYbqXT-?n)X4k>P)f8#4ePIWL~nl_8QYP`Vs1n}?YrK=XtmnH_+Izmm9l(7t$S`i zp@lxV-Py2=x4jyD#s!2z5br(bxL9qMa7gWuQyHBc>I6r`+@Ky!b$FeIC<*wo1y7?@-{Tm zPrjF*#%X4a4I2j*Y+TkCg`5W$bRJ%Sx_-l^EKZMOO}V+f-ba5^L1PRmRY0Dc8i-BQ zZu!_&1FX>zRWTwO4B7bE3DAtdeBU2SzJcE(y-`0f2ri!9&~sBwBLfmocZg$oWca(U z$(v4#{}OTRgHbpwi_a7!%5h1)C!bnuUQ#3^UOQ5vtb7e&^f>Y=)A!*R2d~}EM7=n` z5|aUC8lXcX-j|4uJVe_bEe2I*vIvwkzBkG8U@B%b%3;bW_Jv2GhzubIE2)`vo;QJt zf>kfayAPE?oNU9)^Ct`{LW0{a37TABk?sEjQ|w0J9L1ql;?ATk+@>-8 zfIUUWi}8P96V9;L^`?!+W6pRsGG-n5o;7RT^6Lb7WLoBcryTMNh$0Q7toUAfC;Z2{4H+699~1 zp}X*65>fI6Ny}?CH_T_>?msRSZ`dP3^t}GE5i@ z9AO}F;F__sK=@pDA{FM6QM9uCAjIOaOvu(B^}ZW!9ft|hmf*Sk?$8(NxrhtgqV;ctA)6_!+Cl!*0)vom;N5?< zIqFyKWI0iB?gwP_DRwBB-c*57bGfWSiu@4gSdh9J`V5Ajd^HO!dH(){1hr@B>HZJ; zz42ciA+W-AG3msqcSAFZa$e`<WqHSEVx#9~`7P&c^kZ zmkNPA%dh-MZZ->>GRpDK)V&HP|CP;T5B*1GJ`?;soZVO!jf0G#k#y%E;g(R#fJZ?C zXlpQo!1mea9*IVug5n5rX~GZu-2L-1)jF$P+lwk6#50;7iZ2z4@225}Qw(pphw!2# zZhYFl$_cB4MFhE0Ore3sTjN%+qt{HFdlP8aQTn^zmf47%JV+|a9rw=`9DfQ^!+R64 z9EJ;f_L`UgBpRcL8(y#91%nPwGA3rCsNZvc=eN8nFESVTTSq>7J}Lhn-_;$c7H6N#Mql2xU6?O;oqeHngS```mc^%E(xV+iibv_PlxMl;cI# z1;y7>KM&g^fGkDuKnGKA1Cl&l)_P@^_5&r2TW!uA5j`=ZIB4UPPq)LiltD&B$aigPlaZH6ydwPN zDz?j7z|!gbGp86eVu@M&0ss-bwo`Ppe1 zq`ClB;SG!QaL4OFwmhlT?ux79tR$1>A=DAR2UNOdyl;E}atTy{{Mvhx#x0>+>;ZANi#Bq2q!kibQb3^~b$V8X*p#r(ORrkK)gVQuCRG$MI%yH%VJ zc%97M(<9l8!UC`lANj9sqB_RjU}!W$KZuEKwXXz~-q_Agl;&tH7 zyfENHZmy2k<+7`$@mP{bXKAV{)ml&4u0?l60DEC=J;iG-swo~kNewY(m_)gwVQ+L_ zR~Z0#D5s5szc|UNsANlhddQ=7M^uc;*z&T|c6_+SfvbG-xqP~8=g>0P_t6d{`E_6e z=oJlLi9@)_^&-VKb#pEQi0OTVYdy{LRUDNp)`fR?&w-cVaTsN*1GUx~*h6C0QW3B9 zgU+SWP!h2Tx1T+!hDekGK8Ye2jc#2Qlz06Sr1h~;<4K%`nt)jlu< zRaIqD{isC}0BQuBa9Z%af_dQHkmCQIglIx>oWdN{*C{+mE{M-^f?;H#5T;;MZtFK3 zG(}WGPzkmgQy>vS9bk0y3^DpTlXP461Jvu!?u)PoQKX(|N4^<{l0=!^U>%{>~%uJ3H=y^ZDpI;;~Zfq5gdhei5OsDWWe*|Ktcy}B(tpY0fVqCwh12!jJcjB zx493wv&rf#e0Y(|Pun-$g-+9}RCFB>O-$y@HobtT0enhIQx{Qc&>#tMEg``jmE4m3 zalq{-Z;G+-L?zvxhXv)mH{6?DW6>o(PEE<{k#xLUP$hiCZ_n^4W9O9d2&8)ifkj4W z&*T#LdcZ6r$QT#<7}L|tAj#kW9wO02o6u6Oixm%IuDC(mYz+B(wfD$CJJf1ZcuG)Q zoqmOxgBHtGYewWC$1(3D!H7J@j3SO;jr3m9f>_)T#99D|2R0)J-CNYFwUH3LP5hC1 z$?J?gjWjn90_A~ zNE8-9Ng1-TI)siFNocd>7pIH7fhUAsuD!9Fc_l^q+clo5YTT#OlhR0SjMf=%yb&XT zfN{BvrWPGBf2|5C({&Qe z8BAqfrN_n;dA2=qju=Htjta__=I%DqQPV3V2y&{!rHByLpe!vn=_o4D7iE{68b0AzH$m6NlFEE!d z`#>|PU9ndLq4ZtJf_rC!5kxccbmuhIy({< z5MYwMUP-VWl(<|6WcA4C9A^m9*(e}XabAEw=N1K&G8J&?Svh@_S@I}|yqu8faiI!a zNzY-9^+943UDgB&q54Ha*M6J3&f>e}^Ij1twEARgY1+2GLMuF~zER~>+DGGM$!(i!-EXa8FDjmbJTiNj|ajq&72j!dgzykHNG9(`Okfnqz z!3H`4GL9lbnG6n10{Hh1=Taju4ap@{R-~wbj6igKFU1_g@6R_C^Da~ie?Pi1wOSbfv{LVQ*y0W(2r}H}2?j## z3MSL@A(ES?#=x~N)A=~aLbF&Fw}VhL`m&2JvxC4KLsi8*=|S%=_f|qn#myT^VkpJK zCzw&cYnY!i1tax!FLnJ0^h}J2z6>7A81FyGbA1AN#Wv2;3S*1^1cAL~mWK%_KAd(v z%oMs>ugnw2@=3|_KQ$F;#Q6%%cLYe_9(k!f!^nwHMx*6P)!C}_V+;}GTHeZC9DW69XxW+5~f{J)~vSNjs@K*kpAD=ZR* zzcfsOrjFwH7~=?0V+gSylK(>gr<8Qr{RW>$XaVl?ar7lN^qd7_K3ttMwzy1VY}$K0 zIIHQrEdP|OlD}Ct)i;wCx`H3KQ z5^7IOo1g)oZ;?o2*}1*e=sVx2m8Xr7SI9eeRXrt|J0u`}q-u|GsjxAcb4CjLmKRyV zq0J~d0H?0RbDQ$&+C;#IbucCa5jEfv8q9>?FIT~zCb~I8=aCYV;}3I$`VXoyHQmCn zDPzk5#t_H<6S9HyqA-@12nIkl005IkP+Gcq5!K4jHsGsCtx8MqV!5{X&lkAVT`es3 z%EEyS#b6%aYaYA=jSj$jX<;xvUl8|(ygVA z3D^jmwtY5%BzNSzNI7dg%jL8w5XPG=Cq+C-4(`vch3G;^CzQAtz~9hsIC5s9T-ND) zgS7AISlhl%-JHer0aL5ninRM~B$LJRp2P`{2K=uA{?8k_UYwm76B#D#Eo6Uf%DI}R zP3+(2h6N(w!sd&We^PXd-@zq+X#e=Oz^(oOWNi6%j1j^(VI=sPIub)W&^Xv6u%vJs|1ls+!xD##{u5+E|qLWGRpfkxp0YlPT#iO{t)N)`FF-Y zzUJef>*bTDS`+xYk%6jOQAZI~>yktgrWlh|^z~|ebc@{<%|CYyg;;@g=NW!-(YoWw z3|iD3g(PU1!*un;T3i)9HNiwqJjSz&#M3qN++zM6w@ij=Z1P$QR}*K=gEdIPlO7j@ zQ7TJrj*(#mYolIyp$OzlUYmC)D@sF7vhr14X)``%OIxCs$>%DpQ#{z&_|~B5V{=0> z3jb$17HYJv-0hFcsc~9nLq-sSa}yIxU%7r}#OcUjjlLQ=*vv!6xMJVwx` zImHm773icf>O(Xl>{;2vCw>p~F4G#f?Xdqc1+Kn7^@rjW{YxyVQ(Mg?i^?@%E0soF znt$d*-9T=%JYV!Zn;XS12FLRV*fy(8Cf9R}HB*w=9U%<&Ew+PEZbZk_lqx+I7EeSG z&&iIXLc?(dplK#+^Oc_k(6}=t(Z36wqwB`RubM*>Mcy(1`?Qi|S4&P}bBZqQujXV8 zO)9jQSEF84&aTJc5`lZ+5(A1SnqV%MDC=(6qKlI>DFhcN{3^K`RiL15`yhNC$C+jr zy87NvJ3UO~qd_?1_y5YpLDrxItwW0RH#9%IEWt7&SE*MMAf&ShHUo~WBmO9%%`Ezc zM?1DLA02?E=aVNEkNHi2;s}8Bjp-w{-$Z!36TZqLKE{;;zw$@eavQaEVaJ|qbHixt z`}~WSx2lXHKqOihuk_(FoWZi4x3OUp^Up||?vaCJ<<5UiXJ#F6YXE=-lNBut#o8fg zpS6bGG68pxz+4H5%RpKe;ywG2oLe&(zjluE8_w;^(&Rq6Rz2l|lg9HvhGIOaVBHO95 zt)YdEVgpxIwE%WkX!r|3CFlgw4QLmUYKd06B?`~$)i7gtyKs%!99kuC4%cFF6Cdo= zl028JW#Y!~g_~0TI%64h#GZwr{}i?@y9(?~wQJi(IY5eP1eeFJ5^Tm@!ZJDto0Zrgp^>rG{;Y=f(_sQ(y?K6vlHeGAEk!tDrv#O zpUuj?`$>)O#WEA2Y!{NGHG;Yl=#i;KDA^+_P9n58wG0kcCzdp=4V-1b>HD)U2!6IG zJkf$~0}^@7<5|+R=a^@X=9wJ z5D2oM3WHKMh+v@NVzv8YNhGv#MumH)1z$>-G-;mM$8f0Be?aOD?(J)vMwh56-`i{= zX=OflZS%Wq&2#)lLNhb9LUz2g&B59Zp1J7`5X)U6r5WN40z3e82gOi+)2C33FlKj{ z1okAKjkQXs?~l+9P$2BFMdl-2`t5=Hy}W0HP*X|3XF`Z=1h5eB(|`r(5uPd|(IZcc z5e}Z6Y~b?4_Nh>kkCJKX$)!LrzWsE76^*Vs;0C7BJ|qn2%qxXbQ`a(t$u!6hT8&E? z@UWUtTL`^O=Y-ZGB*x1c>uFRuE;V+&e&x#QMwqMZbJ2m`*Q=Vlo1J`OMwm-yix4(S zhLMJei3$`fA@?+8t&6q({*5XNQ;|+z3i9-t>&`HW}VW!;Sq zb42THj=<4IRnek%{_PL+HVpLno)5>4k8U^=!j-X5~IAkLc0G#*aNM=abE!| z%4lAUA;~zN4wX#@uf*|uhqzEwvpSr-N1r_Y6uRt{}}fL=nOVSfjBQEn|jq z6Z3idVKYVtPdYsiuGq~apkN42P#xx3!*4Aj6de}P=cVM6Bw?U+iVDK($UWpihs81? zjK<;@ovj26B&U7c(s+%#Ir~mmCxO?YA`kZJ`%~mJzyl7OEiV&z4tIr3pqHvb756+H zs^^Hs7eG(+`*I2s&%VL03(0eQ64VFf=Gh!9RFh-(c5 z-{20u`m3fTaWrkORm}@RpFS2ujRmuH*KaXB0CNXG&Xh=-Gm)7B*(p*MZLCvWE7^cY zxPkiN8xW-uCq;d+hn@bL{H3slX`+AluyUqm&Ywi(B!{$+%34E8%K zPAw8E=Sek*Jc5zAZwXwhF45d9wS7EJU?&Z={M0)*dVrn`3lq)q7=XMKJ(r*U1{BWv zxN|)AeXt8S7tmSSR$5WM-&w^M@rE z+7Y!Jf+2{@c5YRc(J;v#BS;Hpm=__4`8`K3s$YOPoYH7W*eM1BpCZ%;iz)}^b1fgG zqz{?+UuWmo9Z9=J;n=oqn;qMpOgOP^+n(6TWMbR4J+W<@r{BMD*6OeItf~*ybz@(9 zdoRyzg|Erik+0cMq5Ro#JnydTmGo-P<^xFB_jHLGz@&p{@Ag5rL{DJ63PMkA{%RDj zW{?lmF$}#8Fzouy2B#o2I&ZE5i%0Ps#sg<(S~W;BQ2%>JP2z>q#*+Jt$E|oH*eSui z?F66WHC`tAGW{8m94&@hyy^Yz>*s?;{m5Aq8eEXPi=W=7?D)||vGlraO0$&`9u$db z1IbplxoV>oUmkE3C`=P$nmRx$QI7uMcE*;lg(ijx5 zQM58^*Z*>B1RjIm!u`*H+tb=PUAl^pJS++EvFjveVLBf<_lDHbaLe;K=V6?lnLWvJ z9F!;ppEk3uLv9Cd6d>Wn1spqgUowhxBHH`~yv%~TOn&^OgsZv)2X`}kTy?7ybk_g7 zn4Z-qi>45IE4BaU|4K&F;|~s7wPYYsiaN{(OI-;8%eJ7(FRjsK${8-;#wax$Qz7 zyDlxPaS9(|W0R~i*FD31)-Wm$UqD+S6BoSHclSRS2%6oTmp6M zC^K-q_zU80G#Gg1XXi@NPZHEjj-m!vcep5#wkR*%!s9oJMX|j>Anqzw__+_DGguq- z^DP?Sq(0*20aw(rZTla#G_pbDQDIChihN!K?U>$id#LgBETu2cfI!Z{c)(Xgpj0I$)Dtm@WOY?!mKPn%+Kc1< z={)lQyRZ%D{b1vot}i-;3_v6vo>$f$*v9p%6oDx~ zl+VI48hgRG3~_)OHTwaoA+E4ZcLKJTz;e62iccCc8WEc?$sZ#8 zwnp4pzSNcWQjyf|N?=(`;=vp=&80l5l$=u;qY9}l21zT0fqNWkwP_h5-`dhjHzxJF zu7JUOGZpg^(XP64r4$f>G=1Npef#JCrClAGU5KD9=fqBhCTv`wiGUD3~pmR5d#s2id{>*UQ}Pzz0N z`U2J>hEP+8*Nb#GdaOq5Kgde|aO+OE*|*j(%A)uoV);`+l`1=3nTPi#bbpJ?HZk&dZ8xUq^1MSEc?vplDiQQsyY$mcly?=2OZ0 zg0)ADB}+!+x{jxZ5AQ->fnWQY-=tS_K7!ONFcmY!C$x$@GPQ{C?vr6eW<q|n!Iqdj?G_NED=)TI<-6HyWt|v#g5{gLX#y%?p z+!4rIGvDamVzbiw4WsiDISXAYmo$!@^;}ZttD{@duTCRqZh!TtZOoUDh~FxJ$4?e` zkHC;s;a2nf#f_QWSR{j@r;~m-Usk$^aK*2+xpQ>Wiz^{V7K#c(#I4IKo~@kV=192SmFU}Sfco_p)7`vId{KnXLraWx+Ff)xO+L~f;hBh+N8B($pt)u8 za3WW&QIIQD{mN@sR9^y`7N=S+71cNv(>he$VWKnIfz6Yrkj;#rGEib=r@CGhAht4F zkox((@`f?eOLB8ksn_yD6(2YsqM=;Q)42hBK9~!o>}f@StRs26MsDYf^>L`zgEZ{& zL=f|D4agll5r!d(`h7@WSsM`?6!p;SCC0<+NSu+NuY!cZPC3&H<@V{rMuz?&DywO) zDyX~YTM`&@L`V2}8~(dM28-Y8qQn?HO*IB3VjE2#?E=J{rUZA4OKB&WZ##ugiQxCh zqo@LMY_rVha+S-n0^A#3I_E9=b<}L;H9DPo2%5+b(za>JjyBGLFjOlFrhp3t;ba2u zB#_?;_78mC4m%9JUeO&_ZEEGpHYURngF*k~aobPsv1K+@)4t}$C0iNhCQE7R@rRL{ zVaX=!2x}z#+yI*!N1r!){1l%<%QyF`H{QsUpKT&E9!f-wf3LJK76snHSt4fK9tlKN zGUNHA*F2DamDuH2EwlcS$|RjTwHlX6RQ}VqVd+F;fqfhcqeBNNDk?`tmNrw^vB($3 zgHhxVXiH_54`!k^hjin%+sV+oD~zW~FZ@B%sxuX%tf4_0#&p#gM2d=bl%O4BZTRPl z80VgR-Wtv)Lqq}tOJ#>$Nhn%3H%YziiUk4zF+^VDdPb^-&CvXvLe}s`?q}B$yK|ya zB1?(3`x=zY5p|?nUST6YCrSXWi*s8pBf_GsdxO&-9PFP<$g?4;`@4lwE5peg66tK5 zW(QEbF_sAr2ZCyq3LHhUVIlCIVK6M?s2+>lHEWwqf49$mdP5F7&&m+3--ScV5Mj~e zoupz~s59{|7*Ew+2ux;z5>c?gTEPl@UMx8IW`_gvI=;NP8Pl42_>2q`?&ATnFoayt z8wCzSW*1<-y$sw60Sqtt$MCZ9svL1~p0qYUaSY^MD!Y`UYzr+CBS)`0uzrV>ZW1xY z{1fmFfo-5KAj>7WY$KDFRg$mPmBQde5MtPfP6ZGYVEk}*|D%W_DD4~-!ES-mW`p)U zJ*Ab{u4Irb{1P{JpciEcmq$Dtwn?rTiwYyFN62_pudR8_7F>HV#wxF)LymHI++ZbnPMQ+8CCkhf&<*aQ# z&ilxnU7n5-XHva_rTU3ip6_cqOXC9mRSyM1 zj5SpK37E{ey2Bnd&DOJA2}Q~RQ?X!NkJ6qSQ2$fh`eb_Mhl>6ZEroDEiiJ4`QMRvc z@Up65xMcA(K|#ooh{l-W)>f!R__UPR^7D;bMh1f+cw@CSDV0GBt)MLRM$&-=F##@@ zia>0Ne3iYmej}c9dcEB@iv>mkj}38C)L&0{0-dEuZ_#i%S*`Prk_l&??2Nta&ZF{q zF`;trc*IAa~vnitB&GOh-Rt+57v+4jjBs9RwqR~VVy55N*-6h)42 zO;E1vYZ>F9`{ttF2E88>Zkh$D@`?2YXZ_uRcbrWqoOrUm>!Fb_r zsmRzvpg4LgQLIG5QOIUbC7g|JJlVAG+S^(EXVl#rsr<@edx3BQ#K+Y{mQ?0cfSWsm z7gQCv@$2z?nWfX($_lZeuOw9i^a_Z)`kJ6Fb?OpEp_#OY^Wc7nthwbmf-bcqO`^1= zfvs zl%3^~d=7-}?IK`y30#&ypuHx$eEaZKGyDNBd2f@4FU+;tY*g!1)vI8~l$k{#`F#{B zlT3n%+D=Z@0~=CtgL1mHVr#Am*&6?YEKzM~ID0|cDSpqR~H=5d+NqPBURtYOWs@vy+k(q{t>HC-Q>q6HlKSr^x`K z!9s}qbJBg~?V}m_hRVs%jz3vHHY+ zq${ufEXt5oNoaggYQqm3`{xFg9avmd_@g`qiEoF*k$Sw}g{s?^>O!o`>pAfw$NRc1 z-0$&M4_E8zCh2T)j&Y7CfG@YnqLNt6SM^KIkpHFiG~~xKI4fvfz}2D z2g|1W0QHhoLOZx4mXr}=y}yp`8|Kel>*x#~expLaR8cTo^lKgB=i6n#VUEt} z@E0di4K8KP1bDMg+)-Tc2TupldjhFXD*)|{P^r_x^guTJJa-RgB2PAx zVEQBNEc%SG@sn4W6C=q2z2qUaOpY;%KmY|MP*~fq*bk(QIX_qR;~@hA1OO! zOo~J?lwF&&TBXw>+upw;5_}>Y=B&EPXJ0P2GY>R!dsr9xn6{P{5*I`qJbJfS zXov}onD$faZcVxL*9}SOXK%mXY|Y}H>wM`u)#ChbjZ%%0pva2^hX|^KrVbNI03pk# zkpweee3M&8T15_vPoW}hGvH5xAT56|1OCHMEV|?RwZg=-db?KthwY~Kwm|Oar~gI? z_|bF`JyV-*D!11h;pX<^h-acvtihiDS_ji+d=Nh;n~BLy3S<)B;b^&5Uo8l1D?2Dmey<3*$XtY2>7n77MCg^wa6&Dc1p zM!+|%faJk(t<-1!rbojbLVohX*IdB*7?NH6;6kiUBU%ab;2NoXY6n_qqysn+dk`g^ z0;>;PIj?+bsxINdq|n33KtG5oy2~wD`{k1mJo>18WeG$hzuCplx3d(@g>JPH3HrUg z)mSNN>4$(Y21CkQXK~TKU$T+w=vhW2g34Mdl#g;!@pzOk+XC=!5d?q8k%UCy%y^HS zLta0kXBG(Ew{TBp@rf*96%P;`g`(Y%DjADL*(1F3C@k@%R_jEQ81p-=ew4AES`o^) zH`y72=q}m>&Ed|xj%iqy9esSrB;OezbjRR~QAN_f6dSJ`kPT~(Tn`YR8j#@kt97qb zE9Evs_feA1*(I3!+-S+53X7~i;&VxB{Re){D{ya9iNA7b?F zPp>p0%Y=s2M`bLc#<-Hd;R)n2DLm1{T)j#WDtzKzsXMx~mbWK{A>mU&b>NC={RTpg z@qjz&%-+HHA#S@)hiQEKPDP=QW&e~=R>42BrMd+)w6j{;`m<_=Dmt>v!7fw%a>mr* zJ9yKqq1`d?d<4|kgj=7uAhE1X&*vD{beW3=t$h3AAF7eo%;ZH9Aad=pfeu!@C?0Rk zP|HxR!2PnSKN4NU6>cqht@5E_YOb`r+z=y!R<`4t z)=uZRXkbGVvtbWMUoIz#XzKiGo68o!Vk{Ha$mu!76W zs14~X&gcn1-x)~Bl2!Y9Y^GR3NJjP~h3g+pkKMUM=H z9re;wwiN=3yBTNtbhR91(+vCu91HQ()2InfST*8PxX2xSMutcp7g;+z((X)jWtMYt z_SQdFi);$G|M>%w_G(l`#*(PU635oo ztZ0KHRv^$egNB`>wb4$oGlZL0IN`CGizli(<*g#2rcAyaRo98&DChX)*ak*2_bjTB zHj=&q$xw|}btP>W#0%8$wA<+6#2QtQo9)UGs0AMtvt!1DuJ@0dBPngLe|XHqfyc|f zqkzId4eRYQp~1%VfjdH!sRitBUdQ@9f~^|7CD`v3sxi23YWh86@#-IOCSReL(EECv z9;Ou{od{k8YIPOoeBG36FZ>B7kXe_Ju%V z;0P-8x>FjQmh)~KgnL&Xj@}-kO)V5Af6tk}UR9LfrK6pWj#3(mEt6Jt%kCyZ8&V@j zb;eC~--lqCMK1vVr5~dn5vA&H*CxYFzBpI6ok>ir6B$dK{riM%y$2zbIZ*k}i28f^ zC+1;_%fYVHe5V-F@6R5rde+bWXl5ApfHu=fh%*y$)qcN|%?jlA*LP_UcwT_3YZHgd zs50It)092|$ayU&A0{mF*rif@kZ`Wh$0;(wW!JU^1pH98e8NgJqjJ#&==0>-bf%nr z#PMj}KDRqbc=UXdU4t#Fe?Y12oT#h&E9_Re4D=ly*)$l_ z0V)kLkSzV^2|5@`_^d%Dm?m-#({D6_Z{r45?6wRKM!!*4 z0O*JSvX%>qw=!y4&6V2NtCVa>Kp#yRH+{iV5>4HuH1?ML<3c378+%T6kb;bK@m^39 z?sj(a`N#P|+vLK1XBUpSHJR+eft8H9I1o@?&MMuB>i5nmwysq)%-`5^?Pw(Tp+Apg|fYRa!rW^dU1*t=+WFWpiPB;W> z>m&#?3E>||5?a#^5^H#z(tWCbsG=+Cd`_aO(mlmAbhJ5l+B#ZLsHa7?eOkIqX$_M` z&8$|M(pfCCq<@>FO>l-rXQZ?qYzYD-CP6gT6O_3VIUx|N$a#$w-I4RVDAEwrbTmg- zrN;#WJ&PSSBwB8D*PHE&AZLV>{M*i%>opQR94dDSnU!V6Jf6Mhmt1W*OMn0zuDlU> z^I|kTuW|anI6v9!hT74V2`D1px2KdZ5_Ao&y9UY&V}3+`dGMJ{w{=_oGH4xl+&;Ms z7cDzY#3Lp8y_)f4KN`atBgqOY^*G@mEp)k=N_v2t;DteF=sf+n98F7Z zfa)2KL*Qp=P!v{>Q;W(i*wY|eP*lCLf*6I{`I4<_mNTmunN4}@)b7qy29F_G2Rn82 zrSi;7m~{1cYkidB7Bn}L0YW-FW)W)e&xbRz?xTu+n+}|F__=jG>*ULhI&-ijd`2-9 zhbf~EjO0ifK_mY9cl@kHbj+zzVhUmsF`-?mu-iD3eyp(2Q580P?-64n#&$zB8chv9 z{znJ3MZ`Sh#(E-~RZD2WX+Qn`U?d!Ii7j zmv=QK0nYUrrS0$xWuy=(@Zrn)!-=8RSg~*Ij)F=I890N@%RSWo?ly-q!vO1_Nv(^Z z!2YnvgG4`|N_ATbH$BxsfakYAT8)P8Cw^K%juKj4(C^l_k5>w9a}+pJEkD^lX8RW9 zn;w3|V81?KTWvuRVhgh&sZtfjF_`y9zOZRNDCDAPfaZjykO-?7AULP{qFJz`a=)J> z?I{I8Z~BOf-)_BBh59pk=-Dr)25GpV4CHr}rqGbN~Ol5C6=8l3Y)Vl`XDyoS2{ z>#D<~EM~osm(i-(=-Q~~0`#zTiHiC>p%!Z6PaFH3UmTg7`x)mVdU*VIsLhUPZ>(=e z5wi+?A%`RDepi2l52JZf$1X;xkwR6bO_@N5zeeJbk6DSOcj zG0js%O9WFl)DBu}G?*??oIxM16e4*+{~}X3pW$ocf*Hy8fHu6pxR`e(x?^Ie=DMoG z)^icX#$#7aiExwo8UZwGu*vya4z|7cK<&98XkbWJT+8*!urpgP#-@|AG-OajCyCYm z$P3j7|J7gjGS>;oRSW-*iC=3EUW(T@jD zFo&hcfyt+a^^8rTdlt#i3srXp<9L~RJu0#rn_+8gS{wQpvlf%4Q`F&6ja(exC5uJ+ z6d7kngh=T&2_|v69}RPuiTx+laQjec%w+c-(}EYVView=Z?5W$uQE;bEJ9ceeM`y* zWVyqAzh8%pl>mOLcZU=A|9P+&gEU&cD|koVzB)V^_`J0a#C3d4dtb{RdIBC7)fn%K zCp#E_{iiM?7r z+EMrw>~kPsP8T`kak$h&=Rl3}P&ue(RAwzP8W#3~q^i*Ty#RAZ*HO*@`>;1uT=}y_ zXA}NjwIqYu(m+jONa(DL!*UGk3^v4S!+_OEXn?!ANt{kNi1cihx78&PT&2}8-0l+_ zFT_=^1}no?_(Qs`#^&lyipcu_u0Sz(?XQ9gcgyz25jVKDdz0W+W5wy~c>8#~-A`{q9H+lRhuqG}x%JsbyoXhE86P=cG3$FyB&)m3VAGC8=Cu$v7 zBIuDD`(f1D9y|F~i~}*rBAC@}?%0G2@^E$N`j&8O>@C6vcsY7jMHFR+RkDf&+ptT3 zYIi&z5{p%xxyKg&G+_S${_WxXnOOGmV!Wmr=;sBp#_azzfy~X#`Po_Z_Y*rq_h^mT z_f&3bX!?E6yql*=z_KTi-;M13ed4z{cqCGM#J~!xV>`7pEW>mEaUYTJ4UB}bh(|59 z*CU(8yt-sjQ=}~|tmHIvwc0#Gt^g*x9D&q{xQQiW;*T#8x)Nh_NaVvvPD#f;;aJlU zXufHfxJD&}=mYuV<#?WzOJgVn1otE0XK6?cx(u0rDi6n}6mrIT3t_)^+g$KIBgOeS z@12tC;d}D=Gz4s`YRMQO!29!KL?~}_ao$D1dwAQx_>rCAahuMKjCiI_=N`u``kP(u zZj8j>qCGA%?Iz#j^cp&kMsfP?{`#hR80?uUj@u@ww6LsX0cDXJQW`A?fErjdmILsh z8x%!yURhAzZA+%oCB!eWbW{vg+jnx+Rb~vRbYY>dbeyFf;DN*@&nblCz{{jB3UUs7 zL=6r59jy+fo|3@ISeQK>&&)N&dLMtqbDWgd+1=g!WW<%QJm+2cNC7VW{yO8oHQW04 z7XRXtHwXHK?_cMAJF}kiRI1Uj--R)8g=J|qe}~?2PrsGhV!1|z<-qVGn{CiB;aBY6 z%sRISn#Embb7BKV1~)lqas$^ChDO@fF#GA+n3@t-*_)#2XPkb5>&AFZief@D_iMd^ zp8;fcfqu!732P1X-L~ei1UvFL)CD+(625z8ZmstFEAlyoh67D8+yDOk!@pLXd<(&(%Ci@V{S`4KG)Pl_587jc|qLpH;spZWF6LmhsHUgVbTxD zp=suK_IrK`yngSnd>vo0E*RJY9MHF9oflj$DOB{N9+K*X4tHjl>Z<#A-nVc-vCz?d z^SpO!7d^tx8nWL_Fx_UcQgKXos?2Ms-X)>tFUO&w==MacNf_uepF6_T0O1%m4d){h;RDp|ni<%O6RB^V0dLoLd@cgg|;{gIuA~(|KsTWh3 z+HkB$cOo(pBF^cCDv5~E2i-NgUSk!1C1d%Ljt?l;5Z5}!L8|q(-KHWNLW}G8R88eDn(KXOZ+Rnm&L_AQ5|FIF6RN*@4 zk3hh2gWhhdJ4pUCr)$av?h}|0?+{jkukHw|`pkpTGYY{BYEz5uul$!ATO~|I|g* z`C$stZ)A}c8!;tdv z9jJYe4wKBQ#2F0@&iYyj2NuOB1YJwi?s!CbUI@I&(t_i5?ml$&4XB%*=xX9$<2q<{ zA&R>~->ssfKYv7GdKlPvcr4XylXxTal2ZZa0ZEWJ8Xo>J>j}VdTBlM@&*><6TqlQ4 z>gT2RSkvosBhYWR6_`&mReQp2bD%$peh)JO_4S%4$K+X+?hDd#dUse6XGFbANg&P- z(du`(*2Gp<43iW+U(Cu;r0hbXPjNtc))rg?{uAOIjK2~DuXTzBFsPgZZg%BWw-s?M z%{M$7+CKEqzY21y`_YJ~X7edkK+KFWg=iFMspP1mDy z-hapY6z0Ny4ODV=k35O=Fd{@Q)%gaLFtkLQ?VVT|=_Pj?+4oYQY^o+yIGU4RT5Qll z1Y6YKVrk&M3uBultyxzjIjO2kftHLKW84~*^9DgPu%TtB4wtl8XFo+SoyHAx z>_2e}2ZC1WK&g3$6&nn`TW}Y>!$@@QyGp0VZ10-_&*`4+kT`bG3f6uhC-LJe-4+I>%^ZFjW- z@w~i2@N-WbZeMyX7!VOv2{<YfMp+cGAWq5y6A5hJi~N0les==WmOu6(%UM+ffZroLA^x#u2#z3bcK+J%OUf2Esgs!m@q8Aj z7aCFh{wR8%$+=Il@qA_U4qA-=&*Z#X&*yfC(-+^%zo@cv55UFdpSt||tKL_cW76-e ztR!_=eJOkE_d(A%j|am5S(D?wWQG;3acR&XLPS5BZ%7Fw+p5)k>?DMAeQ<0bqii2c z@7#Fxcoh16w#Yeo_m-TA{^m37KDTKx21{~htdcZ-FX7&r&F=&D%IpEB1zY~+NGKZl zcM`fCoptg~3BbXIl3)GpigElqZTz+Si}Ret=hc>*9F)UlmZq<>jh4o$`|2fc9PFbx zVf(&&n!cCiTss@__sht;dt;;CWaE9?(^K4;0s>^S&88K0feAUpUov|sltfT$Tw|11 z))gH&tgu?~>eTsA*TjlKwsM@9Cy3lAq@)geZSz4X@`e!Is;T}EUR^X1kydAsiwMU` zLn#mgZ9ed&{^FM~3=TqrxeMNg`{SJVv2bdI3@2RwTY`AonJc}uVA~cm5DtbGALrdH zDbsQGZL^kSpc|zYh8k`!-m(|r%Jtdb{naG8jS@2)6^$!<*C z1%xT0xTie~{HwSDnR<p#e+us8?zP7H~Xi{Je-PpL%Jy;uPqSiT?| zA{*fF^S@i6#FpKbTSV0l^Rcn+W- zs}1D^gJDm$(NaE+HM{Rp^oA4#ftq&cyAS_B%4>-W(y~D?yq959p#Ym*t2r70#_uXJpTySlaN`GFWdJg{F}`-TwsW;XhTjo!{>b3i+R$0Q$itxz*Z#ov zdXVNz(2B%`L`CM9ENlTcxt9KC8}Byi9Mb%4Um z-DO3?rVt}$0YjT`GUd`7JHdkU`{QDyHOod<;1q2)0IvR^HbBt+$n6+=p&dN>|KLb@ch%$}c8rert5VH_2zidZHsnA7E{|QfWnAQNb zuwJe$Rbfw6q;{0vxP=)pv)2sfma|T@LQgl#Rh7+ez-xakq+($RZG&0ECQxlO0aEP0 z)%~>4cW2A9&`p5cC0rGjS6;I~CaA9Q-c{Pf!E_A+^EX9@qW$*2`tvMJT}O$zm?1T# zu2Q-@|96I>e@zUw(0zxnEwmBDc%)%eWe2rExl~Qh-!dxv5lethQpLYH*zGh zOLvpVm~H9xMxE9q^kp;R)EDVBYm8_5C>u+Adgw5WttbO5JT}1UlO^Ds-25|6sl!Rh z)%Hu^(zg$!x{i^hxw`mi+p65!oTbjEtF!!LSxo8w_w*xrQR1@ z7gfq-giIp|Su78?e1|4Mq_a-_B~~pcbRMl%q9711bdA;aCNQ_9i4fp6CxNYzVmf}L zxvcJAp;V)9f6V`YiLK`}7d z%m)0JE0p8l}JjG2ZEXY|&d)zB7<0fbHZF#Xa1Ki*9+ z|JoXA%lNMXWGJqy@E9F7E+auuVgZQ~f$S+@oG_Zm-KgieK zQ$cm#FFcPgH)lJ(HQydi*_qQOKH7`^Uba`)D`=5FSXx@Og}`3;q;7TnHVbeaGNa7A zhf+ztl$nE(A|^1oqeK;p6qmL$@MBmA(c!eVjy6*rb~IN~y3i*CSfJ!M4rf@$@x7H+ zytdhS*3?Y+a<9MVg3cz0c+DL%W$G*|dusv1ZKT*7e=V$Rc;L%@70`lE6S{8*dKNM5 z=jF_8ZT*N7#)BKm^o2|278a|kGDsiB%v5L-QIpl{xI5o4DUsGJDoB5Cl2%@p_#F>8 z8$IZ}pYAYUJWYJ;O1^c2}LvC{c$)GS4mURQK~6+jr>Dh{VOu^17A<0p8qJ_ z_^qPz%ckIjjA;5zQpcT!n)6fdN?BJxROgrf4FTpX`;f3e99ju>e>$FIXx`*XJE9Qy9ENJ8R7~5j?>e+QZ)nfdwKcj=6uTfL+Rf*ylJ#|{0y6; zfmfeyqIV1uQiU@t)K_u7;~bToFnu+eZp@wT`x}q>mSN7X;W%8myq+6p`>9OcV|q+Z z%of$M&&~fL8O8X&Kkg^S8xBVh31+|N&obA{!mzRHxIEh6YFMvak8a{G^bR;O7GG z_rpW&?f{d))SZ#c+4uf`w~l<7?L1v(VtW%Q5)AE^@wZXQ?c{(T``3o6t=cjU*`bq6 zy{4M=2m+GFlu0qpNXT}yIrzrxXmkG?tMN!oI*;F8;0TfXMRjBnm2QXE?QGVhkL}wM{{+}e;;O==heizey@lAN)H;2$-E6Nr}GFM93vX3 zDgNGjgJUC;tNzoQK#KkQ2e7~k67bZ!>RA2nEStQ~3v=qn@@rSuJbm9{wvAVP!K`mJ z&D-GqVHC^3Aaksbg`-$}=C$ttaBih+w%ZC|^5M5$|J&v|@bY;3GxlR&vu(qHaD6=u z4S{6V_pS@Dt_DU+Z|jLv+Dc3!MJmPY2*(=j7Nbp=IM|Er-!9qeI%@p(K!WW2Ij5U> zJmJFxm~VDHK0J5b0(>RxtQ^jKKJTn0mmkV`^NY*9^s5=TqrvqsO%L0eW5x?i#BCE# zpqjl~*poIyJlh=yx5#tfd!YquW9R#JRL_TjM-W-jY}W%hK9N-leu|`niHV8{o%P18 rR$y*diryh!igwxm^IO|q`tlDf#1387eEb5&zJka|D2i8$8U+0hu2?6U From eaf3bff29ed821801bb45e3ec87acedccbbd2fb7 Mon Sep 17 00:00:00 2001 From: Kwonhyukjoon Date: Fri, 10 Jan 2025 16:22:23 +0900 Subject: [PATCH 3/7] [APP-1049] Update chan name --- .../wannabit/io/cosmostaion/chain/BaseChain.kt | 4 ++-- .../chain/cosmosClass/ChainCosmos.kt | 2 +- .../chain/evmClass/ChainRouterchainEvm.kt | 2 +- .../chain/majorClass/ChainBitCoin44.kt | 3 +-- .../chain/majorClass/ChainBitCoin49.kt | 3 +-- .../chain/majorClass/ChainBitCoin84.kt | 2 +- .../chain/testnetClass/ChainBitcoin44Testnet.kt | 2 +- .../chain/testnetClass/ChainBitcoin49Testnet.kt | 2 +- .../ui/init/WalletSelectViewHolder.kt | 4 ++-- .../cosmostaion/ui/main/ChainEditViewHolder.kt | 4 ++-- .../cosmostaion/ui/main/DashboardViewHolder.kt | 8 ++++---- .../ui/main/chain/cosmos/AboutFragment.kt | 2 +- .../ui/main/chain/evm/EvmAboutFragment.kt | 2 +- .../ui/main/chain/major/MajorAboutFragment.kt | 2 +- .../setting/wallet/account/PrivateViewHolder.kt | 2 +- .../wallet/chain/ChainManageViewHolder.kt | 4 ++-- .../tx/genTx/service/AllChainAllVoteAdapter.kt | 2 +- .../tx/genTx/service/AllChainClaimViewHolder.kt | 2 +- .../service/AllChainCompoundingViewHolder.kt | 2 +- .../tx/genTx/service/AllChainNotVoteAdapter.kt | 2 +- .../res/drawable-hdpi/chain_bitcoin_signet.png | Bin 0 -> 7248 bytes .../res/drawable-mdpi/chain_bitcoin_signet.png | Bin 0 -> 3800 bytes .../res/drawable-xhdpi/chain_bitcoin_signet.png | Bin 0 -> 11474 bytes .../drawable-xxhdpi/chain_bitcoin_signet.png | Bin 0 -> 21833 bytes .../drawable-xxxhdpi/chain_bitcoin_signet.png | Bin 0 -> 35235 bytes 25 files changed, 27 insertions(+), 29 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/chain_bitcoin_signet.png create mode 100644 app/src/main/res/drawable-mdpi/chain_bitcoin_signet.png create mode 100644 app/src/main/res/drawable-xhdpi/chain_bitcoin_signet.png create mode 100644 app/src/main/res/drawable-xxhdpi/chain_bitcoin_signet.png create mode 100644 app/src/main/res/drawable-xxxhdpi/chain_bitcoin_signet.png diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/BaseChain.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/BaseChain.kt index 7976f4cfe..abb4c3ad4 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/chain/BaseChain.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/BaseChain.kt @@ -702,8 +702,8 @@ fun allChains(): MutableList { // chains.add(ChainCosmosTestnet()) // chains.add(ChainArtelaTestnet()) - chains.add(ChainBitcoin44Testnet()) - chains.add(ChainBitcoin49Testnet()) +// chains.add(ChainBitcoin44Testnet()) +// chains.add(ChainBitcoin49Testnet()) chains.add(ChainBitcoin84Testnet()) chains.add(ChainGnoTestnet()) chains.add(ChainInitiaTestnet()) diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/cosmosClass/ChainCosmos.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/cosmosClass/ChainCosmos.kt index 194e8b865..dc9a67d7a 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/chain/cosmosClass/ChainCosmos.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/cosmosClass/ChainCosmos.kt @@ -13,7 +13,7 @@ import wannabit.io.cosmostaion.chain.PubKeyType @Parcelize class ChainCosmos : BaseChain(), Parcelable { - override var name: String = "Cosmos" + override var name: String = "Cosmos Hub" override var tag: String = "cosmos118" override var logo: Int = R.drawable.chain_cosmos override var swipeLogo: Int = R.drawable.chain_swipe_cosmos diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/evmClass/ChainRouterchainEvm.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/evmClass/ChainRouterchainEvm.kt index aec5131c8..79c84d8b0 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/chain/evmClass/ChainRouterchainEvm.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/evmClass/ChainRouterchainEvm.kt @@ -13,7 +13,7 @@ import wannabit.io.cosmostaion.chain.PubKeyType @Parcelize class ChainRouterchainEvm : BaseChain(), Parcelable { - override var name: String = "Routerchain" + override var name: String = "RouterChain" override var tag: String = "routerchain60" override var logo: Int = R.drawable.chain_routerchain override var apiName: String = "routerchain" diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin44.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin44.kt index 38ca762fb..c616edee0 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin44.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin44.kt @@ -6,14 +6,13 @@ import kotlinx.parcelize.Parcelize import org.bitcoinj.crypto.ChildNumber import wannabit.io.cosmostaion.R import wannabit.io.cosmostaion.chain.AccountKeyType -import wannabit.io.cosmostaion.chain.BaseChain import wannabit.io.cosmostaion.chain.PubKeyType import wannabit.io.cosmostaion.common.BaseKey @Parcelize class ChainBitCoin44 : ChainBitCoin84(), Parcelable { - override var name: String = "BitCoin" + override var name: String = "Bitcoin" override var tag: String = "bitcoin44" override var logo: Int = R.drawable.chain_bitcoin override var isDefault: Boolean = false diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin49.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin49.kt index 1c08fece2..2cbdade38 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin49.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin49.kt @@ -6,14 +6,13 @@ import kotlinx.parcelize.Parcelize import org.bitcoinj.crypto.ChildNumber import wannabit.io.cosmostaion.R import wannabit.io.cosmostaion.chain.AccountKeyType -import wannabit.io.cosmostaion.chain.BaseChain import wannabit.io.cosmostaion.chain.PubKeyType import wannabit.io.cosmostaion.common.BaseKey @Parcelize class ChainBitCoin49 : ChainBitCoin84(), Parcelable { - override var name: String = "BitCoin" + override var name: String = "Bitcoin" override var tag: String = "bitcoin49" override var logo: Int = R.drawable.chain_bitcoin override var isDefault: Boolean = false diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin84.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin84.kt index 1bf8d39e8..2b90bcb23 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin84.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/majorClass/ChainBitCoin84.kt @@ -22,7 +22,7 @@ open class ChainBitCoin84 : BaseChain(), Parcelable { open var scriptHash: Byte = 0x05 open var bech32PrefixPattern: String = "bc" - override var name: String = "BitCoin" + override var name: String = "Bitcoin" override var tag: String = "bitcoin84" override var logo: Int = R.drawable.chain_bitcoin override var apiName: String = "bitcoin" diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin44Testnet.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin44Testnet.kt index 0ebeda941..ebfc4eda5 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin44Testnet.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin44Testnet.kt @@ -12,7 +12,7 @@ import wannabit.io.cosmostaion.common.BaseKey @Parcelize class ChainBitcoin44Testnet : ChainBitcoin84Testnet(), Parcelable { - override var name: String = "BitCoin Testnet" + override var name: String = "Bitcoin Testnet" override var tag: String = "bitcoin44_T" override var logo: Int = R.drawable.chain_bitcoin_testnet override var isDefault: Boolean = false diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin49Testnet.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin49Testnet.kt index b38e92ffb..56be60c29 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin49Testnet.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin49Testnet.kt @@ -12,7 +12,7 @@ import wannabit.io.cosmostaion.common.BaseKey @Parcelize class ChainBitcoin49Testnet : ChainBitcoin84Testnet(), Parcelable { - override var name: String = "BitCoin Testnet" + override var name: String = "Bitcoin Testnet" override var tag: String = "bitcoin49_T" override var logo: Int = R.drawable.chain_bitcoin_testnet override var isDefault: Boolean = false diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/init/WalletSelectViewHolder.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/init/WalletSelectViewHolder.kt index 8c9071dfe..b9421356a 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/init/WalletSelectViewHolder.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/init/WalletSelectViewHolder.kt @@ -51,7 +51,7 @@ class WalletSelectViewHolder( ) { binding.apply { chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name if (chain.isEvmCosmos()) { chainAddress.text = chain.address @@ -233,7 +233,7 @@ class WalletSelectViewHolder( ) { binding.apply { chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name chainTypeBadge.visibility = View.GONE if (chain.isEvmCosmos()) { diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/ChainEditViewHolder.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/ChainEditViewHolder.kt index 71c403b81..b98cc0b7f 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/main/ChainEditViewHolder.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/ChainEditViewHolder.kt @@ -46,7 +46,7 @@ class ChainEditViewHolder( binding.apply { updateView(chain, displayChains) chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name skeletonChainValue.visibility = View.VISIBLE skeletonAssetCnt.visibility = View.VISIBLE respondLayout.visibility = View.GONE @@ -162,7 +162,7 @@ class ChainEditViewHolder( binding.apply { updateView(chain, displayChains) chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name if (chain is ChainBitCoin84) { chainLegacy.visibility = View.VISIBLE diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/DashboardViewHolder.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/DashboardViewHolder.kt index 331e9c463..4b1e72bf0 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/main/DashboardViewHolder.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/DashboardViewHolder.kt @@ -50,7 +50,7 @@ class DashboardViewHolder( binding.apply { dashView.setBackgroundResource(R.drawable.item_bg) chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name dashView.heightInDp(114) proLayout.visibility = View.VISIBLE @@ -187,7 +187,7 @@ class DashboardViewHolder( binding.apply { dashView.setBackgroundResource(R.drawable.item_bg) chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name dashView.heightInDp(114) proLayout.visibility = View.VISIBLE @@ -316,7 +316,7 @@ class DashboardViewHolder( binding.apply { dashView.setBackgroundResource(R.drawable.item_bg) chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name handler.removeCallbacks(starEvmAddressAnimation) dashView.heightInDp(68) @@ -392,7 +392,7 @@ class DashboardViewHolder( binding.apply { dashView.setBackgroundResource(R.drawable.item_bg) chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name handler.removeCallbacks(starEvmAddressAnimation) dashView.heightInDp(68) diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/AboutFragment.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/AboutFragment.kt index 2255ede27..1c7cafd99 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/AboutFragment.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/AboutFragment.kt @@ -87,7 +87,7 @@ class AboutFragment : Fragment() { } chainParam = selectedChain.getChainParam() - chainName.text = selectedChain.name.uppercase() + chainName.text = selectedChain.name chainParam?.getAsJsonObject("params")?.getAsJsonObject("chainlist_params")?.let { if (Prefs.language == BaseUtils.LANGUAGE_KOREAN || Locale.getDefault().language == "ko") { chainDescription.text = it.getAsJsonObject("description")?.get("ko")?.asString diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/evm/EvmAboutFragment.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/evm/EvmAboutFragment.kt index c222fcb41..992229a35 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/evm/EvmAboutFragment.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/evm/EvmAboutFragment.kt @@ -73,7 +73,7 @@ class EvmAboutFragment : Fragment() { } chainParam = selectedEvmChain.getChainParam() - chainName.text = selectedEvmChain.name.uppercase() + chainName.text = selectedEvmChain.name chainParam?.getAsJsonObject("params")?.getAsJsonObject("chainlist_params")?.let { if (Prefs.language == BaseUtils.LANGUAGE_KOREAN || Locale.getDefault().language == "ko") { chainDescription.text = it.getAsJsonObject("description")?.get("ko")?.asString diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/major/MajorAboutFragment.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/major/MajorAboutFragment.kt index 6a817cc86..79c9e64dc 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/major/MajorAboutFragment.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/major/MajorAboutFragment.kt @@ -81,7 +81,7 @@ class MajorAboutFragment : Fragment() { } chainParam = selectedChain.getChainParam() - chainName.text = selectedChain.name.uppercase() + chainName.text = selectedChain.name chainParam?.getAsJsonObject("params")?.getAsJsonObject("chainlist_params")?.let { if (Prefs.language == BaseUtils.LANGUAGE_KOREAN || Locale.getDefault().language == "ko") { chainDescription.text = it.getAsJsonObject("description")?.get("ko")?.asString diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/setting/wallet/account/PrivateViewHolder.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/setting/wallet/account/PrivateViewHolder.kt index 04a85a073..9537453ae 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/main/setting/wallet/account/PrivateViewHolder.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/setting/wallet/account/PrivateViewHolder.kt @@ -30,7 +30,7 @@ class PrivateViewHolder( binding.apply { privateView.setBackgroundResource(R.drawable.item_bg) chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name chainPath.text = chain.getHDPath(account.lastHDPath) chainPrivateKey.text = "0x" + chain.privateKey?.toHex() diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/setting/wallet/chain/ChainManageViewHolder.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/setting/wallet/chain/ChainManageViewHolder.kt index 1c00670d9..8d2c0df2b 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/main/setting/wallet/chain/ChainManageViewHolder.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/setting/wallet/chain/ChainManageViewHolder.kt @@ -17,7 +17,7 @@ class ChainManageViewHolder( binding.apply { chainView.setBackgroundResource(R.drawable.item_bg) chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name if (chain is ChainBitCoin84) { grpcLayout.visibility = View.GONE @@ -71,7 +71,7 @@ class ChainManageViewHolder( binding.apply { chainView.setBackgroundResource(R.drawable.item_bg) chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name if (chain is ChainBitCoin84) { grpcLayout.visibility = View.GONE diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainAllVoteAdapter.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainAllVoteAdapter.kt index 54d5b3c51..d61261051 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainAllVoteAdapter.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainAllVoteAdapter.kt @@ -134,7 +134,7 @@ class AllChainAllVoteAdapter( binding.apply { voteAllModel.basechain?.let { chain -> chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name voteCnt.text = voteAllModel.proposals.size.toString() if (voteAllModel.isBusy) { diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainClaimViewHolder.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainClaimViewHolder.kt index 23df10ad4..7123bf32e 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainClaimViewHolder.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainClaimViewHolder.kt @@ -28,7 +28,7 @@ class AllChainClaimViewHolder( valueAbleReward.apply { chainImg.setImageResource(baseChain.logo) - chainName.text = baseChain.name.uppercase() + chainName.text = baseChain.name chainRewardAddress.text = baseChain.cosmosFetcher()?.rewardAddress chainDiffer.goneOrVisible(baseChain.address.uppercase() == baseChain.cosmosFetcher()?.rewardAddress?.uppercase()) if (baseChain.address.uppercase() == baseChain.cosmosFetcher()?.rewardAddress?.uppercase()) { diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainCompoundingViewHolder.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainCompoundingViewHolder.kt index 15ed95aa7..6f58a2865 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainCompoundingViewHolder.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainCompoundingViewHolder.kt @@ -25,7 +25,7 @@ class AllChainCompoundingViewHolder( compoundAbleReward.apply { chainImg.setImageResource(baseChain.logo) - chainName.text = baseChain.name.uppercase() + chainName.text = baseChain.name if (!baseChain.isDefault) { chainBadge.visibility = View.VISIBLE diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainNotVoteAdapter.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainNotVoteAdapter.kt index 161689391..50895203f 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainNotVoteAdapter.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/tx/genTx/service/AllChainNotVoteAdapter.kt @@ -139,7 +139,7 @@ class AllChainNotVoteAdapter( binding.apply { voteAllModel.basechain?.let { chain -> chainImg.setImageResource(chain.logo) - chainName.text = chain.name.uppercase() + chainName.text = chain.name voteCnt.text = voteAllModel.proposals.size.toString() if (voteAllModel.isBusy) { diff --git a/app/src/main/res/drawable-hdpi/chain_bitcoin_signet.png b/app/src/main/res/drawable-hdpi/chain_bitcoin_signet.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e7df82f1d563daeed431cb6af410b8cf92341e GIT binary patch literal 7248 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 IM6N<$g7|DpqyPW_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/chain_bitcoin_signet.png b/app/src/main/res/drawable-xxxhdpi/chain_bitcoin_signet.png new file mode 100644 index 0000000000000000000000000000000000000000..a3e6abeb1626b220142024365b1e7f19066e4b34 GIT binary patch literal 35235 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 literal 0 HcmV?d00001 From b9cae629180cd354cc13e7386b130ebe53f54d8e Mon Sep 17 00:00:00 2001 From: Kwonhyukjoon Date: Mon, 13 Jan 2025 16:25:15 +0900 Subject: [PATCH 4/7] [APP-1075] Init bit inject onGoing with sign --- app/src/main/assets/injectScript.js | 2 +- .../cosmostaion/chain/fetcher/BtcFetcher.kt | 2 +- .../testnetClass/ChainBitcoin84Testnet.kt | 4 +- .../ui/main/chain/cosmos/CoinFragment.kt | 1 + .../main/chain/major/MajorCryptoFragment.kt | 13 + .../cosmostaion/ui/main/dapp/DappActivity.kt | 301 ++++++++++++++++-- .../ui/main/dapp/PopUpBitSignFragment.kt | 181 +++++++++++ app/src/main/res/layout/fragment_bit_sign.xml | 246 ++++++++++++++ app/src/main/res/layout/fragment_coin.xml | 13 + app/src/main/res/raw/babylon.json | 1 + 10 files changed, 736 insertions(+), 28 deletions(-) create mode 100644 app/src/main/java/wannabit/io/cosmostaion/ui/main/dapp/PopUpBitSignFragment.kt create mode 100644 app/src/main/res/layout/fragment_bit_sign.xml create mode 100644 app/src/main/res/raw/babylon.json diff --git a/app/src/main/assets/injectScript.js b/app/src/main/assets/injectScript.js index b77119e69..2a7c84954 100644 --- a/app/src/main/assets/injectScript.js +++ b/app/src/main/assets/injectScript.js @@ -1,2 +1,2 @@ /*! For license information please see bundle.js.LICENSE.txt */ -(()=>{var e={8253:(e,t)=>{function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{"use strict";t.byteLength=function(e){var t=a(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,i=a(e),s=i[0],c=i[1],u=new o(function(e,t,r){return 3*(t+r)/4-r}(0,s,c)),l=0,d=c>0?s-4:s;for(r=0;r>16&255,u[l++]=t>>8&255,u[l++]=255&t;return 2===c&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,u[l++]=255&t),1===c&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,u[l++]=t>>8&255,u[l++]=255&t),u},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],s=16383,a=0,u=n-o;au?u:a+s));return 1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),i.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)r[s]=i[s],n[i.charCodeAt(s)]=s;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,n){for(var o,i,s=[],a=t;a>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return s.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},8764:(e,t,r)=>{"use strict";const n=r(9742),o=r(645),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.lW=c,t.h2=50;const s=2147483647;function a(e){if(e>s)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,c.prototype),t}function c(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return d(e)}return u(e,t,r)}function u(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!c.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|g(e,t);let n=a(r);const o=n.write(e,t);return o!==r&&(n=n.slice(0,o)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if($(e,Uint8Array)){const t=new Uint8Array(e);return h(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if($(e,ArrayBuffer)||e&&$(e.buffer,ArrayBuffer))return h(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&($(e,SharedArrayBuffer)||e&&$(e.buffer,SharedArrayBuffer)))return h(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return c.from(n,t,r);const o=function(e){if(c.isBuffer(e)){const t=0|p(e.length),r=a(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||J(e.length)?a(0):f(e):"Buffer"===e.type&&Array.isArray(e.data)?f(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return c.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function d(e){return l(e),a(e<0?0:0|p(e))}function f(e){const t=e.length<0?0:0|p(e.length),r=a(t);for(let n=0;n=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|e}function g(e,t){if(c.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||$(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(o)return n?-1:F(e).length;t=(""+t).toLowerCase(),o=!0}}function y(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return j(this,t,r);case"utf8":case"utf-8":return P(this,t,r);case"ascii":return B(this,t,r);case"latin1":case"binary":return I(this,t,r);case"base64":return _(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function b(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function m(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),J(r=+r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=c.from(t,n)),c.isBuffer(t))return 0===t.length?-1:v(e,t,r,n,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function v(e,t,r,n,o){let i,s=1,a=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,r/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(o){let n=-1;for(i=r;ia&&(r=a-c),i=r;i>=0;i--){let r=!0;for(let n=0;no&&(n=o):n=o;const i=t.length;let s;for(n>i/2&&(n=i/2),s=0;s>8,o=r%256,i.push(o),i.push(n);return i}(t,e.length-r),e,r,n)}function _(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function P(e,t,r){r=Math.min(e.length,r);const n=[];let o=t;for(;o239?4:t>223?3:t>191?2:1;if(o+s<=r){let r,n,a,c;switch(s){case 1:t<128&&(i=t);break;case 2:r=e[o+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(i=c));break;case 3:r=e[o+1],n=e[o+2],128==(192&r)&&128==(192&n)&&(c=(15&t)<<12|(63&r)<<6|63&n,c>2047&&(c<55296||c>57343)&&(i=c));break;case 4:r=e[o+1],n=e[o+2],a=e[o+3],128==(192&r)&&128==(192&n)&&128==(192&a)&&(c=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&a,c>65535&&c<1114112&&(i=c))}}null===i?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|1023&i),n.push(i),o+=s}return function(e){const t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn.length?(c.isBuffer(t)||(t=c.from(t)),t.copy(n,o)):Uint8Array.prototype.set.call(n,t,o);else{if(!c.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,o)}o+=t.length}return n},c.byteLength=g,c.prototype._isBuffer=!0,c.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(e+=" ... "),""},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(e,t,r,n,o){if($(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),!c.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;let i=(o>>>=0)-(n>>>=0),s=(r>>>=0)-(t>>>=0);const a=Math.min(i,s),u=this.slice(n,o),l=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let i=!1;for(;;)switch(n){case"hex":return w(this,e,t,r);case"utf8":case"utf-8":return O(this,e,t,r);case"ascii":case"latin1":case"binary":return E(this,e,t,r);case"base64":return A(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function B(e,t,r){let n="";r=Math.min(e.length,r);for(let o=t;on)&&(r=n);let o="";for(let n=t;nr)throw new RangeError("Trying to access beyond buffer length")}function M(e,t,r,n,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function C(e,t,r,n,o){W(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,r}function U(e,t,r,n,o){W(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r+7]=i,i>>=8,e[r+6]=i,i>>=8,e[r+5]=i,i>>=8,e[r+4]=i;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s>>=8,e[r+2]=s,s>>=8,e[r+1]=s,s>>=8,e[r]=s,r+8}function D(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function N(e,t,r,n,i){return t=+t,r>>>=0,i||D(e,0,r,4),o.write(e,t,r,n,23,4),r+4}function k(e,t,r,n,i){return t=+t,r>>>=0,i||D(e,0,r,8),o.write(e,t,r,n,52,8),r+8}c.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||R(e,t,this.length);let n=this[e],o=1,i=0;for(;++i>>=0,t>>>=0,r||R(e,t,this.length);let n=this[e+--t],o=1;for(;t>0&&(o*=256);)n+=this[e+--t]*o;return n},c.prototype.readUint8=c.prototype.readUInt8=function(e,t){return e>>>=0,t||R(e,1,this.length),this[e]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(e,t){return e>>>=0,t||R(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(e,t){return e>>>=0,t||R(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(e,t){return e>>>=0,t||R(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(e,t){return e>>>=0,t||R(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readBigUInt64LE=X((function(e){q(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||G(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,o=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(o)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||G(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],o=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||R(e,t,this.length);let n=this[e],o=1,i=0;for(;++i=o&&(n-=Math.pow(2,8*t)),n},c.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||R(e,t,this.length);let n=t,o=1,i=this[e+--n];for(;n>0&&(o*=256);)i+=this[e+--n]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return e>>>=0,t||R(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){e>>>=0,t||R(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(e,t){e>>>=0,t||R(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(e,t){return e>>>=0,t||R(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return e>>>=0,t||R(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readBigInt64LE=X((function(e){q(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||G(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||G(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||R(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return e>>>=0,t||R(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return e>>>=0,t||R(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return e>>>=0,t||R(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||M(this,e,t,r,Math.pow(2,8*r)-1,0);let o=1,i=0;for(this[t]=255&e;++i>>=0,r>>>=0,n||M(this,e,t,r,Math.pow(2,8*r)-1,0);let o=r-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+r},c.prototype.writeUint8=c.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,1,255,0),this[t]=255&e,t+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigUInt64LE=X((function(e,t=0){return C(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeBigUInt64BE=X((function(e,t=0){return U(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);M(this,e,t,r,n-1,-n)}let o=0,i=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+r},c.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);M(this,e,t,r,n-1,-n)}let o=r-1,i=1,s=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/i>>0)-s&255;return t+r},c.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},c.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||M(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigInt64LE=X((function(e,t=0){return C(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeBigInt64BE=X((function(e,t=0){return U(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeFloatLE=function(e,t,r){return N(this,e,t,!0,r)},c.prototype.writeFloatBE=function(e,t,r){return N(this,e,t,!1,r)},c.prototype.writeDoubleLE=function(e,t,r){return k(this,e,t,!0,r)},c.prototype.writeDoubleBE=function(e,t,r){return k(this,e,t,!1,r)},c.prototype.copy=function(e,t,r,n){if(!c.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function W(e,t,r,n,o,i){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(i+1)}${n}`:`>= -(2${n} ** ${8*(i+1)-1}${n}) and < 2 ** ${8*(i+1)-1}${n}`:`>= ${t}${n} and <= ${r}${n}`,new L.ERR_OUT_OF_RANGE("value",o,e)}!function(e,t,r){q(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||G(t,e.length-(r+1))}(n,o,i)}function q(e,t){if("number"!=typeof e)throw new L.ERR_INVALID_ARG_TYPE(t,"number",e)}function G(e,t,r){if(Math.floor(e)!==e)throw q(e,r),new L.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new L.ERR_BUFFER_OUT_OF_BOUNDS;throw new L.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}z("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),z("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),z("ERR_OUT_OF_RANGE",(function(e,t,r){let n=`The value of "${e}" is out of range.`,o=r;return Number.isInteger(r)&&Math.abs(r)>2**32?o=V(String(r)):"bigint"==typeof r&&(o=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(o=V(o)),o+="n"),n+=` It must be ${t}. Received ${o}`,n}),RangeError);const K=/[^+/0-9A-Za-z-_]/g;function F(e,t){let r;t=t||1/0;const n=e.length;let o=null;const i=[];for(let s=0;s55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function H(e){return n.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(K,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Q(e,t,r,n){let o;for(o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function $(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function J(e){return e!=e}const Z=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let o=0;o<16;++o)t[n+o]=e[r]+e[o]}return t}();function X(e){return"undefined"==typeof BigInt?Y:e}function Y(){throw new Error("BigInt not supported")}},645:(e,t)=>{t.read=function(e,t,r,n,o){var i,s,a=8*o-n-1,c=(1<>1,l=-7,d=r?o-1:0,f=r?-1:1,h=e[t+d];for(d+=f,i=h&(1<<-l)-1,h>>=-l,l+=a;l>0;i=256*i+e[t+d],d+=f,l-=8);for(s=i&(1<<-l)-1,i>>=-l,l+=n;l>0;s=256*s+e[t+d],d+=f,l-=8);if(0===i)i=1-u;else{if(i===c)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,n),i-=u}return(h?-1:1)*s*Math.pow(2,i-n)},t.write=function(e,t,r,n,o,i){var s,a,c,u=8*i-o-1,l=(1<>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:i-1,p=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=l):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+d>=1?f/c:f*Math.pow(2,1-d))*c>=2&&(s++,c/=2),s+d>=l?(a=0,s=l):s+d>=1?(a=(t*c-1)*Math.pow(2,o),s+=d):(a=t*Math.pow(2,d-1)*Math.pow(2,o),s=0));o>=8;e[r+h]=255&a,h+=p,a/=256,o-=8);for(s=s<0;e[r+h]=255&s,h+=p,s/=256,u-=8);e[r+h-p]|=128*g}},9537:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RPC_ERROR_MESSAGE=t.RPC_ERROR=void 0,t.RPC_ERROR={INVALID_INPUT:-32e3,RESOURCE_NOT_FOUND:-32001,RESOURCE_UNAVAILABLE:-32002,TRANSACTION_REJECTED:-32003,METHOD_NOT_SUPPORTED:-32004,LIMIT_EXCEEDED:-32005,PARSE:-32700,INVALID_REQUEST:-32600,METHOD_NOT_FOUND:-32601,INVALID_PARAMS:-32602,INTERNAL:-32603,USER_REJECTED_REQUEST:4001,UNAUTHORIZED:4100,UNSUPPORTED_METHOD:4200,DISCONNECTED:4900,CHAIN_DISCONNECTED:4901,LEDGER_UNSUPPORTED_METHOD:5e3,LEDGER_UNSUPPORTED_CHAIN:5001},t.RPC_ERROR_MESSAGE={[t.RPC_ERROR.PARSE]:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.",[t.RPC_ERROR.INVALID_REQUEST]:"The JSON sent is not a valid Request object.",[t.RPC_ERROR.METHOD_NOT_FOUND]:"The method does not exist / is not available.",[t.RPC_ERROR.INVALID_PARAMS]:"Invalid method parameter(s).",[t.RPC_ERROR.INTERNAL]:"Internal JSON-RPC error.",[t.RPC_ERROR.INVALID_INPUT]:"Invalid input.",[t.RPC_ERROR.RESOURCE_NOT_FOUND]:"Resource not found.",[t.RPC_ERROR.RESOURCE_UNAVAILABLE]:"Resource unavailable.",[t.RPC_ERROR.TRANSACTION_REJECTED]:"Transaction rejected.",[t.RPC_ERROR.METHOD_NOT_SUPPORTED]:"Method not supported.",[t.RPC_ERROR.LIMIT_EXCEEDED]:"Request limit exceeded.",[t.RPC_ERROR.USER_REJECTED_REQUEST]:"User rejected the request."}},9582:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.COSMOSTATION_RDNS=t.COSMOSTATION_WALLET_NAME=t.COSMOSTATION_ENCODED_LOGO_IMAGE=void 0,t.COSMOSTATION_ENCODED_LOGO_IMAGE="data:image/png;base64,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",t.COSMOSTATION_WALLET_NAME="Cosmostation Wallet",t.COSMOSTATION_RDNS="io.cosmostation"},2891:function(e,t,r){"use strict";var n=r(8764).lW,o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.keplrAPIs=void 0;const i=r(7091),s=r(2753),a=e=>o(void 0,void 0,void 0,(function*(){try{const t=yield(0,s.request)({method:"cos_requestAccount",params:{chainName:e}});return{isNanoLedger:t.isLedger,isKeystone:t.isKeystone,algo:t.isEthermint?"ethsecp256k1":"secp256k1",pubKey:(0,i.hexToBytes)(t.publicKey),bech32Address:t.address,name:t.name,address:new Uint8Array}}catch(e){throw new Error(e.message||"Unknown Error")}})),c=(e,t,r,n)=>o(void 0,void 0,void 0,(function*(){var t,o,i,a,c,u;try{const l=yield(0,s.request)({method:"cos_signAmino",params:{chainName:e,isEditFee:!(null!==(t=null==n?void 0:n.preferNoSetFee)&&void 0!==t?t:null===(o=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===o?void 0:o.preferNoSetFee),isEditMemo:!(null!==(i=null==n?void 0:n.preferNoSetMemo)&&void 0!==i?i:null===(a=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===a?void 0:a.preferNoSetMemo),isCheckBalance:!(null!==(c=null==n?void 0:n.disableBalanceCheck)&&void 0!==c?c:null===(u=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===u?void 0:u.disableBalanceCheck),doc:r}});return{signed:l.signed_doc,signature:{pub_key:l.pub_key,signature:l.signature}}}catch(e){throw new Error(e.message||"Unknown Error")}})),u=(e,t,r,n)=>o(void 0,void 0,void 0,(function*(){var t,o,i,a,c,u;const l=yield(0,s.request)({method:"cos_signDirect",params:{chainName:e,doc:{account_number:String(r.accountNumber),auth_info_bytes:r.authInfoBytes,body_bytes:r.bodyBytes,chain_id:r.chainId},isEditFee:!(null!==(t=null==n?void 0:n.preferNoSetFee)&&void 0!==t?t:null===(o=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===o?void 0:o.preferNoSetFee),isEditMemo:!(null!==(i=null==n?void 0:n.preferNoSetMemo)&&void 0!==i?i:null===(a=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===a?void 0:a.preferNoSetMemo),isCheckBalance:!(null!==(c=null==n?void 0:n.disableBalanceCheck)&&void 0!==c?c:null===(u=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===u?void 0:u.disableBalanceCheck)}});return{signed:{accountNumber:l.signed_doc.account_number,chainId:l.signed_doc.chain_id,authInfoBytes:new Uint8Array(l.signed_doc.auth_info_bytes),bodyBytes:new Uint8Array(l.signed_doc.body_bytes)},signature:{pub_key:l.pub_key,signature:l.signature}}})),l=(e,t)=>({signAmino:(r,n)=>o(void 0,void 0,void 0,(function*(){return c(e,0,n,t)})),signDirect:(r,n)=>o(void 0,void 0,void 0,(function*(){return u(e,0,n,t)})),getAccounts:()=>o(void 0,void 0,void 0,(function*(){const t=yield a(e);return[{address:t.bech32Address,pubkey:t.pubKey,algo:t.algo}]})),chainId:e}),d=(e,t)=>({signAmino:(r,n)=>o(void 0,void 0,void 0,(function*(){return c(e,0,n,t)})),getAccounts:()=>o(void 0,void 0,void 0,(function*(){const t=yield a(e);return[{address:t.bech32Address,pubkey:t.pubKey,algo:t.algo}]})),chainId:e});t.keplrAPIs={enable:e=>o(void 0,void 0,void 0,(function*(){if(!e)throw new Error("chain id not set");const t="string"==typeof e?[e]:e,r=yield(0,s.request)({method:"cos_supportedChainIds",params:void 0}),n=[...r.official,...r.unofficial],o=t.find((e=>!n.includes(e)));if(o)throw new Error(`There is no chain info for ${o}`);yield(0,s.request)({method:"cos_requestAccount",params:{chainName:t[0]}})})),getKey:a,experimentalSuggestChain:e=>o(void 0,void 0,void 0,(function*(){try{const t=yield(0,s.request)({method:"cos_supportedChainIds",params:void 0});[...t.official,...t.unofficial].includes(e.chainId)}catch(e){throw new Error(e.message||"Unknown Error")}})),signAmino:c,signDirect:u,sendTx:(e,t,r)=>o(void 0,void 0,void 0,(function*(){try{const o=(()=>{if("number"==typeof r)return r;if("string"==typeof r){if("block"===r)return 1;if("sync"===r)return 2;if("async"===r)return 3}return 0})(),i=yield(0,s.request)({method:"cos_sendTransaction",params:{chainName:e,mode:o,txBytes:n.from(t).toString("base64")}});return n.from(i.tx_response.txhash,"hex")}catch(e){throw new Error(e.message||"Unknown Error")}})),getOfflineSigner:l,getOfflineSignerOnlyAmino:d,getOfflineSignerAuto:(e,t)=>o(void 0,void 0,void 0,(function*(){return(yield(0,s.request)({method:"cos_requestAccount",params:{chainName:e}})).isLedger?d(e,t):l(e,t)})),signArbitrary:(e,t,r)=>o(void 0,void 0,void 0,(function*(){const o="string"==typeof r?r:n.from(r).toString("utf8");return yield(0,s.request)({method:"cos_signMessage",params:{chainName:e,signer:t,message:o}})})),verifyArbitrary:(e,t,r,i)=>o(void 0,void 0,void 0,(function*(){const o="string"==typeof r?r:n.from(r).toString("utf8");return yield(0,s.request)({method:"cos_verifyMessage",params:{chainName:e,signer:t,message:o,publicKey:i.pub_key.value,signature:i.signature}})})),suggestToken:(e,t)=>o(void 0,void 0,void 0,(function*(){try{yield(0,s.request)({method:"cos_addTokensCW20",params:{chainName:e,tokens:[{contractAddress:t}]}})}catch(e){throw new Error(e.message||"Unknown Error")}}))}},6720:function(e,t,r){"use strict";var n=r(8764).lW,o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.walletsAPIs=void 0;const i=r(2753);t.walletsAPIs={connect:e=>o(void 0,void 0,void 0,(function*(){const t="string"==typeof e?[e]:e,r=yield(0,i.request)({method:"cos_supportedChainIds",params:void 0});if(!t.every((e=>r.official.includes(e)||r.unofficial.includes(e))))throw new Error("Unsupported chainId is exist");yield(0,i.request)({method:"cos_requestAccount",params:{chainName:t[0]}})})),getAccount:e=>o(void 0,void 0,void 0,(function*(){try{const t=yield(0,i.request)({method:"cos_requestAccount",params:{chainName:e}});return{name:t.name,is_ledger:!!t.isLedger,public_key:{type:t.isEthermint?"ethsecp256k1":"secp256k1",value:n.from(t.publicKey,"hex").toString("base64")},address:t.address}}catch(e){throw new Error(e.message||"Unknown Error")}})),signAmino:(e,t,r)=>o(void 0,void 0,void 0,(function*(){var n,o;try{const s=yield(0,i.request)({method:"cos_signAmino",params:{chainName:e,doc:t,isEditFee:null===(n=null==r?void 0:r.edit_mode)||void 0===n?void 0:n.fee,isEditMemo:null===(o=null==r?void 0:r.edit_mode)||void 0===o?void 0:o.memo,isCheckBalance:null==r?void 0:r.is_check_balance}});return{signature:s.signature,signed_doc:s.signed_doc}}catch(e){throw new Error(e.message||"Unknown Error")}})),signDirect:(e,t,r)=>o(void 0,void 0,void 0,(function*(){var o,s;const a="string"==typeof t.body_bytes?new Uint8Array(n.from(t.body_bytes,"hex")):new Uint8Array(t.body_bytes),c="string"==typeof t.auth_info_bytes?new Uint8Array(n.from(t.auth_info_bytes,"hex")):new Uint8Array(t.auth_info_bytes);try{const n=yield(0,i.request)({method:"cos_signDirect",params:{chainName:e,doc:Object.assign(Object.assign({},t),{body_bytes:a,auth_info_bytes:c}),isEditFee:null===(o=null==r?void 0:r.edit_mode)||void 0===o?void 0:o.fee,isEditMemo:null===(s=null==r?void 0:r.edit_mode)||void 0===s?void 0:s.memo,isCheckBalance:null==r?void 0:r.is_check_balance}});return{signature:n.signature,signed_doc:{auth_info_bytes:n.signed_doc.auth_info_bytes,body_bytes:n.signed_doc.body_bytes}}}catch(e){throw new Error(e.message||"Unknown Error")}})),sendTransaction:(e,t,r)=>o(void 0,void 0,void 0,(function*(){var o,s;const a=null!=r?r:2,c=yield(0,i.request)({method:"cos_sendTransaction",params:{chainName:e,mode:a,txBytes:t&&"object"==typeof t?n.from(t).toString("base64"):t}});if(0!==(null===(o=null==c?void 0:c.tx_response)||void 0===o?void 0:o.code))throw"string"==typeof(null===(s=null==c?void 0:c.tx_response)||void 0===s?void 0:s.raw_log)?new Error(c.tx_response.raw_log):new Error("Unknown Error");return c.tx_response.txhash})),signMessage:(e,t,r)=>o(void 0,void 0,void 0,(function*(){return{signature:(yield(0,i.request)({method:"cos_signMessage",params:{chainName:e,signer:r,message:t}})).signature}})),verifyMessage:(e,t,r,n,s)=>o(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"cos_verifyMessage",params:{chainName:e,signer:r,message:t,publicKey:s,signature:n}})})),disconnect:()=>o(void 0,void 0,void 0,(function*(){yield(0,i.request)({method:"cos_disconnect",params:void 0})})),addChain:e=>o(void 0,void 0,void 0,(function*(){yield(0,i.request)({method:"cos_addChain",params:{addressPrefix:e.address_prefix,baseDenom:e.base_denom,chainId:e.chain_id,chainName:e.chain_name,coinType:e.coin_type,decimals:e.decimals,displayDenom:e.display_denom,gasRate:e.gas_rate,restURL:e.lcd_url,coinGeckoId:e.coingecko_id,cosmWasm:e.cosmwasm,imageURL:e.image_url,type:e.type}})})),getSupportedChainIds:()=>o(void 0,void 0,void 0,(function*(){const e=yield(0,i.request)({method:"cos_supportedChainIds",params:void 0});return[...e.official,...e.unofficial]})),on:(e,t)=>{"AccountChanged"===e&&window.addEventListener("cosmostation_keystorechange",t)},off:(e,t)=>{"AccountChanged"===e&&window.removeEventListener("cosmostation_keystorechange",t)}}},9392:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tendermint=t.cosmos=t.cosmosWallet=t.keplr=void 0;const n=r(2891),o=r(9582),i=r(2753),s=r(6720);t.keplr={mode:"extension",version:"0.0.0",defaultOptions:{sign:{disableBalanceCheck:!1,preferNoSetFee:!1,preferNoSetMemo:!1}},enable:n.keplrAPIs.enable,getKey:n.keplrAPIs.getKey,experimentalSuggestChain:n.keplrAPIs.experimentalSuggestChain,signAmino:n.keplrAPIs.signAmino,signDirect:n.keplrAPIs.signDirect,sendTx:n.keplrAPIs.sendTx,getOfflineSigner:n.keplrAPIs.getOfflineSigner,getOfflineSignerOnlyAmino:n.keplrAPIs.getOfflineSignerOnlyAmino,getOfflineSignerAuto:n.keplrAPIs.getOfflineSignerAuto,signArbitrary:n.keplrAPIs.signArbitrary,verifyArbitrary:n.keplrAPIs.verifyArbitrary,suggestToken:n.keplrAPIs.suggestToken},t.cosmosWallet={name:o.COSMOSTATION_WALLET_NAME,logo:o.COSMOSTATION_ENCODED_LOGO_IMAGE,methods:{connect:s.walletsAPIs.connect,getAccount:s.walletsAPIs.getAccount,signAmino:s.walletsAPIs.signAmino,signDirect:s.walletsAPIs.signDirect,sendTransaction:s.walletsAPIs.sendTransaction,signMessage:s.walletsAPIs.signMessage,verifyMessage:s.walletsAPIs.verifyMessage,disconnect:s.walletsAPIs.disconnect,addChain:s.walletsAPIs.addChain,getSupportedChainIds:s.walletsAPIs.getSupportedChainIds},events:{on:s.walletsAPIs.on,off:s.walletsAPIs.off}};const a=(e,t)=>{},c=(e,t)=>{};t.cosmos={on:a,off:c,request:i.request},t.tendermint={on:a,off:c,request:i.request}},2753:function(e,t,r){"use strict";var n=r(8764).lW,o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.request=t.executeRequest=void 0;const i=r(9537),s=r(7359),a=r(36),c=r(7091),u=r(2390);t.executeRequest=e=>new Promise(((t,r)=>{const n=(0,u.uuidv4)(),o=e=>{var i,s,a;if((null===(i=e.data)||void 0===i?void 0:i.isCosmostation)&&(null===(s=e.data)||void 0===s?void 0:s.messageId)===n){window.removeEventListener("message",o);const{data:n}=e;(null===(a=n.response)||void 0===a?void 0:a.error)?r(n.response.error):t(n.response.result)}};window.addEventListener("message",o),(0,a.sendMessageWebToApp)(e,n)})),t.request=e=>o(void 0,void 0,void 0,(function*(){var r,a,u,l;if("cos_requestAccount"===e.method||"cos_account"===e.method||"ten_requestAccount"===e.method||"ten_account"===e.method){const r=yield(0,t.executeRequest)(e),{publicKey:n}=r;return Object.assign(Object.assign({},r),{publicKey:(0,c.hexToBytes)(n)})}if("cos_requestAccounts"===e.method){const n=yield(0,t.executeRequest)({method:"cos_supportedChainIds",params:void 0});if(!(null===(a=null===(r=e.params)||void 0===r?void 0:r.chainIds)||void 0===a?void 0:a.every((e=>{var t,r;return(null===(t=null==n?void 0:n.official)||void 0===t?void 0:t.includes(e))||(null===(r=null==n?void 0:n.unofficial)||void 0===r?void 0:r.includes(e))}))))throw new s.CosmosRPCError(i.RPC_ERROR.INVALID_PARAMS,i.RPC_ERROR_MESSAGE[i.RPC_ERROR.INVALID_PARAMS]);const d=Object.assign(Object.assign({},e),{method:"cos_requestAccount",params:{chainName:null===(l=null===(u=e.params)||void 0===u?void 0:u.chainIds)||void 0===l?void 0:l[0]}});return yield(0,t.executeRequest)(d),(yield Promise.all(e.params.chainIds.map((e=>o(void 0,void 0,void 0,(function*(){return yield(0,t.executeRequest)({method:"cos_requestAccount",params:{chainName:e}})})))))).map((e=>{const{publicKey:t}=e;return Object.assign(Object.assign({},e),{publicKey:(0,c.hexToBytes)(t)})}))}if("cos_signDirect"===e.method||"ten_signDirect"===e.method){const{params:r}=e,n=null==r?void 0:r.doc,o=n?Object.assign(Object.assign({},n),{auth_info_bytes:(0,c.bytesToHex)(n.auth_info_bytes),body_bytes:(0,c.bytesToHex)(n.body_bytes)}):n,i=r?Object.assign(Object.assign({},r),{doc:o}):r,s=Object.assign(Object.assign({},e),{params:i}),a=yield(0,t.executeRequest)(s);return Object.assign(Object.assign({},a),{signed_doc:Object.assign(Object.assign({},a.signed_doc),{auth_info_bytes:(0,c.hexToBytes)(a.signed_doc.auth_info_bytes),body_bytes:(0,c.hexToBytes)(a.signed_doc.body_bytes)})})}if("cos_sendTransaction"===e.method){const{params:r}=e,o=(null==r?void 0:r.txBytes)&&"object"==typeof r.txBytes?n.from(r.txBytes).toString("base64"):r.txBytes,i=Object.assign(Object.assign({},r),{txBytes:o}),s=Object.assign(Object.assign({},e),{params:i});return(0,t.executeRequest)(s)}return(0,t.executeRequest)(e)}))},3180:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ethereumAPIs=void 0;const o=r(36),i=r(2390),s=r(8684);t.ethereumAPIs={on:(e,t)=>{const r=r=>{var o,i,a,c,u,l,d,f;(null===(o=r.data)||void 0===o?void 0:o.isCosmostation)&&(null===(i=r.data)||void 0===i?void 0:i.type)===e&&("accountsChanged"===e&&Array.isArray(null===(c=null===(a=r.data)||void 0===a?void 0:a.message)||void 0===c?void 0:c.result)&&0===(null===(l=null===(u=r.data)||void 0===u?void 0:u.message)||void 0===l?void 0:l.result.length)?n(void 0,void 0,void 0,(function*(){try{const e=yield(0,s.request)({method:"eth_requestAccounts",params:{}});t(e)}catch(e){t([])}})):t(null===(f=null===(d=r.data)||void 0===d?void 0:d.message)||void 0===f?void 0:f.result))};return window.addEventListener("message",r),window.cosmostation.handlerInfos.push({eventName:e,originHandler:t,handler:r}),r},off:(e,t)=>{if(void 0===t)window.removeEventListener("message",e);else{const r=window.cosmostation.handlerInfos.filter((r=>r.eventName===e&&r.originHandler===t)),n=window.cosmostation.handlerInfos.filter((r=>!(r.eventName===e&&r.originHandler===t)));r.forEach((e=>{window.removeEventListener("message",e.handler)})),window.cosmostation.handlerInfos=n}},send:(e,t)=>{const r=(0,i.uuidv4)();if("string"==typeof e)return new Promise(((n,i)=>{const s=e=>{var t,o,a;if((null===(t=e.data)||void 0===t?void 0:t.isCosmostation)&&(null===(o=e.data)||void 0===o?void 0:o.messageId)===r){window.removeEventListener("message",s);const{data:t}=e;(null===(a=t.response)||void 0===a?void 0:a.error)?i(t.response):n({result:t.response.result,jsonrpc:"2.0",id:void 0})}};window.addEventListener("message",s),(0,o.sendMessageWebToApp)({method:e,params:t},r)}));const n=o=>{var i,s,a;if((null===(i=o.data)||void 0===i?void 0:i.isCosmostation)&&(null===(s=o.data)||void 0===s?void 0:s.messageId)===r){window.removeEventListener("message",n);const{data:r}=o;"function"==typeof t&&((null===(a=r.response)||void 0===a?void 0:a.error)?t(r.response.error,{id:e.id,jsonrpc:"2.0",method:e.method,error:r.response.error}):t(null,{id:e.id,jsonrpc:"2.0",method:e.method,error:r.response.error,result:r.response.result}))}};window.addEventListener("message",n),(0,o.sendMessageWebToApp)({method:e.method,params:e.params},r)},sendAsync:(e,t)=>{const r=(0,i.uuidv4)(),n=o=>{var i,s,a;if((null===(i=o.data)||void 0===i?void 0:i.isCosmostation)&&(null===(s=o.data)||void 0===s?void 0:s.messageId)===r){window.removeEventListener("message",n);const{data:r}=o;(null===(a=r.response)||void 0===a?void 0:a.error)?t(r.response.error,{id:e.id,jsonrpc:"2.0",method:e.method,error:r.response.error}):t(null,{id:e.id,jsonrpc:"2.0",method:e.method,error:r.response.error,result:r.response.result})}};window.addEventListener("message",n),(0,o.sendMessageWebToApp)({method:e.method,params:e.params},r)},enable:()=>(0,s.request)({method:"eth_requestAccounts",params:[]})}},9360:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.announceEthereumProvider=t.ethereum=void 0;const n=r(2390),o=r(9582),i=r(8684),s=r(3180);t.ethereum={isMetaMask:!0,on:s.ethereumAPIs.on,addListener:s.ethereumAPIs.on,off:s.ethereumAPIs.off,removeListener:s.ethereumAPIs.off,request:i.request,send:s.ethereumAPIs.send,sendAsync:s.ethereumAPIs.sendAsync,enable:s.ethereumAPIs.enable};const a=(0,n.uuidv4)(),c=()=>{const e={uuid:a,name:o.COSMOSTATION_WALLET_NAME,icon:o.COSMOSTATION_ENCODED_LOGO_IMAGE,rdns:o.COSMOSTATION_RDNS};window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:e,provider:t.ethereum})}))};t.announceEthereumProvider=()=>{window.addEventListener("eip6963:requestProvider",(()=>{c()})),c()}},8684:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.request=void 0;const n=r(36),o=r(2390);t.request=function(e){return new Promise(((t,r)=>{const i=(0,o.uuidv4)(),s=e=>{var n,o,a;if((null===(n=e.data)||void 0===n?void 0:n.isCosmostation)&&(null===(o=e.data)||void 0===o?void 0:o.messageId)===i){window.removeEventListener("message",s);const{data:n}=e;(null===(a=n.response)||void 0===a?void 0:a.error)?r(n.response.error):t(n.response.result)}};window.addEventListener("message",s),(0,n.sendMessageWebToApp)(e,i)}))}},1170:function(e,t,r){"use strict";var n=r(8764).lW,o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.suiAPIs=void 0;const i=r(9041),s=r(9108);t.suiAPIs={on:(e,t)=>o(void 0,void 0,void 0,(function*(){console.log(e,t)})),off:(e,t)=>o(void 0,void 0,void 0,(function*(){console.log(e,t)})),getAccounts:()=>o(void 0,void 0,void 0,(function*(){return[(yield(0,i.request)({method:"sui_getAccount",params:void 0})).address]})),getPublicKey:()=>o(void 0,void 0,void 0,(function*(){return(yield(0,i.request)({method:"sui_getAccount",params:void 0})).publicKey})),getChain:()=>o(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"sui_getChain"})})),signTransactionBlock:e=>(0,i.request)({method:"sui_signTransactionBlock",params:{transactionBlockSerialized:e.transactionBlock.serialize()}}),signTransaction:e=>o(void 0,void 0,void 0,(function*(){const t={transactionBlockSerialized:yield e.transaction.toJSON(),signal:e.signal},r=yield(0,i.request)({method:"sui_signTransaction",params:t});return{bytes:r.transactionBlockBytes,signature:r.signature}})),signAndExecuteTransactionBlock:e=>(0,i.request)({method:"sui_signAndExecuteTransactionBlock",params:{transactionBlockSerialized:e.transactionBlock.serialize(),options:e.options,requestType:e.requestType}}),signAndExecuteTransaction:e=>o(void 0,void 0,void 0,(function*(){const t={transactionBlockSerialized:yield e.transaction.toJSON(),signal:e.signal,options:{showRawEffects:!0,showRawInput:!0}},r=yield(0,i.request)({method:"sui_signAndExecuteTransaction",params:t}),[{txSignatures:[o],intentMessage:{value:a}}]=s.bcs.SenderSignedData.parse(n.from(r.rawTransaction,"base64")),c=s.bcs.TransactionData.serialize(a).toBase64();return{digest:r.digest,effects:n.from(new Uint8Array(r.rawEffects)).toString("base64"),bytes:c,signature:o}})),signMessage:({message:e,account:t})=>(0,i.request)({method:"sui_signMessage",params:{message:n.from(e).toString("base64"),accountAddress:null==t?void 0:t.address}}),signPersonalMessage:({message:e,account:t})=>o(void 0,void 0,void 0,(function*(){const r=yield(0,i.request)({method:"sui_signPersonalMessage",params:{message:n.from(e).toString("base64"),accountAddress:null==t?void 0:t.address}});return{bytes:r.messageBytes,signature:r.signature}}))}},1641:function(e,t,r){"use strict";var n=r(8764).lW,o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.CosmostationWallet=void 0;const i=r(9582),s=r(1170),{on:a,getAccounts:c,getPublicKey:u,getChain:l,signTransactionBlock:d,signTransaction:f,signAndExecuteTransactionBlock:h,signAndExecuteTransaction:p,signMessage:g,signPersonalMessage:y}=s.suiAPIs;t.CosmostationWallet=class{constructor(){this.name=i.COSMOSTATION_WALLET_NAME,this.chains=[],this.features={},this.accounts=[],this.version="1.0.0",this.icon=i.COSMOSTATION_ENCODED_LOGO_IMAGE,this.chains=["sui:devnet","sui:testnet","sui:mainnet"],this.features={"standard:connect":{version:"1.0.0",connect:()=>o(this,void 0,void 0,(function*(){try{const e=yield c(),t=yield u(),r=yield l();if(e.length>0&&t&&r)return this.accounts=[{address:e[0],publicKey:new Uint8Array(n.from(t.substring(2),"hex")),chains:[`sui:${r}`],features:["sui:signAndExecuteTransactionBlock","sui:signMessage","sui:signTransactionBlock","sui:signTransaction","sui:signPersonalMessage","sui:signAndExecuteTransaction"]}],{accounts:this.accounts}}catch(e){return{accounts:[]}}}))},"standard:events":{version:"1.0.0",on:a},"sui:signTransactionBlock":{version:"1.0.0",signTransactionBlock:d},"sui:signTransaction":{version:"2.0.0",signTransaction:f},"sui:signAndExecuteTransactionBlock":{version:"1.0.0",signAndExecuteTransactionBlock:h},"sui:signAndExecuteTransaction":{version:"2.0.0",signAndExecuteTransaction:p},"sui:signMessage":{version:"1.0.0",signMessage:g},"sui:signPersonalMessage":{version:"2.0.0",signPersonalMessage:y}},(()=>{o(this,void 0,void 0,(function*(){try{const e=yield c(),t=yield u(),r=yield l();e.length>0&&t&&r&&(this.accounts=[{address:e[0],publicKey:new Uint8Array(n.from(t.substring(2),"hex")),chains:[`sui:${r}`],features:["sui:signAndExecuteTransactionBlock","sui:signMessage","sui:signTransactionBlock","sui:signTransaction","sui:signPersonalMessage","sui:signAndExecuteTransaction"]}])}catch(e){}}))})()}}},9041:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.request=void 0;const n=r(36),o=r(2390);t.request=function(e){return new Promise(((t,r)=>{const i=(0,o.uuidv4)(),s=e=>{var n,o,a;if((null===(n=e.data)||void 0===n?void 0:n.isCosmostation)&&(null===(o=e.data)||void 0===o?void 0:o.messageId)===i){window.removeEventListener("message",s);const{data:n}=e;(null===(a=n.response)||void 0===a?void 0:a.error)?r(n.response.error):t(n.response.result)}};window.addEventListener("message",s),(0,n.sendMessageWebToApp)(e,i)}))}},7359:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CosmosRPCError=void 0;class r extends Error{constructor(e,t){super(t),this.name="CosmosRPCError",this.code=e;const n={error:{code:e,message:t}};this.rpcMessage=n,Object.setPrototypeOf(this,r.prototype)}}t.CosmosRPCError=r},36:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sendMessageWebToApp=void 0,t.sendMessageWebToApp=function(e,t){const r={isCosmostation:!0,message:e,messageId:t};window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.station&&window.webkit.messageHandlers.station.postMessage(JSON.stringify(r)),window.station&&window.station.request(JSON.stringify(r))}},7091:(e,t,r)=>{"use strict";var n=r(8764).lW;Object.defineProperty(t,"__esModule",{value:!0}),t.bytesToHex=t.hexToBytes=void 0,t.hexToBytes=function(e){return new Uint8Array(n.from(e,"hex"))},t.bytesToHex=function(e){return n.from(e).toString("hex")}},2390:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uuidv4=void 0,t.uuidv4=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}},9002:(e,t,r)=>{"use strict";var n,o=Object.create,i=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,c=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,l=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of a(t))u.call(e,o)||o===r||i(e,o,{get:()=>t[o],enumerable:!(n=s(t,o))||n.enumerable});return e},d={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(d,{fromB58:()=>p,toB58:()=>h}),e.exports=(n=d,l(i({},"__esModule",{value:!0}),n));var f=((e,t,r)=>(r=null!=e?o(c(e)):{},l(e&&e.__esModule?r:i(r,"default",{value:e,enumerable:!0}),e)))(r(2949));const h=e=>f.default.encode(e),p=e=>f.default.decode(e)},2849:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={};function a(e){return Uint8Array.from(atob(e),(e=>e.charCodeAt(0)))}((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{fromB64:()=>a,toB64:()=>u}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of o(t))i.call(e,s)||undefined===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t));const c=8192;function u(e){if(e.length{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c=e=>{throw TypeError(e)},u=(e,t,r)=>t.has(e)||c("Cannot "+r),l=(e,t,r)=>(u(e,t,"read from private field"),r?r.call(e):t.get(e)),d=(e,t,r)=>t.has(e)?c("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),f=(e,t,r,n)=>(u(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),h={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(h,{BcsType:()=>S,SerializedBcs:()=>T,bigUIntBcsType:()=>j,dynamicSizeBcsType:()=>x,fixedSizeBcsType:()=>B,isSerializedBcs:()=>P,lazyBcsType:()=>M,stringLikeBcsType:()=>R,uIntBcsType:()=>I}),e.exports=(n=h,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var p,g,y,b,m=r(9002),v=r(2849),w=r(5383),O=r(4994),E=r(7539),A=r(6236);p=new WeakMap,g=new WeakMap;let S=class e{constructor(e){d(this,p),d(this,g),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),f(this,p,e.write),f(this,g,e.serialize??((e,t)=>{const r=new A.BcsWriter({initialSize:this.serializedSize(e)??void 0,...t});return l(this,p).call(this,e,r),r.toBytes()})),this.validate=e.validate??(()=>{})}write(e,t){this.validate(e),l(this,p).call(this,e,t)}serialize(e,t){return this.validate(e),new T(this,l(this,g).call(this,e,t))}parse(e){const t=new O.BcsReader(e);return this.read(t)}fromHex(e){return this.parse((0,w.fromHEX)(e))}fromBase58(e){return this.parse((0,m.fromB58)(e))}fromBase64(e){return this.parse((0,v.fromB64)(e))}transform({name:t,input:r,output:n,validate:o}){return new e({name:t??this.name,read:e=>n(this.read(e)),write:(e,t)=>l(this,p).call(this,r(e),t),serializedSize:e=>this.serializedSize(r(e)),serialize:(e,t)=>l(this,g).call(this,r(e),t),validate:e=>{o?.(e),this.validate(r(e))}})}};const _=Symbol.for("@mysten/serialized-bcs");function P(e){return!!e&&"object"==typeof e&&!0===e[_]}class T{constructor(e,t){d(this,y),d(this,b),f(this,y,e),f(this,b,t)}get[_](){return!0}toBytes(){return l(this,b)}toHex(){return(0,w.toHEX)(l(this,b))}toBase64(){return(0,v.toB64)(l(this,b))}toBase58(){return(0,m.toB58)(l(this,b))}parse(){return l(this,y).parse(l(this,b))}}function B({size:e,...t}){return new S({...t,serializedSize:()=>e})}function I({readMethod:e,writeMethod:t,...r}){return B({...r,read:t=>t[e](),write:(e,r)=>r[t](e),validate:e=>{if(e<0||e>r.maxValue)throw new TypeError(`Invalid ${r.name} value: ${e}. Expected value in range 0-${r.maxValue}`);r.validate?.(e)}})}function j({readMethod:e,writeMethod:t,...r}){return B({...r,read:t=>t[e](),write:(e,r)=>r[t](BigInt(e)),validate:e=>{const t=BigInt(e);if(t<0||t>r.maxValue)throw new TypeError(`Invalid ${r.name} value: ${t}. Expected value in range 0-${r.maxValue}`);r.validate?.(t)}})}function x({serialize:e,...t}){const r=new S({...t,serialize:e,write:(e,t)=>{for(const n of r.serialize(e).toBytes())t.write8(n)}});return r}function R({toBytes:e,fromBytes:t,...r}){return new S({...r,read:e=>{const r=e.readULEB(),n=e.readBytes(r);return t(n)},write:(t,r)=>{const n=e(t);r.writeULEB(n.length);for(let e=0;e{const r=e(t),n=(0,E.ulebEncode)(r.length),o=new Uint8Array(n.length+r.length);return o.set(n,0),o.set(r,n.length),o},validate:e=>{if("string"!=typeof e)throw new TypeError(`Invalid ${r.name} value: ${e}. Expected string`);r.validate?.(e)}})}function M(e){let t=null;function r(){return t||(t=e()),t}return new S({name:"lazy",read:e=>r().read(e),serializedSize:e=>r().serializedSize(e),write:(e,t)=>r().write(e,t),serialize:(e,t)=>r().serialize(e,t).toBytes()})}y=new WeakMap,b=new WeakMap},9570:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{bcs:()=>d}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(5600),l=r(7539);const d={u8:e=>(0,u.uIntBcsType)({name:"u8",readMethod:"read8",writeMethod:"write8",size:1,maxValue:255,...e}),u16:e=>(0,u.uIntBcsType)({name:"u16",readMethod:"read16",writeMethod:"write16",size:2,maxValue:65535,...e}),u32:e=>(0,u.uIntBcsType)({name:"u32",readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...e}),u64:e=>(0,u.bigUIntBcsType)({name:"u64",readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...e}),u128:e=>(0,u.bigUIntBcsType)({name:"u128",readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...e}),u256:e=>(0,u.bigUIntBcsType)({name:"u256",readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...e}),bool:e=>(0,u.fixedSizeBcsType)({name:"bool",size:1,read:e=>1===e.read8(),write:(e,t)=>t.write8(e?1:0),...e,validate:t=>{if(e?.validate?.(t),"boolean"!=typeof t)throw new TypeError("Expected boolean, found "+typeof t)}}),uleb128:e=>(0,u.dynamicSizeBcsType)({name:"uleb128",read:e=>e.readULEB(),serialize:e=>Uint8Array.from((0,l.ulebEncode)(e)),...e}),bytes:(e,t)=>(0,u.fixedSizeBcsType)({name:`bytes[${e}]`,size:e,read:t=>t.readBytes(e),write:(t,r)=>{for(let n=0;n{if(t?.validate?.(r),!r||"object"!=typeof r||!("length"in r))throw new TypeError("Expected array, found "+typeof r);if(r.length!==e)throw new TypeError(`Expected array of length ${e}, found ${r.length}`)}}),string:e=>(0,u.stringLikeBcsType)({name:"string",toBytes:e=>(new TextEncoder).encode(e),fromBytes:e=>(new TextDecoder).decode(e),...e}),fixedArray:(e,t,r)=>new u.BcsType({name:`${t.name}[${e}]`,read:r=>{const n=new Array(e);for(let o=0;o{for(const n of e)t.write(n,r)},...r,validate:t=>{if(r?.validate?.(t),!t||"object"!=typeof t||!("length"in t))throw new TypeError("Expected array, found "+typeof t);if(t.length!==e)throw new TypeError(`Expected array of length ${e}, found ${t.length}`)}}),option:e=>d.enum(`Option<${e.name}>`,{None:null,Some:e}).transform({input:e=>null==e?{None:!0}:{Some:e},output:e=>"Some"===e.$kind?e.Some:null}),vector:(e,t)=>new u.BcsType({name:`vector<${e.name}>`,read:t=>{const r=t.readULEB(),n=new Array(r);for(let o=0;o{r.writeULEB(t.length);for(const n of t)e.write(n,r)},...t,validate:e=>{if(t?.validate?.(e),!e||"object"!=typeof e||!("length"in e))throw new TypeError("Expected array, found "+typeof e)}}),tuple:(e,t)=>new u.BcsType({name:`(${e.map((e=>e.name)).join(", ")})`,serializedSize:t=>{let r=0;for(let n=0;n{const r=[];for(const n of e)r.push(n.read(t));return r},write:(t,r)=>{for(let n=0;n{if(t?.validate?.(r),!Array.isArray(r))throw new TypeError("Expected array, found "+typeof r);if(r.length!==e.length)throw new TypeError(`Expected array of length ${e.length}, found ${r.length}`)}}),struct(e,t,r){const n=Object.entries(t);return new u.BcsType({name:e,serializedSize:e=>{let t=0;for(const[r,o]of n){const n=o.serializedSize(e[r]);if(null==n)return null;t+=n}return t},read:e=>{const t={};for(const[r,o]of n)t[r]=o.read(e);return t},write:(e,t)=>{for(const[r,o]of n)o.write(e[r],t)},...r,validate:e=>{if(r?.validate?.(e),"object"!=typeof e||null==e)throw new TypeError("Expected object, found "+typeof e)}})},enum(e,t,r){const n=Object.entries(t);return new u.BcsType({name:e,read:t=>{const r=t.readULEB(),o=n[r];if(!o)throw new TypeError(`Unknown value ${r} for enum ${e}`);const[i,s]=o;return{[i]:s?.read(t)??!0,$kind:i}},write:(e,r)=>{const[o,i]=Object.entries(e).filter((([e])=>Object.hasOwn(t,e)))[0];for(let e=0;e{if(r?.validate?.(n),"object"!=typeof n||null==n)throw new TypeError("Expected object, found "+typeof n);const o=Object.keys(n).filter((e=>void 0!==n[e]&&Object.hasOwn(t,e)));if(1!==o.length)throw new TypeError(`Expected object with one key, but found ${o.length} for type ${e}}`);const[i]=o;if(!Object.hasOwn(t,i))throw new TypeError(`Invalid enum variant ${i}`)}})},map:(e,t)=>d.vector(d.tuple([e,t])).transform({name:`Map<${e.name}, ${t.name}>`,input:e=>[...e.entries()],output:e=>{const t=new Map;for(const[r,n]of e)t.set(r,n);return t}}),lazy:e=>(0,u.lazyBcsType)(e)}},5383:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={};function a(e){const t=e.startsWith("0x")?e.slice(2):e,r=t.length%2==0?t:`0${t}}`,n=r.match(/.{2}/g)?.map((e=>parseInt(e,16)))??[];return Uint8Array.from(n)}function c(e){return e.reduce(((e,t)=>e+t.toString(16).padStart(2,"0")),"")}((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{fromHEX:()=>a,toHEX:()=>c}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of o(t))i.call(e,s)||undefined===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t))},4648:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{BcsReader:()=>p.BcsReader,BcsType:()=>d.BcsType,BcsWriter:()=>y.BcsWriter,SerializedBcs:()=>d.SerializedBcs,bcs:()=>f.bcs,decodeStr:()=>g.decodeStr,encodeStr:()=>g.encodeStr,fromB58:()=>u.fromB58,fromB64:()=>l.fromB64,fromHEX:()=>h.fromHEX,isSerializedBcs:()=>d.isSerializedBcs,splitGenericParameters:()=>g.splitGenericParameters,toB58:()=>u.toB58,toB64:()=>l.toB64,toHEX:()=>h.toHEX}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(9002),l=r(2849),d=r(5600),f=r(9570),h=r(5383),p=r(4994),g=r(543),y=r(6236)},4994:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{BcsReader:()=>l}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(7539);class l{constructor(e){this.bytePosition=0,this.dataView=new DataView(e.buffer)}shift(e){return this.bytePosition+=e,this}read8(){let e=this.dataView.getUint8(this.bytePosition);return this.shift(1),e}read16(){let e=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),e}read32(){let e=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),e}read64(){let e=this.read32(),t=this.read32().toString(16)+e.toString(16).padStart(8,"0");return BigInt("0x"+t).toString(10)}read128(){let e=BigInt(this.read64()),t=BigInt(this.read64()).toString(16)+e.toString(16).padStart(16,"0");return BigInt("0x"+t).toString(10)}read256(){let e=BigInt(this.read128()),t=BigInt(this.read128()).toString(16)+e.toString(16).padStart(32,"0");return BigInt("0x"+t).toString(10)}readBytes(e){let t=this.bytePosition+this.dataView.byteOffset,r=new Uint8Array(this.dataView.buffer,t,e);return this.shift(e),r}readULEB(){let e=this.bytePosition+this.dataView.byteOffset,t=new Uint8Array(this.dataView.buffer,e),{value:r,length:n}=(0,u.ulebDecode)(t);return this.shift(n),r}readVec(e){let t=this.readULEB(),r=[];for(let n=0;n{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={};function a(e){let t=[],r=0;if(0===e)return[0];for(;e>0;)t[r]=127&e,(e>>=7)&&(t[r]|=128),r+=1;return t}function c(e){let t=0,r=0,n=0;for(;;){let o=e[n];if(n+=1,t|=(127&o)<{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{ulebDecode:()=>c,ulebEncode:()=>a}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of o(t))i.call(e,s)||undefined===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t))},543:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{decodeStr:()=>h,encodeStr:()=>f,splitGenericParameters:()=>p}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(9002),l=r(2849),d=r(5383);function f(e,t){switch(t){case"base58":return(0,u.toB58)(e);case"base64":return(0,l.toB64)(e);case"hex":return(0,d.toHEX)(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function h(e,t){switch(t){case"base58":return(0,u.fromB58)(e);case"base64":return(0,l.fromB64)(e);case"hex":return(0,d.fromHEX)(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function p(e,t=["<",">"]){const[r,n]=t,o=[];let i="",s=0;for(let t=0;t{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{BcsWriter:()=>d}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(7539),l=r(543);class d{constructor({initialSize:e=1024,maxSize:t=1/0,allocateSize:r=1024}={}){this.bytePosition=0,this.size=e,this.maxSize=t,this.allocateSize=r,this.dataView=new DataView(new ArrayBuffer(e))}ensureSizeOrGrow(e){const t=this.bytePosition+e;if(t>this.size){const e=Math.min(this.maxSize,this.size+this.allocateSize);if(t>e)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${t}`);this.size=e;const r=new ArrayBuffer(this.size);new Uint8Array(r).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(r)}}shift(e){return this.bytePosition+=e,this}write8(e){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(e)),this.shift(1)}write16(e){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(e),!0),this.shift(2)}write32(e){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(e),!0),this.shift(4)}write64(e){return f(BigInt(e),8).forEach((e=>this.write8(e))),this}write128(e){return f(BigInt(e),16).forEach((e=>this.write8(e))),this}write256(e){return f(BigInt(e),32).forEach((e=>this.write8(e))),this}writeULEB(e){return(0,u.ulebEncode)(e).forEach((e=>this.write8(e))),this}writeVec(e,t){return this.writeULEB(e.length),Array.from(e).forEach(((r,n)=>t(this,r,n,e.length))),this}*[Symbol.iterator](){for(let e=0;e0;)r[n]=Number(e%BigInt(256)),e/=BigInt(256),n+=1;return r}},9296:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{Address:()=>f,AppId:()=>M,Argument:()=>w,CallArg:()=>b,Command:()=>E,CompressedSignature:()=>D,GasData:()=>B,Intent:()=>C,IntentMessage:()=>U,IntentScope:()=>x,IntentVersion:()=>R,MultiSig:()=>z,MultiSigPkMap:()=>k,MultiSigPublicKey:()=>L,ObjectArg:()=>y,ObjectDigest:()=>h,ProgrammableMoveCall:()=>O,ProgrammableTransaction:()=>S,PublicKey:()=>N,SenderSignedData:()=>q,SenderSignedTransaction:()=>W,SharedObjectRef:()=>g,StructTag:()=>T,SuiObjectRef:()=>p,TransactionData:()=>j,TransactionDataV1:()=>I,TransactionExpiration:()=>P,TransactionKind:()=>_,TypeTag:()=>v,base64String:()=>V}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(4648),l=r(2501),d=r(8548);const f=u.bcs.bytes(l.SUI_ADDRESS_LENGTH).transform({validate:e=>{const t="string"==typeof e?e:(0,u.toHEX)(e);if(!t||!(0,l.isValidSuiAddress)((0,l.normalizeSuiAddress)(t)))throw new Error(`Invalid Sui address ${t}`)},input:e=>"string"==typeof e?(0,u.fromHEX)((0,l.normalizeSuiAddress)(e)):e,output:e=>(0,l.normalizeSuiAddress)((0,u.toHEX)(e))}),h=u.bcs.vector(u.bcs.u8()).transform({name:"ObjectDigest",input:e=>(0,u.fromB58)(e),output:e=>(0,u.toB58)(new Uint8Array(e)),validate:e=>{if(32!==(0,u.fromB58)(e).length)throw new Error("ObjectDigest must be 32 bytes")}}),p=u.bcs.struct("SuiObjectRef",{objectId:f,version:u.bcs.u64(),digest:h}),g=u.bcs.struct("SharedObjectRef",{objectId:f,initialSharedVersion:u.bcs.u64(),mutable:u.bcs.bool()}),y=u.bcs.enum("ObjectArg",{ImmOrOwnedObject:p,SharedObject:g,Receiving:p}),b=u.bcs.enum("CallArg",{Pure:u.bcs.struct("Pure",{bytes:u.bcs.vector(u.bcs.u8()).transform({input:e=>"string"==typeof e?(0,u.fromB64)(e):e,output:e=>(0,u.toB64)(new Uint8Array(e))})}),Object:y}),m=u.bcs.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:u.bcs.lazy((()=>m)),struct:u.bcs.lazy((()=>T)),u16:null,u32:null,u256:null}),v=m.transform({input:e=>"string"==typeof e?d.TypeTagSerializer.parseFromStr(e,!0):e,output:e=>d.TypeTagSerializer.tagToString(e)}),w=u.bcs.enum("Argument",{GasCoin:null,Input:u.bcs.u16(),Result:u.bcs.u16(),NestedResult:u.bcs.tuple([u.bcs.u16(),u.bcs.u16()])}),O=u.bcs.struct("ProgrammableMoveCall",{package:f,module:u.bcs.string(),function:u.bcs.string(),typeArguments:u.bcs.vector(v),arguments:u.bcs.vector(w)}),E=u.bcs.enum("Command",{MoveCall:O,TransferObjects:u.bcs.struct("TransferObjects",{objects:u.bcs.vector(w),address:w}),SplitCoins:u.bcs.struct("SplitCoins",{coin:w,amounts:u.bcs.vector(w)}),MergeCoins:u.bcs.struct("MergeCoins",{destination:w,sources:u.bcs.vector(w)}),Publish:u.bcs.struct("Publish",{modules:u.bcs.vector(u.bcs.vector(u.bcs.u8()).transform({input:e=>"string"==typeof e?(0,u.fromB64)(e):e,output:e=>(0,u.toB64)(new Uint8Array(e))})),dependencies:u.bcs.vector(f)}),MakeMoveVec:u.bcs.struct("MakeMoveVec",{type:(A=v,u.bcs.enum("Option",{None:null,Some:A})).transform({input:e=>null===e?{None:!0}:{Some:e},output:e=>e.Some??null}),elements:u.bcs.vector(w)}),Upgrade:u.bcs.struct("Upgrade",{modules:u.bcs.vector(u.bcs.vector(u.bcs.u8()).transform({input:e=>"string"==typeof e?(0,u.fromB64)(e):e,output:e=>(0,u.toB64)(new Uint8Array(e))})),dependencies:u.bcs.vector(f),package:f,ticket:w})});var A;const S=u.bcs.struct("ProgrammableTransaction",{inputs:u.bcs.vector(b),commands:u.bcs.vector(E)}),_=u.bcs.enum("TransactionKind",{ProgrammableTransaction:S,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),P=u.bcs.enum("TransactionExpiration",{None:null,Epoch:u.bcs.u64({name:"unsafe_u64"}).transform({input:e=>e,output:e=>Number(e)})});const T=u.bcs.struct("StructTag",{address:f,module:u.bcs.string(),name:u.bcs.string(),typeParams:u.bcs.vector(m)}),B=u.bcs.struct("GasData",{payment:u.bcs.vector(p),owner:f,price:u.bcs.u64(),budget:u.bcs.u64()}),I=u.bcs.struct("TransactionDataV1",{kind:_,sender:f,gasData:B,expiration:P}),j=u.bcs.enum("TransactionData",{V1:I}),x=u.bcs.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),R=u.bcs.enum("IntentVersion",{V0:null}),M=u.bcs.enum("AppId",{Sui:null}),C=u.bcs.struct("Intent",{scope:x,version:R,appId:M});function U(e){return u.bcs.struct(`IntentMessage<${e.name}>`,{intent:C,value:e})}const D=u.bcs.enum("CompressedSignature",{ED25519:u.bcs.fixedArray(64,u.bcs.u8()),Secp256k1:u.bcs.fixedArray(64,u.bcs.u8()),Secp256r1:u.bcs.fixedArray(64,u.bcs.u8()),ZkLogin:u.bcs.vector(u.bcs.u8())}),N=u.bcs.enum("PublicKey",{ED25519:u.bcs.fixedArray(32,u.bcs.u8()),Secp256k1:u.bcs.fixedArray(33,u.bcs.u8()),Secp256r1:u.bcs.fixedArray(33,u.bcs.u8()),ZkLogin:u.bcs.vector(u.bcs.u8())}),k=u.bcs.struct("MultiSigPkMap",{pubKey:N,weight:u.bcs.u8()}),L=u.bcs.struct("MultiSigPublicKey",{pk_map:u.bcs.vector(k),threshold:u.bcs.u16()}),z=u.bcs.struct("MultiSig",{sigs:u.bcs.vector(D),bitmap:u.bcs.u16(),multisig_pk:L}),V=u.bcs.vector(u.bcs.u8()).transform({input:e=>"string"==typeof e?(0,u.fromB64)(e):e,output:e=>(0,u.toB64)(new Uint8Array(e))}),W=u.bcs.struct("SenderSignedTransaction",{intentMessage:U(j),txSignatures:u.bcs.vector(V)}),q=u.bcs.vector(W,{name:"SenderSignedData"})},4320:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{TransactionEffects:()=>B}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(4648),l=r(9296);const d=u.bcs.enum("PackageUpgradeError",{UnableToFetchPackage:u.bcs.struct("UnableToFetchPackage",{packageId:l.Address}),NotAPackage:u.bcs.struct("NotAPackage",{objectId:l.Address}),IncompatibleUpgrade:null,DigestDoesNotMatch:u.bcs.struct("DigestDoesNotMatch",{digest:u.bcs.vector(u.bcs.u8())}),UnknownUpgradePolicy:u.bcs.struct("UnknownUpgradePolicy",{policy:u.bcs.u8()}),PackageIDDoesNotMatch:u.bcs.struct("PackageIDDoesNotMatch",{packageId:l.Address,ticketId:l.Address})}),f=u.bcs.struct("ModuleId",{address:l.Address,name:u.bcs.string()}),h=u.bcs.struct("MoveLocation",{module:f,function:u.bcs.u16(),instruction:u.bcs.u16(),functionName:u.bcs.option(u.bcs.string())}),p=u.bcs.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:u.bcs.struct("IndexOutOfBounds",{idx:u.bcs.u16()}),SecondaryIndexOutOfBounds:u.bcs.struct("SecondaryIndexOutOfBounds",{resultIdx:u.bcs.u16(),secondaryIdx:u.bcs.u16()}),InvalidResultArity:u.bcs.struct("InvalidResultArity",{resultIdx:u.bcs.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),g=u.bcs.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),y=u.bcs.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:u.bcs.struct("MoveObjectTooBig",{objectSize:u.bcs.u64(),maxObjectSize:u.bcs.u64()}),MovePackageTooBig:u.bcs.struct("MovePackageTooBig",{objectSize:u.bcs.u64(),maxObjectSize:u.bcs.u64()}),CircularObjectOwnership:u.bcs.struct("CircularObjectOwnership",{object:l.Address}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:u.bcs.option(h),MoveAbort:u.bcs.tuple([h,u.bcs.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:u.bcs.struct("CommandArgumentError",{argIdx:u.bcs.u16(),kind:p}),TypeArgumentError:u.bcs.struct("TypeArgumentError",{argumentIdx:u.bcs.u16(),kind:g}),UnusedValueWithoutDrop:u.bcs.struct("UnusedValueWithoutDrop",{resultIdx:u.bcs.u16(),secondaryIdx:u.bcs.u16()}),InvalidPublicFunctionReturnType:u.bcs.struct("InvalidPublicFunctionReturnType",{idx:u.bcs.u16()}),InvalidTransferObject:null,EffectsTooLarge:u.bcs.struct("EffectsTooLarge",{currentSize:u.bcs.u64(),maxSize:u.bcs.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:u.bcs.struct("PackageUpgradeError",{upgradeError:d}),WrittenObjectsTooLarge:u.bcs.struct("WrittenObjectsTooLarge",{currentSize:u.bcs.u64(),maxSize:u.bcs.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null}),b=u.bcs.enum("ExecutionStatus",{Success:null,Failed:u.bcs.struct("ExecutionFailed",{error:y,command:u.bcs.option(u.bcs.u64())})}),m=u.bcs.struct("GasCostSummary",{computationCost:u.bcs.u64(),storageCost:u.bcs.u64(),storageRebate:u.bcs.u64(),nonRefundableStorageFee:u.bcs.u64()}),v=u.bcs.enum("Owner",{AddressOwner:l.Address,ObjectOwner:l.Address,Shared:u.bcs.struct("Shared",{initialSharedVersion:u.bcs.u64()}),Immutable:null}),w=u.bcs.struct("TransactionEffectsV1",{status:b,executedEpoch:u.bcs.u64(),gasUsed:m,modifiedAtVersions:u.bcs.vector(u.bcs.tuple([l.Address,u.bcs.u64()])),sharedObjects:u.bcs.vector(l.SuiObjectRef),transactionDigest:l.ObjectDigest,created:u.bcs.vector(u.bcs.tuple([l.SuiObjectRef,v])),mutated:u.bcs.vector(u.bcs.tuple([l.SuiObjectRef,v])),unwrapped:u.bcs.vector(u.bcs.tuple([l.SuiObjectRef,v])),deleted:u.bcs.vector(l.SuiObjectRef),unwrappedThenDeleted:u.bcs.vector(l.SuiObjectRef),wrapped:u.bcs.vector(l.SuiObjectRef),gasObject:u.bcs.tuple([l.SuiObjectRef,v]),eventsDigest:u.bcs.option(l.ObjectDigest),dependencies:u.bcs.vector(l.ObjectDigest)}),O=u.bcs.tuple([u.bcs.u64(),l.ObjectDigest]),E=u.bcs.enum("ObjectIn",{NotExist:null,Exist:u.bcs.tuple([O,v])}),A=u.bcs.enum("ObjectOut",{NotExist:null,ObjectWrite:u.bcs.tuple([l.ObjectDigest,v]),PackageWrite:O}),S=u.bcs.enum("IDOperation",{None:null,Created:null,Deleted:null}),_=u.bcs.struct("EffectsObjectChange",{inputState:E,outputState:A,idOperation:S}),P=u.bcs.enum("UnchangedSharedKind",{ReadOnlyRoot:O,MutateDeleted:u.bcs.u64(),ReadDeleted:u.bcs.u64(),Cancelled:u.bcs.u64(),PerEpochConfig:null}),T=u.bcs.struct("TransactionEffectsV2",{status:b,executedEpoch:u.bcs.u64(),gasUsed:m,transactionDigest:l.ObjectDigest,gasObjectIndex:u.bcs.option(u.bcs.u32()),eventsDigest:u.bcs.option(l.ObjectDigest),dependencies:u.bcs.vector(l.ObjectDigest),lamportVersion:u.bcs.u64(),changedObjects:u.bcs.vector(u.bcs.tuple([l.Address,_])),unchangedSharedObjects:u.bcs.vector(u.bcs.tuple([l.Address,P])),auxDataDigest:u.bcs.option(l.ObjectDigest)}),B=u.bcs.enum("TransactionEffects",{V1:w,V2:T})},9108:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{BcsType:()=>h.BcsType,TypeTagSerializer:()=>f.TypeTagSerializer,bcs:()=>p}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(4648),l=r(9296),d=r(4320),f=r(8548),h=r(4648);const p={...u.bcs,U8:u.bcs.u8(),U16:u.bcs.u16(),U32:u.bcs.u32(),U64:u.bcs.u64(),U128:u.bcs.u128(),U256:u.bcs.u256(),ULEB128:u.bcs.uleb128(),Bool:u.bcs.bool(),String:u.bcs.string(),Address:l.Address,AppId:l.AppId,Argument:l.Argument,CallArg:l.CallArg,CompressedSignature:l.CompressedSignature,GasData:l.GasData,Intent:l.Intent,IntentMessage:l.IntentMessage,IntentScope:l.IntentScope,IntentVersion:l.IntentVersion,MultiSig:l.MultiSig,MultiSigPkMap:l.MultiSigPkMap,MultiSigPublicKey:l.MultiSigPublicKey,ObjectArg:l.ObjectArg,ObjectDigest:l.ObjectDigest,ProgrammableMoveCall:l.ProgrammableMoveCall,ProgrammableTransaction:l.ProgrammableTransaction,PublicKey:l.PublicKey,SenderSignedData:l.SenderSignedData,SenderSignedTransaction:l.SenderSignedTransaction,SharedObjectRef:l.SharedObjectRef,StructTag:l.StructTag,SuiObjectRef:l.SuiObjectRef,Command:l.Command,TransactionData:l.TransactionData,TransactionDataV1:l.TransactionDataV1,TransactionExpiration:l.TransactionExpiration,TransactionKind:l.TransactionKind,TypeTag:l.TypeTag,TransactionEffects:d.TransactionEffects}},8548:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{TypeTagSerializer:()=>h}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(4648),l=r(2501);const d=/^vector<(.+)>$/,f=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class h{static parseFromStr(e,t=!1){if("address"===e)return{address:null};if("bool"===e)return{bool:null};if("u8"===e)return{u8:null};if("u16"===e)return{u16:null};if("u32"===e)return{u32:null};if("u64"===e)return{u64:null};if("u128"===e)return{u128:null};if("u256"===e)return{u256:null};if("signer"===e)return{signer:null};const r=e.match(d);if(r)return{vector:h.parseFromStr(r[1],t)};const n=e.match(f);if(n)return{struct:{address:t?(0,l.normalizeSuiAddress)(n[1]):n[1],module:n[2],name:n[3],typeParams:void 0===n[5]?[]:h.parseStructTypeArgs(n[5],t)}};throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,t=!1){return(0,u.splitGenericParameters)(e).map((e=>h.parseFromStr(e,t)))}static tagToString(e){if("bool"in e)return"bool";if("u8"in e)return"u8";if("u16"in e)return"u16";if("u32"in e)return"u32";if("u64"in e)return"u64";if("u128"in e)return"u128";if("u256"in e)return"u256";if("address"in e)return"address";if("signer"in e)return"signer";if("vector"in e)return`vector<${h.tagToString(e.vector)}>`;if("struct"in e){const t=e.struct,r=t.typeParams.map(h.tagToString).join(", ");return`${t.address}::${t.module}::${t.name}${r?`<${r}>`:""}`}throw new Error("Invalid TypeTag")}}},2501:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{SUI_ADDRESS_LENGTH:()=>f,isValidSuiAddress:()=>h,isValidSuiObjectId:()=>p,isValidTransactionDigest:()=>d,normalizeStructTag:()=>y,normalizeSuiAddress:()=>b,normalizeSuiObjectId:()=>m,parseStructTag:()=>g}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(4648);const l=32;function d(e){try{return(0,u.fromB58)(e).length===l}catch(e){return!1}}const f=32;function h(e){return function(e){return/^(0x|0X)?[a-fA-F0-9]+$/.test(e)&&e.length%2==0}(e)&&function(e){return/^(0x|0X)/.test(e)?(e.length-2)/2:e.length/2}(e)===f}function p(e){return h(e)}function g(e){const[t,r]=e.split("::"),n=e.slice(t.length+r.length+4),o=n.includes("<")?n.slice(0,n.indexOf("<")):n,i=n.includes("<")?(0,u.splitGenericParameters)(n.slice(n.indexOf("<")+1,n.lastIndexOf(">"))).map((e=>function(e){return e.includes("::")?g(e):e}(e.trim()))):[];return{address:b(t),module:r,name:o,typeParams:i}}function y(e){const{address:t,module:r,name:n,typeParams:o}="string"==typeof e?g(e):e;return`${t}::${r}::${n}${o?.length>0?`<${o.map((e=>"string"==typeof e?e:y(e))).join(",")}>`:""}`}function b(e,t=!1){let r=e.toLowerCase();return!t&&r.startsWith("0x")&&(r=r.slice(2)),`0x${r.padStart(2*f,"0")}`}function m(e,t=!1){return b(e,t)}},3732:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(1345),t)},1345:function(e,t){"use strict";var r,n=this&&this.__classPrivateFieldSet||function(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},o=this&&this.__classPrivateFieldGet||function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};let i;Object.defineProperty(t,"__esModule",{value:!0}),t.DEPRECATED_getWallets=t.getWallets=void 0;const s=new Set,a={};function c(){if(i)return i;if(i=Object.freeze({register:u,get:l,on:d}),"undefined"==typeof window)return i;const e=Object.freeze({register:u});try{window.addEventListener("wallet-standard:register-wallet",(({detail:t})=>t(e)))}catch(e){console.error("wallet-standard:register-wallet event listener could not be added\n",e)}try{window.dispatchEvent(new h(e))}catch(e){console.error("wallet-standard:app-ready event could not be dispatched\n",e)}return i}function u(...e){var t;return(e=e.filter((e=>!s.has(e)))).length?(e.forEach((e=>s.add(e))),null===(t=a.register)||void 0===t||t.forEach((t=>f((()=>t(...e))))),function(){var t;e.forEach((e=>s.delete(e))),null===(t=a.unregister)||void 0===t||t.forEach((t=>f((()=>t(...e)))))}):()=>{}}function l(){return[...s]}function d(e,t){var r;return(null===(r=a[e])||void 0===r?void 0:r.push(t))||(a[e]=[t]),function(){var r;a[e]=null===(r=a[e])||void 0===r?void 0:r.filter((e=>t!==e))}}function f(e){try{e()}catch(e){console.error(e)}}t.getWallets=c;class h extends Event{constructor(e){super("wallet-standard:app-ready",{bubbles:!1,cancelable:!1,composed:!1}),r.set(this,void 0),n(this,r,e,"f")}get detail(){return o(this,r,"f")}get type(){return"wallet-standard:app-ready"}preventDefault(){throw new Error("preventDefault cannot be called")}stopImmediatePropagation(){throw new Error("stopImmediatePropagation cannot be called")}stopPropagation(){throw new Error("stopPropagation cannot be called")}}r=new WeakMap,t.DEPRECATED_getWallets=function(){if(i)return i;if(i=c(),"undefined"==typeof window)return i;const e=window.navigator.wallets||[];if(!Array.isArray(e))return console.error("window.navigator.wallets is not an array"),i;const{register:t}=i,r=(...e)=>e.forEach((e=>f((()=>e({register:t})))));try{Object.defineProperty(window.navigator,"wallets",{value:Object.freeze({push:r})})}catch(e){return console.error("window.navigator.wallets could not be set"),i}return r(...e),i}},6401:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2904:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(6401),t),o(r(1782),t),o(r(8225),t)},1782:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8225:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3902:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(3732),t),o(r(2904),t),o(r(988),t),o(r(1283),t)},3204:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Connect=t.StandardConnect=void 0,t.StandardConnect="standard:connect",t.Connect=t.StandardConnect},7381:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Disconnect=t.StandardDisconnect=void 0,t.StandardDisconnect="standard:disconnect",t.Disconnect=t.StandardDisconnect},5177:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Events=t.StandardEvents=void 0,t.StandardEvents="standard:events",t.Events=t.StandardEvents},988:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(3204),t),o(r(7381),t),o(r(5177),t)},1283:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(9510),t),o(r(331),t)},9510:function(e,t){"use strict";var r,n=this&&this.__classPrivateFieldSet||function(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},o=this&&this.__classPrivateFieldGet||function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};function i(e){const t=({register:t})=>t(e);try{window.dispatchEvent(new s(t))}catch(e){console.error("wallet-standard:register-wallet event could not be dispatched\n",e)}try{window.addEventListener("wallet-standard:app-ready",(({detail:e})=>t(e)))}catch(e){console.error("wallet-standard:app-ready event listener could not be added\n",e)}}Object.defineProperty(t,"__esModule",{value:!0}),t.DEPRECATED_registerWallet=t.registerWallet=void 0,t.registerWallet=i;class s extends Event{constructor(e){super("wallet-standard:register-wallet",{bubbles:!1,cancelable:!1,composed:!1}),r.set(this,void 0),n(this,r,e,"f")}get detail(){return o(this,r,"f")}get type(){return"wallet-standard:register-wallet"}preventDefault(){throw new Error("preventDefault cannot be called")}stopImmediatePropagation(){throw new Error("stopImmediatePropagation cannot be called")}stopPropagation(){throw new Error("stopPropagation cannot be called")}}r=new WeakMap,t.DEPRECATED_registerWallet=function(e){var t;i(e);try{((t=window.navigator).wallets||(t.wallets=[])).push((({register:t})=>t(e)))}catch(e){console.error("window.navigator.wallets could not be pushed\n",e)}}},331:function(e,t){"use strict";var r,n,o,i,s,a,c=this&&this.__classPrivateFieldSet||function(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},u=this&&this.__classPrivateFieldGet||function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.guard=t.pick=t.concatBytes=t.bytesEqual=t.arraysEqual=t.ReadonlyWalletAccount=void 0;class l{constructor(e){r.set(this,void 0),n.set(this,void 0),o.set(this,void 0),i.set(this,void 0),s.set(this,void 0),a.set(this,void 0),new.target===l&&Object.freeze(this),c(this,r,e.address,"f"),c(this,n,e.publicKey.slice(),"f"),c(this,o,e.chains.slice(),"f"),c(this,i,e.features.slice(),"f"),c(this,s,e.label,"f"),c(this,a,e.icon,"f")}get address(){return u(this,r,"f")}get publicKey(){return u(this,n,"f").slice()}get chains(){return u(this,o,"f").slice()}get features(){return u(this,i,"f").slice()}get label(){return u(this,s,"f")}get icon(){return u(this,a,"f")}}function d(e,t){if(e===t)return!0;const r=e.length;if(r!==t.length)return!1;for(let n=0;ne+t.length),e.length),n=new Uint8Array(r);n.set(e,0);for(const e of t)n.set(e,n.length);return n},t.pick=function(e,...t){const r={};for(const n of t)r[n]=e[n];return r},t.guard=function(e){try{e()}catch(e){console.error(e)}}},9176:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let e=0;e>>0,u=new Uint8Array(c);for(;e[i];){let n=t[e.charCodeAt(i)];if(255===n)return;let o=0;for(let e=c-1;(0!==n||o>>0,u[e]=n%256>>>0,n=n/256>>>0;if(0!==n)throw new Error("Non-zero carry");a=o,i++}let l=c-a;for(;l!==c&&0===u[l];)l++;const d=new Uint8Array(s+(c-l));let f=s;for(;l!==c;)d[f++]=u[l++];return d}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let o=0,s=0,a=0;const c=t.length;for(;a!==c&&0===t[a];)a++,o++;const u=(c-a)*i+1>>>0,l=new Uint8Array(u);for(;a!==c;){let e=t[a],n=0;for(let t=u-1;(0!==e||n>>0,l[t]=e%r>>>0,e=e/r>>>0;if(0!==e)throw new Error("Non-zero carry");s=n,a++}let d=u-s;for(;d!==u&&0===l[d];)d++;let f=n.repeat(o);for(;d{"use strict";const e=r(8253),t=r(9360),n=r(9392),o=r(1641),i=r(3902);(()=>{window.cosmostation={version:"0.4.11",handlerInfos:[],cosmos:n.cosmos,ethereum:t.ethereum,tendermint:n.tendermint,providers:{keplr:n.keplr,metamask:t.ethereum},mode:"mobile-web"},window.keplr=n.keplr,window.getOfflineSigner=window.keplr.getOfflineSigner,window.getOfflineSignerOnlyAmino=window.keplr.getOfflineSignerOnlyAmino,window.getOfflineSignerAuto=window.keplr.getOfflineSignerAuto,window.ethereum=window.cosmostation.providers.metamask;const r=new o.CosmostationWallet;(0,i.registerWallet)(r),(0,e.registerCosmosWallet)(n.cosmosWallet),(0,t.announceEthereumProvider)()})()})()})(); \ No newline at end of file +(()=>{var e={8253:(e,t)=>{function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t{"use strict";t.byteLength=function(e){var t=a(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,i=a(e),s=i[0],c=i[1],u=new o(function(e,t,r){return 3*(t+r)/4-r}(0,s,c)),d=0,l=c>0?s-4:s;for(r=0;r>16&255,u[d++]=t>>8&255,u[d++]=255&t;return 2===c&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,u[d++]=255&t),1===c&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,u[d++]=t>>8&255,u[d++]=255&t),u},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],s=16383,a=0,u=n-o;au?u:a+s));return 1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),i.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0;s<64;++s)r[s]=i[s],n[i.charCodeAt(s)]=s;function a(e){var t=e.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,n){for(var o,i,s=[],a=t;a>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return s.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},8764:(e,t,r)=>{"use strict";const n=r(9742),o=r(645),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.lW=c,t.h2=50;const s=2147483647;function a(e){if(e>s)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,c.prototype),t}function c(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return l(e)}return u(e,t,r)}function u(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!c.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|g(e,t);let n=a(r);const o=n.write(e,t);return o!==r&&(n=n.slice(0,o)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if($(e,Uint8Array)){const t=new Uint8Array(e);return h(t.buffer,t.byteOffset,t.byteLength)}return f(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if($(e,ArrayBuffer)||e&&$(e.buffer,ArrayBuffer))return h(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&($(e,SharedArrayBuffer)||e&&$(e.buffer,SharedArrayBuffer)))return h(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return c.from(n,t,r);const o=function(e){if(c.isBuffer(e)){const t=0|p(e.length),r=a(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||J(e.length)?a(0):f(e):"Buffer"===e.type&&Array.isArray(e.data)?f(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return c.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function d(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function l(e){return d(e),a(e<0?0:0|p(e))}function f(e){const t=e.length<0?0:0|p(e.length),r=a(t);for(let n=0;n=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|e}function g(e,t){if(c.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||$(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return F(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return H(e).length;default:if(o)return n?-1:F(e).length;t=(""+t).toLowerCase(),o=!0}}function y(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return j(this,t,r);case"utf8":case"utf-8":return P(this,t,r);case"ascii":return B(this,t,r);case"latin1":case"binary":return I(this,t,r);case"base64":return S(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return x(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function b(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function m(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),J(r=+r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=c.from(t,n)),c.isBuffer(t))return 0===t.length?-1:v(e,t,r,n,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):v(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function v(e,t,r,n,o){let i,s=1,a=e.length,c=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,c/=2,r/=2}function u(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(o){let n=-1;for(i=r;ia&&(r=a-c),i=r;i>=0;i--){let r=!0;for(let n=0;no&&(n=o):n=o;const i=t.length;let s;for(n>i/2&&(n=i/2),s=0;s>8,o=r%256,i.push(o),i.push(n);return i}(t,e.length-r),e,r,n)}function S(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function P(e,t,r){r=Math.min(e.length,r);const n=[];let o=t;for(;o239?4:t>223?3:t>191?2:1;if(o+s<=r){let r,n,a,c;switch(s){case 1:t<128&&(i=t);break;case 2:r=e[o+1],128==(192&r)&&(c=(31&t)<<6|63&r,c>127&&(i=c));break;case 3:r=e[o+1],n=e[o+2],128==(192&r)&&128==(192&n)&&(c=(15&t)<<12|(63&r)<<6|63&n,c>2047&&(c<55296||c>57343)&&(i=c));break;case 4:r=e[o+1],n=e[o+2],a=e[o+3],128==(192&r)&&128==(192&n)&&128==(192&a)&&(c=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&a,c>65535&&c<1114112&&(i=c))}}null===i?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|1023&i),n.push(i),o+=s}return function(e){const t=e.length;if(t<=T)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn.length?(c.isBuffer(t)||(t=c.from(t)),t.copy(n,o)):Uint8Array.prototype.set.call(n,t,o);else{if(!c.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,o)}o+=t.length}return n},c.byteLength=g,c.prototype._isBuffer=!0,c.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(e+=" ... "),""},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(e,t,r,n,o){if($(e,Uint8Array)&&(e=c.from(e,e.offset,e.byteLength)),!c.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;let i=(o>>>=0)-(n>>>=0),s=(r>>>=0)-(t>>>=0);const a=Math.min(i,s),u=this.slice(n,o),d=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let i=!1;for(;;)switch(n){case"hex":return w(this,e,t,r);case"utf8":case"utf-8":return O(this,e,t,r);case"ascii":case"latin1":case"binary":return A(this,e,t,r);case"base64":return E(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const T=4096;function B(e,t,r){let n="";r=Math.min(e.length,r);for(let o=t;on)&&(r=n);let o="";for(let n=t;nr)throw new RangeError("Trying to access beyond buffer length")}function R(e,t,r,n,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function C(e,t,r,n,o){q(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,r}function U(e,t,r,n,o){q(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r+7]=i,i>>=8,e[r+6]=i,i>>=8,e[r+5]=i,i>>=8,e[r+4]=i;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s>>=8,e[r+2]=s,s>>=8,e[r+1]=s,s>>=8,e[r]=s,r+8}function D(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function N(e,t,r,n,i){return t=+t,r>>>=0,i||D(e,0,r,4),o.write(e,t,r,n,23,4),r+4}function k(e,t,r,n,i){return t=+t,r>>>=0,i||D(e,0,r,8),o.write(e,t,r,n,52,8),r+8}c.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||M(e,t,this.length);let n=this[e],o=1,i=0;for(;++i>>=0,t>>>=0,r||M(e,t,this.length);let n=this[e+--t],o=1;for(;t>0&&(o*=256);)n+=this[e+--t]*o;return n},c.prototype.readUint8=c.prototype.readUInt8=function(e,t){return e>>>=0,t||M(e,1,this.length),this[e]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(e,t){return e>>>=0,t||M(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(e,t){return e>>>=0,t||M(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(e,t){return e>>>=0,t||M(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(e,t){return e>>>=0,t||M(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readBigUInt64LE=X((function(e){W(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||K(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,o=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(o)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||K(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],o=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||M(e,t,this.length);let n=this[e],o=1,i=0;for(;++i=o&&(n-=Math.pow(2,8*t)),n},c.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||M(e,t,this.length);let n=t,o=1,i=this[e+--n];for(;n>0&&(o*=256);)i+=this[e+--n]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return e>>>=0,t||M(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){e>>>=0,t||M(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(e,t){e>>>=0,t||M(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(e,t){return e>>>=0,t||M(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return e>>>=0,t||M(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readBigInt64LE=X((function(e){W(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||K(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||K(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||M(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return e>>>=0,t||M(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return e>>>=0,t||M(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return e>>>=0,t||M(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUintLE=c.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||R(this,e,t,r,Math.pow(2,8*r)-1,0);let o=1,i=0;for(this[t]=255&e;++i>>=0,r>>>=0,n||R(this,e,t,r,Math.pow(2,8*r)-1,0);let o=r-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+r},c.prototype.writeUint8=c.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,1,255,0),this[t]=255&e,t+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigUInt64LE=X((function(e,t=0){return C(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeBigUInt64BE=X((function(e,t=0){return U(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),c.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);R(this,e,t,r,n-1,-n)}let o=0,i=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+r},c.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);R(this,e,t,r,n-1,-n)}let o=r-1,i=1,s=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/i>>0)-s&255;return t+r},c.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},c.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},c.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},c.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||R(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},c.prototype.writeBigInt64LE=X((function(e,t=0){return C(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeBigInt64BE=X((function(e,t=0){return U(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),c.prototype.writeFloatLE=function(e,t,r){return N(this,e,t,!0,r)},c.prototype.writeFloatBE=function(e,t,r){return N(this,e,t,!1,r)},c.prototype.writeDoubleLE=function(e,t,r){return k(this,e,t,!0,r)},c.prototype.writeDoubleBE=function(e,t,r){return k(this,e,t,!1,r)},c.prototype.copy=function(e,t,r,n){if(!c.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function q(e,t,r,n,o,i){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(i+1)}${n}`:`>= -(2${n} ** ${8*(i+1)-1}${n}) and < 2 ** ${8*(i+1)-1}${n}`:`>= ${t}${n} and <= ${r}${n}`,new L.ERR_OUT_OF_RANGE("value",o,e)}!function(e,t,r){W(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||K(t,e.length-(r+1))}(n,o,i)}function W(e,t){if("number"!=typeof e)throw new L.ERR_INVALID_ARG_TYPE(t,"number",e)}function K(e,t,r){if(Math.floor(e)!==e)throw W(e,r),new L.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new L.ERR_BUFFER_OUT_OF_BOUNDS;throw new L.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}z("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),z("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),z("ERR_OUT_OF_RANGE",(function(e,t,r){let n=`The value of "${e}" is out of range.`,o=r;return Number.isInteger(r)&&Math.abs(r)>2**32?o=V(String(r)):"bigint"==typeof r&&(o=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(o=V(o)),o+="n"),n+=` It must be ${t}. Received ${o}`,n}),RangeError);const G=/[^+/0-9A-Za-z-_]/g;function F(e,t){let r;t=t||1/0;const n=e.length;let o=null;const i=[];for(let s=0;s55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function H(e){return n.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(G,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function Q(e,t,r,n){let o;for(o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function $(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function J(e){return e!=e}const Z=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let o=0;o<16;++o)t[n+o]=e[r]+e[o]}return t}();function X(e){return"undefined"==typeof BigInt?Y:e}function Y(){throw new Error("BigInt not supported")}},645:(e,t)=>{t.read=function(e,t,r,n,o){var i,s,a=8*o-n-1,c=(1<>1,d=-7,l=r?o-1:0,f=r?-1:1,h=e[t+l];for(l+=f,i=h&(1<<-d)-1,h>>=-d,d+=a;d>0;i=256*i+e[t+l],l+=f,d-=8);for(s=i&(1<<-d)-1,i>>=-d,d+=n;d>0;s=256*s+e[t+l],l+=f,d-=8);if(0===i)i=1-u;else{if(i===c)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,n),i-=u}return(h?-1:1)*s*Math.pow(2,i-n)},t.write=function(e,t,r,n,o,i){var s,a,c,u=8*i-o-1,d=(1<>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:i-1,p=n?1:-1,g=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=d):(s=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-s))<1&&(s--,c*=2),(t+=s+l>=1?f/c:f*Math.pow(2,1-l))*c>=2&&(s++,c/=2),s+l>=d?(a=0,s=d):s+l>=1?(a=(t*c-1)*Math.pow(2,o),s+=l):(a=t*Math.pow(2,l-1)*Math.pow(2,o),s=0));o>=8;e[r+h]=255&a,h+=p,a/=256,o-=8);for(s=s<0;e[r+h]=255&s,h+=p,s/=256,u-=8);e[r+h-p]|=128*g}},9537:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RPC_ERROR_MESSAGE=t.RPC_ERROR=void 0,t.RPC_ERROR={INVALID_INPUT:-32e3,RESOURCE_NOT_FOUND:-32001,RESOURCE_UNAVAILABLE:-32002,TRANSACTION_REJECTED:-32003,METHOD_NOT_SUPPORTED:-32004,LIMIT_EXCEEDED:-32005,PARSE:-32700,INVALID_REQUEST:-32600,METHOD_NOT_FOUND:-32601,INVALID_PARAMS:-32602,INTERNAL:-32603,USER_REJECTED_REQUEST:4001,UNAUTHORIZED:4100,UNSUPPORTED_METHOD:4200,DISCONNECTED:4900,CHAIN_DISCONNECTED:4901,LEDGER_UNSUPPORTED_METHOD:5e3,LEDGER_UNSUPPORTED_CHAIN:5001},t.RPC_ERROR_MESSAGE={[t.RPC_ERROR.PARSE]:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.",[t.RPC_ERROR.INVALID_REQUEST]:"The JSON sent is not a valid Request object.",[t.RPC_ERROR.METHOD_NOT_FOUND]:"The method does not exist / is not available.",[t.RPC_ERROR.INVALID_PARAMS]:"Invalid method parameter(s).",[t.RPC_ERROR.INTERNAL]:"Internal JSON-RPC error.",[t.RPC_ERROR.INVALID_INPUT]:"Invalid input.",[t.RPC_ERROR.RESOURCE_NOT_FOUND]:"Resource not found.",[t.RPC_ERROR.RESOURCE_UNAVAILABLE]:"Resource unavailable.",[t.RPC_ERROR.TRANSACTION_REJECTED]:"Transaction rejected.",[t.RPC_ERROR.METHOD_NOT_SUPPORTED]:"Method not supported.",[t.RPC_ERROR.LIMIT_EXCEEDED]:"Request limit exceeded.",[t.RPC_ERROR.USER_REJECTED_REQUEST]:"User rejected the request."}},9582:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.COSMOSTATION_RDNS=t.COSMOSTATION_WALLET_NAME=t.COSMOSTATION_ENCODED_LOGO_IMAGE=void 0,t.COSMOSTATION_ENCODED_LOGO_IMAGE="data:image/png;base64,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",t.COSMOSTATION_WALLET_NAME="Cosmostation Wallet",t.COSMOSTATION_RDNS="io.cosmostation"},7101:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.bitcoinAPIs=t.on=void 0;const o=r(9582),i=r(5);t.on=(e,t)=>{},t.bitcoinAPIs={on:t.on,off:(e,t)=>{},connectWallet:()=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_requestAccount",params:void 0})})),getAccounts:()=>n(void 0,void 0,void 0,(function*(){return[yield(0,i.request)({method:"bit_getAddress",params:void 0})]})),getAddress:()=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_getAddress",params:void 0})})),getBalance:()=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_getBalance",params:void 0})})),getPublicKey:()=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_getPublicKeyHex",params:void 0})})),getPublicKeyHex:()=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_getPublicKeyHex",params:void 0})})),switchNetwork:e=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_switchNetwork",params:[e]})})),getNetwork:()=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_getNetwork",params:void 0})})),sendBitcoin:(e,t)=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_sendBitcoin",params:{to:e,satAmount:t}})})),pushTx:e=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_pushTx",params:[e]})})),signMessage:(e,t)=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_signMessage",params:{message:e,type:t}})})),signMessageBIP322:e=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_signMessage",params:{message:e,type:"bip322-simple"}})})),signPsbt:e=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_signPsbt",params:e})})),signPsbts:e=>n(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"bit_signPsbts",params:e})})),getWalletProviderName:()=>n(void 0,void 0,void 0,(function*(){return o.COSMOSTATION_WALLET_NAME})),getWalletProviderIcon:()=>n(void 0,void 0,void 0,(function*(){return o.COSMOSTATION_ENCODED_LOGO_IMAGE}))}},9477:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.bitcoin=void 0;const n=r(7101),{connectWallet:o,getAccounts:i,getAddress:s,getBalance:a,getPublicKey:c,getPublicKeyHex:u,signMessage:d,signMessageBIP322:l,signPsbt:f,signPsbts:h,sendBitcoin:p,on:g,off:y,switchNetwork:b,getNetwork:m,pushTx:v,getWalletProviderName:w,getWalletProviderIcon:O}=n.bitcoinAPIs;t.bitcoin={connectWallet:o,getAccounts:i,getAddress:s,getBalance:a,getPublicKey:c,getPublicKeyHex:u,signMessage:d,signMessageBIP322:l,signPsbt:f,signPsbts:h,sendBitcoin:p,on:g,off:y,switchNetwork:b,getNetwork:m,pushTx:v,getWalletProviderName:w,getWalletProviderIcon:O}},5:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.request=void 0;const n=r(36),o=r(2390);t.request=e=>new Promise(((t,r)=>{const i=(0,o.uuidv4)(),s=e=>{var n,o,a;if((null===(n=e.data)||void 0===n?void 0:n.isCosmostation)&&(null===(o=e.data)||void 0===o?void 0:o.messageId)===i){window.removeEventListener("message",s);const{data:n}=e;(null===(a=n.response)||void 0===a?void 0:a.error)?r(n.response.error):t(n.response.result)}};window.addEventListener("message",s),(0,n.sendMessageWebToApp)(e,i)}))},2891:function(e,t,r){"use strict";var n=r(8764).lW,o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.keplrAPIs=void 0;const i=r(7091),s=r(2753),a=e=>o(void 0,void 0,void 0,(function*(){try{const t=yield(0,s.request)({method:"cos_requestAccount",params:{chainName:e}});return{isNanoLedger:t.isLedger,isKeystone:t.isKeystone,algo:t.isEthermint?"ethsecp256k1":"secp256k1",pubKey:(0,i.hexToBytes)(t.publicKey),bech32Address:t.address,name:t.name,address:new Uint8Array}}catch(e){throw new Error(e.message||"Unknown Error")}})),c=(e,t,r,n)=>o(void 0,void 0,void 0,(function*(){var t,o,i,a,c,u;try{const d=yield(0,s.request)({method:"cos_signAmino",params:{chainName:e,isEditFee:!(null!==(t=null==n?void 0:n.preferNoSetFee)&&void 0!==t?t:null===(o=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===o?void 0:o.preferNoSetFee),isEditMemo:!(null!==(i=null==n?void 0:n.preferNoSetMemo)&&void 0!==i?i:null===(a=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===a?void 0:a.preferNoSetMemo),isCheckBalance:!(null!==(c=null==n?void 0:n.disableBalanceCheck)&&void 0!==c?c:null===(u=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===u?void 0:u.disableBalanceCheck),doc:r}});return{signed:d.signed_doc,signature:{pub_key:d.pub_key,signature:d.signature}}}catch(e){throw new Error(e.message||"Unknown Error")}})),u=(e,t,r,n)=>o(void 0,void 0,void 0,(function*(){var t,o,i,a,c,u;const d=yield(0,s.request)({method:"cos_signDirect",params:{chainName:e,doc:{account_number:String(r.accountNumber),auth_info_bytes:r.authInfoBytes,body_bytes:r.bodyBytes,chain_id:r.chainId},isEditFee:!(null!==(t=null==n?void 0:n.preferNoSetFee)&&void 0!==t?t:null===(o=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===o?void 0:o.preferNoSetFee),isEditMemo:!(null!==(i=null==n?void 0:n.preferNoSetMemo)&&void 0!==i?i:null===(a=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===a?void 0:a.preferNoSetMemo),isCheckBalance:!(null!==(c=null==n?void 0:n.disableBalanceCheck)&&void 0!==c?c:null===(u=window.cosmostation.providers.keplr.defaultOptions.sign)||void 0===u?void 0:u.disableBalanceCheck)}});return{signed:{accountNumber:d.signed_doc.account_number,chainId:d.signed_doc.chain_id,authInfoBytes:new Uint8Array(d.signed_doc.auth_info_bytes),bodyBytes:new Uint8Array(d.signed_doc.body_bytes)},signature:{pub_key:d.pub_key,signature:d.signature}}})),d=(e,t)=>({signAmino:(r,n)=>o(void 0,void 0,void 0,(function*(){return c(e,0,n,t)})),signDirect:(r,n)=>o(void 0,void 0,void 0,(function*(){return u(e,0,n,t)})),getAccounts:()=>o(void 0,void 0,void 0,(function*(){const t=yield a(e);return[{address:t.bech32Address,pubkey:t.pubKey,algo:t.algo}]})),chainId:e}),l=(e,t)=>({signAmino:(r,n)=>o(void 0,void 0,void 0,(function*(){return c(e,0,n,t)})),getAccounts:()=>o(void 0,void 0,void 0,(function*(){const t=yield a(e);return[{address:t.bech32Address,pubkey:t.pubKey,algo:t.algo}]})),chainId:e});t.keplrAPIs={enable:e=>o(void 0,void 0,void 0,(function*(){if(!e)throw new Error("chain id not set");const t="string"==typeof e?[e]:e,r=yield(0,s.request)({method:"cos_supportedChainIds",params:void 0}),n=[...r.official,...r.unofficial],o=t.find((e=>!n.includes(e)));if(o)throw new Error(`There is no chain info for ${o}`);yield(0,s.request)({method:"cos_requestAccount",params:{chainName:t[0]}})})),getKey:a,experimentalSuggestChain:e=>o(void 0,void 0,void 0,(function*(){try{const t=yield(0,s.request)({method:"cos_supportedChainIds",params:void 0});[...t.official,...t.unofficial].includes(e.chainId)}catch(e){throw new Error(e.message||"Unknown Error")}})),signAmino:c,signDirect:u,sendTx:(e,t,r)=>o(void 0,void 0,void 0,(function*(){try{const o=(()=>{if("number"==typeof r)return r;if("string"==typeof r){if("block"===r)return 1;if("sync"===r)return 2;if("async"===r)return 3}return 0})(),i=yield(0,s.request)({method:"cos_sendTransaction",params:{chainName:e,mode:o,txBytes:n.from(t).toString("base64")}});return n.from(i.tx_response.txhash,"hex")}catch(e){throw new Error(e.message||"Unknown Error")}})),getOfflineSigner:d,getOfflineSignerOnlyAmino:l,getOfflineSignerAuto:(e,t)=>o(void 0,void 0,void 0,(function*(){return(yield(0,s.request)({method:"cos_requestAccount",params:{chainName:e}})).isLedger?l(e,t):d(e,t)})),signArbitrary:(e,t,r)=>o(void 0,void 0,void 0,(function*(){const o="string"==typeof r?r:n.from(r).toString("utf8");return yield(0,s.request)({method:"cos_signMessage",params:{chainName:e,signer:t,message:o}})})),verifyArbitrary:(e,t,r,i)=>o(void 0,void 0,void 0,(function*(){const o="string"==typeof r?r:n.from(r).toString("utf8");return yield(0,s.request)({method:"cos_verifyMessage",params:{chainName:e,signer:t,message:o,publicKey:i.pub_key.value,signature:i.signature}})})),suggestToken:(e,t)=>o(void 0,void 0,void 0,(function*(){try{yield(0,s.request)({method:"cos_addTokensCW20",params:{chainName:e,tokens:[{contractAddress:t}]}})}catch(e){throw new Error(e.message||"Unknown Error")}}))}},6720:function(e,t,r){"use strict";var n=r(8764).lW,o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.walletsAPIs=void 0;const i=r(2753);t.walletsAPIs={connect:e=>o(void 0,void 0,void 0,(function*(){const t="string"==typeof e?[e]:e,r=yield(0,i.request)({method:"cos_supportedChainIds",params:void 0});if(!t.every((e=>r.official.includes(e)||r.unofficial.includes(e))))throw new Error("Unsupported chainId is exist");yield(0,i.request)({method:"cos_requestAccount",params:{chainName:t[0]}})})),getAccount:e=>o(void 0,void 0,void 0,(function*(){try{const t=yield(0,i.request)({method:"cos_requestAccount",params:{chainName:e}});return{name:t.name,is_ledger:!!t.isLedger,public_key:{type:t.isEthermint?"ethsecp256k1":"secp256k1",value:n.from(t.publicKey,"hex").toString("base64")},address:t.address}}catch(e){throw new Error(e.message||"Unknown Error")}})),signAmino:(e,t,r)=>o(void 0,void 0,void 0,(function*(){var n,o;try{const s=yield(0,i.request)({method:"cos_signAmino",params:{chainName:e,doc:t,isEditFee:null===(n=null==r?void 0:r.edit_mode)||void 0===n?void 0:n.fee,isEditMemo:null===(o=null==r?void 0:r.edit_mode)||void 0===o?void 0:o.memo,isCheckBalance:null==r?void 0:r.is_check_balance}});return{signature:s.signature,signed_doc:s.signed_doc}}catch(e){throw new Error(e.message||"Unknown Error")}})),signDirect:(e,t,r)=>o(void 0,void 0,void 0,(function*(){var o,s;const a="string"==typeof t.body_bytes?new Uint8Array(n.from(t.body_bytes,"hex")):new Uint8Array(t.body_bytes),c="string"==typeof t.auth_info_bytes?new Uint8Array(n.from(t.auth_info_bytes,"hex")):new Uint8Array(t.auth_info_bytes);try{const n=yield(0,i.request)({method:"cos_signDirect",params:{chainName:e,doc:Object.assign(Object.assign({},t),{body_bytes:a,auth_info_bytes:c}),isEditFee:null===(o=null==r?void 0:r.edit_mode)||void 0===o?void 0:o.fee,isEditMemo:null===(s=null==r?void 0:r.edit_mode)||void 0===s?void 0:s.memo,isCheckBalance:null==r?void 0:r.is_check_balance}});return{signature:n.signature,signed_doc:{auth_info_bytes:n.signed_doc.auth_info_bytes,body_bytes:n.signed_doc.body_bytes}}}catch(e){throw new Error(e.message||"Unknown Error")}})),sendTransaction:(e,t,r)=>o(void 0,void 0,void 0,(function*(){var o,s;const a=null!=r?r:2,c=yield(0,i.request)({method:"cos_sendTransaction",params:{chainName:e,mode:a,txBytes:t&&"object"==typeof t?n.from(t).toString("base64"):t}});if(0!==(null===(o=null==c?void 0:c.tx_response)||void 0===o?void 0:o.code))throw"string"==typeof(null===(s=null==c?void 0:c.tx_response)||void 0===s?void 0:s.raw_log)?new Error(c.tx_response.raw_log):new Error("Unknown Error");return c.tx_response.txhash})),signMessage:(e,t,r)=>o(void 0,void 0,void 0,(function*(){return{signature:(yield(0,i.request)({method:"cos_signMessage",params:{chainName:e,signer:r,message:t}})).signature}})),verifyMessage:(e,t,r,n,s)=>o(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"cos_verifyMessage",params:{chainName:e,signer:r,message:t,publicKey:s,signature:n}})})),disconnect:()=>o(void 0,void 0,void 0,(function*(){yield(0,i.request)({method:"cos_disconnect",params:void 0})})),addChain:e=>o(void 0,void 0,void 0,(function*(){yield(0,i.request)({method:"cos_addChain",params:{addressPrefix:e.address_prefix,baseDenom:e.base_denom,chainId:e.chain_id,chainName:e.chain_name,coinType:e.coin_type,decimals:e.decimals,displayDenom:e.display_denom,gasRate:e.gas_rate,restURL:e.lcd_url,coinGeckoId:e.coingecko_id,cosmWasm:e.cosmwasm,imageURL:e.image_url,type:e.type}})})),getSupportedChainIds:()=>o(void 0,void 0,void 0,(function*(){const e=yield(0,i.request)({method:"cos_supportedChainIds",params:void 0});return[...e.official,...e.unofficial]})),on:(e,t)=>{"AccountChanged"===e&&window.addEventListener("cosmostation_keystorechange",t)},off:(e,t)=>{"AccountChanged"===e&&window.removeEventListener("cosmostation_keystorechange",t)}}},9392:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tendermint=t.cosmos=t.cosmosWallet=t.keplr=void 0;const n=r(2891),o=r(9582),i=r(2753),s=r(6720);t.keplr={mode:"extension",version:"0.0.0",defaultOptions:{sign:{disableBalanceCheck:!1,preferNoSetFee:!1,preferNoSetMemo:!1}},enable:n.keplrAPIs.enable,getKey:n.keplrAPIs.getKey,experimentalSuggestChain:n.keplrAPIs.experimentalSuggestChain,signAmino:n.keplrAPIs.signAmino,signDirect:n.keplrAPIs.signDirect,sendTx:n.keplrAPIs.sendTx,getOfflineSigner:n.keplrAPIs.getOfflineSigner,getOfflineSignerOnlyAmino:n.keplrAPIs.getOfflineSignerOnlyAmino,getOfflineSignerAuto:n.keplrAPIs.getOfflineSignerAuto,signArbitrary:n.keplrAPIs.signArbitrary,verifyArbitrary:n.keplrAPIs.verifyArbitrary,suggestToken:n.keplrAPIs.suggestToken},t.cosmosWallet={name:o.COSMOSTATION_WALLET_NAME,logo:o.COSMOSTATION_ENCODED_LOGO_IMAGE,methods:{connect:s.walletsAPIs.connect,getAccount:s.walletsAPIs.getAccount,signAmino:s.walletsAPIs.signAmino,signDirect:s.walletsAPIs.signDirect,sendTransaction:s.walletsAPIs.sendTransaction,signMessage:s.walletsAPIs.signMessage,verifyMessage:s.walletsAPIs.verifyMessage,disconnect:s.walletsAPIs.disconnect,addChain:s.walletsAPIs.addChain,getSupportedChainIds:s.walletsAPIs.getSupportedChainIds},events:{on:s.walletsAPIs.on,off:s.walletsAPIs.off}};const a=(e,t)=>{},c=(e,t)=>{};t.cosmos={on:a,off:c,request:i.request},t.tendermint={on:a,off:c,request:i.request}},2753:function(e,t,r){"use strict";var n=r(8764).lW,o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.request=t.executeRequest=void 0;const i=r(9537),s=r(7359),a=r(36),c=r(7091),u=r(2390);t.executeRequest=e=>new Promise(((t,r)=>{const n=(0,u.uuidv4)(),o=e=>{var i,s,a;if((null===(i=e.data)||void 0===i?void 0:i.isCosmostation)&&(null===(s=e.data)||void 0===s?void 0:s.messageId)===n){window.removeEventListener("message",o);const{data:n}=e;(null===(a=n.response)||void 0===a?void 0:a.error)?r(n.response.error):t(n.response.result)}};window.addEventListener("message",o),(0,a.sendMessageWebToApp)(e,n)})),t.request=e=>o(void 0,void 0,void 0,(function*(){var r,a,u,d;if("cos_requestAccount"===e.method||"cos_account"===e.method||"ten_requestAccount"===e.method||"ten_account"===e.method){const r=yield(0,t.executeRequest)(e),{publicKey:n}=r;return Object.assign(Object.assign({},r),{publicKey:(0,c.hexToBytes)(n)})}if("cos_requestAccounts"===e.method){const n=yield(0,t.executeRequest)({method:"cos_supportedChainIds",params:void 0});if(!(null===(a=null===(r=e.params)||void 0===r?void 0:r.chainIds)||void 0===a?void 0:a.every((e=>{var t,r;return(null===(t=null==n?void 0:n.official)||void 0===t?void 0:t.includes(e))||(null===(r=null==n?void 0:n.unofficial)||void 0===r?void 0:r.includes(e))}))))throw new s.CosmosRPCError(i.RPC_ERROR.INVALID_PARAMS,i.RPC_ERROR_MESSAGE[i.RPC_ERROR.INVALID_PARAMS]);const l=Object.assign(Object.assign({},e),{method:"cos_requestAccount",params:{chainName:null===(d=null===(u=e.params)||void 0===u?void 0:u.chainIds)||void 0===d?void 0:d[0]}});return yield(0,t.executeRequest)(l),(yield Promise.all(e.params.chainIds.map((e=>o(void 0,void 0,void 0,(function*(){return yield(0,t.executeRequest)({method:"cos_requestAccount",params:{chainName:e}})})))))).map((e=>{const{publicKey:t}=e;return Object.assign(Object.assign({},e),{publicKey:(0,c.hexToBytes)(t)})}))}if("cos_signDirect"===e.method||"ten_signDirect"===e.method){const{params:r}=e,n=null==r?void 0:r.doc,o=n?Object.assign(Object.assign({},n),{auth_info_bytes:(0,c.bytesToHex)(n.auth_info_bytes),body_bytes:(0,c.bytesToHex)(n.body_bytes)}):n,i=r?Object.assign(Object.assign({},r),{doc:o}):r,s=Object.assign(Object.assign({},e),{params:i}),a=yield(0,t.executeRequest)(s);return Object.assign(Object.assign({},a),{signed_doc:Object.assign(Object.assign({},a.signed_doc),{auth_info_bytes:(0,c.hexToBytes)(a.signed_doc.auth_info_bytes),body_bytes:(0,c.hexToBytes)(a.signed_doc.body_bytes)})})}if("cos_sendTransaction"===e.method){const{params:r}=e,o=(null==r?void 0:r.txBytes)&&"object"==typeof r.txBytes?n.from(r.txBytes).toString("base64"):r.txBytes,i=Object.assign(Object.assign({},r),{txBytes:o}),s=Object.assign(Object.assign({},e),{params:i});return(0,t.executeRequest)(s)}return(0,t.executeRequest)(e)}))},3180:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.ethereumAPIs=void 0;const o=r(36),i=r(2390),s=r(8684);t.ethereumAPIs={on:(e,t)=>{const r=r=>{var o,i,a,c,u,d,l,f;(null===(o=r.data)||void 0===o?void 0:o.isCosmostation)&&(null===(i=r.data)||void 0===i?void 0:i.type)===e&&("accountsChanged"===e&&Array.isArray(null===(c=null===(a=r.data)||void 0===a?void 0:a.message)||void 0===c?void 0:c.result)&&0===(null===(d=null===(u=r.data)||void 0===u?void 0:u.message)||void 0===d?void 0:d.result.length)?n(void 0,void 0,void 0,(function*(){try{const e=yield(0,s.request)({method:"eth_requestAccounts",params:{}});t(e)}catch(e){t([])}})):t(null===(f=null===(l=r.data)||void 0===l?void 0:l.message)||void 0===f?void 0:f.result))};return window.addEventListener("message",r),window.cosmostation.handlerInfos.push({eventName:e,originHandler:t,handler:r}),r},off:(e,t)=>{if(void 0===t)window.removeEventListener("message",e);else{const r=window.cosmostation.handlerInfos.filter((r=>r.eventName===e&&r.originHandler===t)),n=window.cosmostation.handlerInfos.filter((r=>!(r.eventName===e&&r.originHandler===t)));r.forEach((e=>{window.removeEventListener("message",e.handler)})),window.cosmostation.handlerInfos=n}},send:(e,t)=>{const r=(0,i.uuidv4)();if("string"==typeof e)return new Promise(((n,i)=>{const s=e=>{var t,o,a;if((null===(t=e.data)||void 0===t?void 0:t.isCosmostation)&&(null===(o=e.data)||void 0===o?void 0:o.messageId)===r){window.removeEventListener("message",s);const{data:t}=e;(null===(a=t.response)||void 0===a?void 0:a.error)?i(t.response):n({result:t.response.result,jsonrpc:"2.0",id:void 0})}};window.addEventListener("message",s),(0,o.sendMessageWebToApp)({method:e,params:t},r)}));const n=o=>{var i,s,a;if((null===(i=o.data)||void 0===i?void 0:i.isCosmostation)&&(null===(s=o.data)||void 0===s?void 0:s.messageId)===r){window.removeEventListener("message",n);const{data:r}=o;"function"==typeof t&&((null===(a=r.response)||void 0===a?void 0:a.error)?t(r.response.error,{id:e.id,jsonrpc:"2.0",method:e.method,error:r.response.error}):t(null,{id:e.id,jsonrpc:"2.0",method:e.method,error:r.response.error,result:r.response.result}))}};window.addEventListener("message",n),(0,o.sendMessageWebToApp)({method:e.method,params:e.params},r)},sendAsync:(e,t)=>{const r=(0,i.uuidv4)(),n=o=>{var i,s,a;if((null===(i=o.data)||void 0===i?void 0:i.isCosmostation)&&(null===(s=o.data)||void 0===s?void 0:s.messageId)===r){window.removeEventListener("message",n);const{data:r}=o;(null===(a=r.response)||void 0===a?void 0:a.error)?t(r.response.error,{id:e.id,jsonrpc:"2.0",method:e.method,error:r.response.error}):t(null,{id:e.id,jsonrpc:"2.0",method:e.method,error:r.response.error,result:r.response.result})}};window.addEventListener("message",n),(0,o.sendMessageWebToApp)({method:e.method,params:e.params},r)},enable:()=>(0,s.request)({method:"eth_requestAccounts",params:[]})}},9360:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.announceEthereumProvider=t.ethereum=void 0;const n=r(2390),o=r(9582),i=r(8684),s=r(3180);t.ethereum={isMetaMask:!0,on:s.ethereumAPIs.on,addListener:s.ethereumAPIs.on,off:s.ethereumAPIs.off,removeListener:s.ethereumAPIs.off,request:i.request,send:s.ethereumAPIs.send,sendAsync:s.ethereumAPIs.sendAsync,enable:s.ethereumAPIs.enable};const a=(0,n.uuidv4)(),c=()=>{const e={uuid:a,name:o.COSMOSTATION_WALLET_NAME,icon:o.COSMOSTATION_ENCODED_LOGO_IMAGE,rdns:o.COSMOSTATION_RDNS};window.dispatchEvent(new CustomEvent("eip6963:announceProvider",{detail:Object.freeze({info:e,provider:t.ethereum})}))};t.announceEthereumProvider=()=>{window.addEventListener("eip6963:requestProvider",(()=>{c()})),c()}},8684:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.request=void 0;const n=r(36),o=r(2390);t.request=function(e){return new Promise(((t,r)=>{const i=(0,o.uuidv4)(),s=e=>{var n,o,a;if((null===(n=e.data)||void 0===n?void 0:n.isCosmostation)&&(null===(o=e.data)||void 0===o?void 0:o.messageId)===i){window.removeEventListener("message",s);const{data:n}=e;(null===(a=n.response)||void 0===a?void 0:a.error)?r(n.response.error):t(n.response.result)}};window.addEventListener("message",s),(0,n.sendMessageWebToApp)(e,i)}))}},1170:function(e,t,r){"use strict";var n=r(8764).lW,o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.suiAPIs=void 0;const i=r(9041),s=r(9108);t.suiAPIs={on:(e,t)=>o(void 0,void 0,void 0,(function*(){console.log(e,t)})),off:(e,t)=>o(void 0,void 0,void 0,(function*(){console.log(e,t)})),getAccounts:()=>o(void 0,void 0,void 0,(function*(){return[(yield(0,i.request)({method:"sui_getAccount",params:void 0})).address]})),getPublicKey:()=>o(void 0,void 0,void 0,(function*(){return(yield(0,i.request)({method:"sui_getAccount",params:void 0})).publicKey})),getChain:()=>o(void 0,void 0,void 0,(function*(){return yield(0,i.request)({method:"sui_getChain"})})),signTransactionBlock:e=>(0,i.request)({method:"sui_signTransactionBlock",params:{transactionBlockSerialized:e.transactionBlock.serialize()}}),signTransaction:e=>o(void 0,void 0,void 0,(function*(){const t={transactionBlockSerialized:yield e.transaction.toJSON(),signal:e.signal},r=yield(0,i.request)({method:"sui_signTransaction",params:t});return{bytes:r.transactionBlockBytes,signature:r.signature}})),signAndExecuteTransactionBlock:e=>(0,i.request)({method:"sui_signAndExecuteTransactionBlock",params:{transactionBlockSerialized:e.transactionBlock.serialize(),options:e.options,requestType:e.requestType}}),signAndExecuteTransaction:e=>o(void 0,void 0,void 0,(function*(){const t={transactionBlockSerialized:yield e.transaction.toJSON(),signal:e.signal,options:{showRawEffects:!0,showRawInput:!0}},r=yield(0,i.request)({method:"sui_signAndExecuteTransaction",params:t}),[{txSignatures:[o],intentMessage:{value:a}}]=s.bcs.SenderSignedData.parse(n.from(r.rawTransaction,"base64")),c=s.bcs.TransactionData.serialize(a).toBase64();return{digest:r.digest,effects:n.from(new Uint8Array(r.rawEffects)).toString("base64"),bytes:c,signature:o}})),signMessage:({message:e,account:t})=>(0,i.request)({method:"sui_signMessage",params:{message:n.from(e).toString("base64"),accountAddress:null==t?void 0:t.address}}),signPersonalMessage:({message:e,account:t})=>o(void 0,void 0,void 0,(function*(){const r=yield(0,i.request)({method:"sui_signPersonalMessage",params:{message:n.from(e).toString("base64"),accountAddress:null==t?void 0:t.address}});return{bytes:r.messageBytes,signature:r.signature}}))}},1641:function(e,t,r){"use strict";var n=r(8764).lW,o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(o,i){function s(e){try{c(n.next(e))}catch(e){i(e)}}function a(e){try{c(n.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(s,a)}c((n=n.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:!0}),t.CosmostationWallet=void 0;const i=r(9582),s=r(1170),{on:a,getAccounts:c,getPublicKey:u,getChain:d,signTransactionBlock:l,signTransaction:f,signAndExecuteTransactionBlock:h,signAndExecuteTransaction:p,signMessage:g,signPersonalMessage:y}=s.suiAPIs;t.CosmostationWallet=class{constructor(){this.name=i.COSMOSTATION_WALLET_NAME,this.chains=[],this.features={},this.accounts=[],this.version="1.0.0",this.icon=i.COSMOSTATION_ENCODED_LOGO_IMAGE,this.chains=["sui:devnet","sui:testnet","sui:mainnet"],this.features={"standard:connect":{version:"1.0.0",connect:()=>o(this,void 0,void 0,(function*(){try{const e=yield c(),t=yield u(),r=yield d();if(e.length>0&&t&&r)return this.accounts=[{address:e[0],publicKey:new Uint8Array(n.from(t.substring(2),"hex")),chains:[`sui:${r}`],features:["sui:signAndExecuteTransactionBlock","sui:signMessage","sui:signTransactionBlock","sui:signTransaction","sui:signPersonalMessage","sui:signAndExecuteTransaction"]}],{accounts:this.accounts}}catch(e){return{accounts:[]}}}))},"standard:events":{version:"1.0.0",on:a},"sui:signTransactionBlock":{version:"1.0.0",signTransactionBlock:l},"sui:signTransaction":{version:"2.0.0",signTransaction:f},"sui:signAndExecuteTransactionBlock":{version:"1.0.0",signAndExecuteTransactionBlock:h},"sui:signAndExecuteTransaction":{version:"2.0.0",signAndExecuteTransaction:p},"sui:signMessage":{version:"1.0.0",signMessage:g},"sui:signPersonalMessage":{version:"2.0.0",signPersonalMessage:y}},(()=>{o(this,void 0,void 0,(function*(){try{const e=yield c(),t=yield u(),r=yield d();e.length>0&&t&&r&&(this.accounts=[{address:e[0],publicKey:new Uint8Array(n.from(t.substring(2),"hex")),chains:[`sui:${r}`],features:["sui:signAndExecuteTransactionBlock","sui:signMessage","sui:signTransactionBlock","sui:signTransaction","sui:signPersonalMessage","sui:signAndExecuteTransaction"]}])}catch(e){}}))})()}}},9041:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.request=void 0;const n=r(36),o=r(2390);t.request=function(e){return new Promise(((t,r)=>{const i=(0,o.uuidv4)(),s=e=>{var n,o,a;if((null===(n=e.data)||void 0===n?void 0:n.isCosmostation)&&(null===(o=e.data)||void 0===o?void 0:o.messageId)===i){window.removeEventListener("message",s);const{data:n}=e;(null===(a=n.response)||void 0===a?void 0:a.error)?r(n.response.error):t(n.response.result)}};window.addEventListener("message",s),(0,n.sendMessageWebToApp)(e,i)}))}},7359:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CosmosRPCError=void 0;class r extends Error{constructor(e,t){super(t),this.name="CosmosRPCError",this.code=e;const n={error:{code:e,message:t}};this.rpcMessage=n,Object.setPrototypeOf(this,r.prototype)}}t.CosmosRPCError=r},36:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.sendMessageWebToApp=void 0,t.sendMessageWebToApp=function(e,t){const r={isCosmostation:!0,message:e,messageId:t};window.webkit&&window.webkit.messageHandlers&&window.webkit.messageHandlers.station&&window.webkit.messageHandlers.station.postMessage(JSON.stringify(r)),window.station&&window.station.request(JSON.stringify(r))}},7091:(e,t,r)=>{"use strict";var n=r(8764).lW;Object.defineProperty(t,"__esModule",{value:!0}),t.bytesToHex=t.hexToBytes=void 0,t.hexToBytes=function(e){return new Uint8Array(n.from(e,"hex"))},t.bytesToHex=function(e){return n.from(e).toString("hex")}},2390:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.uuidv4=void 0,t.uuidv4=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)}))}},9002:(e,t,r)=>{"use strict";var n,o=Object.create,i=Object.defineProperty,s=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,c=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty,d=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of a(t))u.call(e,o)||o===r||i(e,o,{get:()=>t[o],enumerable:!(n=s(t,o))||n.enumerable});return e},l={};((e,t)=>{for(var r in t)i(e,r,{get:t[r],enumerable:!0})})(l,{fromB58:()=>p,toB58:()=>h}),e.exports=(n=l,d(i({},"__esModule",{value:!0}),n));var f=((e,t,r)=>(r=null!=e?o(c(e)):{},d(e&&e.__esModule?r:i(r,"default",{value:e,enumerable:!0}),e)))(r(2949));const h=e=>f.default.encode(e),p=e=>f.default.decode(e)},2849:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={};function a(e){return Uint8Array.from(atob(e),(e=>e.charCodeAt(0)))}((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{fromB64:()=>a,toB64:()=>u}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of o(t))i.call(e,s)||undefined===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t));const c=8192;function u(e){if(e.length{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c=e=>{throw TypeError(e)},u=(e,t,r)=>t.has(e)||c("Cannot "+r),d=(e,t,r)=>(u(e,t,"read from private field"),r?r.call(e):t.get(e)),l=(e,t,r)=>t.has(e)?c("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),f=(e,t,r,n)=>(u(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),h={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(h,{BcsType:()=>_,SerializedBcs:()=>T,bigUIntBcsType:()=>j,dynamicSizeBcsType:()=>x,fixedSizeBcsType:()=>B,isSerializedBcs:()=>P,lazyBcsType:()=>R,stringLikeBcsType:()=>M,uIntBcsType:()=>I}),e.exports=(n=h,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var p,g,y,b,m=r(9002),v=r(2849),w=r(5383),O=r(4994),A=r(7539),E=r(6236);p=new WeakMap,g=new WeakMap;let _=class e{constructor(e){l(this,p),l(this,g),this.name=e.name,this.read=e.read,this.serializedSize=e.serializedSize??(()=>null),f(this,p,e.write),f(this,g,e.serialize??((e,t)=>{const r=new E.BcsWriter({initialSize:this.serializedSize(e)??void 0,...t});return d(this,p).call(this,e,r),r.toBytes()})),this.validate=e.validate??(()=>{})}write(e,t){this.validate(e),d(this,p).call(this,e,t)}serialize(e,t){return this.validate(e),new T(this,d(this,g).call(this,e,t))}parse(e){const t=new O.BcsReader(e);return this.read(t)}fromHex(e){return this.parse((0,w.fromHEX)(e))}fromBase58(e){return this.parse((0,m.fromB58)(e))}fromBase64(e){return this.parse((0,v.fromB64)(e))}transform({name:t,input:r,output:n,validate:o}){return new e({name:t??this.name,read:e=>n(this.read(e)),write:(e,t)=>d(this,p).call(this,r(e),t),serializedSize:e=>this.serializedSize(r(e)),serialize:(e,t)=>d(this,g).call(this,r(e),t),validate:e=>{o?.(e),this.validate(r(e))}})}};const S=Symbol.for("@mysten/serialized-bcs");function P(e){return!!e&&"object"==typeof e&&!0===e[S]}class T{constructor(e,t){l(this,y),l(this,b),f(this,y,e),f(this,b,t)}get[S](){return!0}toBytes(){return d(this,b)}toHex(){return(0,w.toHEX)(d(this,b))}toBase64(){return(0,v.toB64)(d(this,b))}toBase58(){return(0,m.toB58)(d(this,b))}parse(){return d(this,y).parse(d(this,b))}}function B({size:e,...t}){return new _({...t,serializedSize:()=>e})}function I({readMethod:e,writeMethod:t,...r}){return B({...r,read:t=>t[e](),write:(e,r)=>r[t](e),validate:e=>{if(e<0||e>r.maxValue)throw new TypeError(`Invalid ${r.name} value: ${e}. Expected value in range 0-${r.maxValue}`);r.validate?.(e)}})}function j({readMethod:e,writeMethod:t,...r}){return B({...r,read:t=>t[e](),write:(e,r)=>r[t](BigInt(e)),validate:e=>{const t=BigInt(e);if(t<0||t>r.maxValue)throw new TypeError(`Invalid ${r.name} value: ${t}. Expected value in range 0-${r.maxValue}`);r.validate?.(t)}})}function x({serialize:e,...t}){const r=new _({...t,serialize:e,write:(e,t)=>{for(const n of r.serialize(e).toBytes())t.write8(n)}});return r}function M({toBytes:e,fromBytes:t,...r}){return new _({...r,read:e=>{const r=e.readULEB(),n=e.readBytes(r);return t(n)},write:(t,r)=>{const n=e(t);r.writeULEB(n.length);for(let e=0;e{const r=e(t),n=(0,A.ulebEncode)(r.length),o=new Uint8Array(n.length+r.length);return o.set(n,0),o.set(r,n.length),o},validate:e=>{if("string"!=typeof e)throw new TypeError(`Invalid ${r.name} value: ${e}. Expected string`);r.validate?.(e)}})}function R(e){let t=null;function r(){return t||(t=e()),t}return new _({name:"lazy",read:e=>r().read(e),serializedSize:e=>r().serializedSize(e),write:(e,t)=>r().write(e,t),serialize:(e,t)=>r().serialize(e,t).toBytes()})}y=new WeakMap,b=new WeakMap},9570:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{bcs:()=>l}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(5600),d=r(7539);const l={u8:e=>(0,u.uIntBcsType)({name:"u8",readMethod:"read8",writeMethod:"write8",size:1,maxValue:255,...e}),u16:e=>(0,u.uIntBcsType)({name:"u16",readMethod:"read16",writeMethod:"write16",size:2,maxValue:65535,...e}),u32:e=>(0,u.uIntBcsType)({name:"u32",readMethod:"read32",writeMethod:"write32",size:4,maxValue:2**32-1,...e}),u64:e=>(0,u.bigUIntBcsType)({name:"u64",readMethod:"read64",writeMethod:"write64",size:8,maxValue:2n**64n-1n,...e}),u128:e=>(0,u.bigUIntBcsType)({name:"u128",readMethod:"read128",writeMethod:"write128",size:16,maxValue:2n**128n-1n,...e}),u256:e=>(0,u.bigUIntBcsType)({name:"u256",readMethod:"read256",writeMethod:"write256",size:32,maxValue:2n**256n-1n,...e}),bool:e=>(0,u.fixedSizeBcsType)({name:"bool",size:1,read:e=>1===e.read8(),write:(e,t)=>t.write8(e?1:0),...e,validate:t=>{if(e?.validate?.(t),"boolean"!=typeof t)throw new TypeError("Expected boolean, found "+typeof t)}}),uleb128:e=>(0,u.dynamicSizeBcsType)({name:"uleb128",read:e=>e.readULEB(),serialize:e=>Uint8Array.from((0,d.ulebEncode)(e)),...e}),bytes:(e,t)=>(0,u.fixedSizeBcsType)({name:`bytes[${e}]`,size:e,read:t=>t.readBytes(e),write:(t,r)=>{for(let n=0;n{if(t?.validate?.(r),!r||"object"!=typeof r||!("length"in r))throw new TypeError("Expected array, found "+typeof r);if(r.length!==e)throw new TypeError(`Expected array of length ${e}, found ${r.length}`)}}),string:e=>(0,u.stringLikeBcsType)({name:"string",toBytes:e=>(new TextEncoder).encode(e),fromBytes:e=>(new TextDecoder).decode(e),...e}),fixedArray:(e,t,r)=>new u.BcsType({name:`${t.name}[${e}]`,read:r=>{const n=new Array(e);for(let o=0;o{for(const n of e)t.write(n,r)},...r,validate:t=>{if(r?.validate?.(t),!t||"object"!=typeof t||!("length"in t))throw new TypeError("Expected array, found "+typeof t);if(t.length!==e)throw new TypeError(`Expected array of length ${e}, found ${t.length}`)}}),option:e=>l.enum(`Option<${e.name}>`,{None:null,Some:e}).transform({input:e=>null==e?{None:!0}:{Some:e},output:e=>"Some"===e.$kind?e.Some:null}),vector:(e,t)=>new u.BcsType({name:`vector<${e.name}>`,read:t=>{const r=t.readULEB(),n=new Array(r);for(let o=0;o{r.writeULEB(t.length);for(const n of t)e.write(n,r)},...t,validate:e=>{if(t?.validate?.(e),!e||"object"!=typeof e||!("length"in e))throw new TypeError("Expected array, found "+typeof e)}}),tuple:(e,t)=>new u.BcsType({name:`(${e.map((e=>e.name)).join(", ")})`,serializedSize:t=>{let r=0;for(let n=0;n{const r=[];for(const n of e)r.push(n.read(t));return r},write:(t,r)=>{for(let n=0;n{if(t?.validate?.(r),!Array.isArray(r))throw new TypeError("Expected array, found "+typeof r);if(r.length!==e.length)throw new TypeError(`Expected array of length ${e.length}, found ${r.length}`)}}),struct(e,t,r){const n=Object.entries(t);return new u.BcsType({name:e,serializedSize:e=>{let t=0;for(const[r,o]of n){const n=o.serializedSize(e[r]);if(null==n)return null;t+=n}return t},read:e=>{const t={};for(const[r,o]of n)t[r]=o.read(e);return t},write:(e,t)=>{for(const[r,o]of n)o.write(e[r],t)},...r,validate:e=>{if(r?.validate?.(e),"object"!=typeof e||null==e)throw new TypeError("Expected object, found "+typeof e)}})},enum(e,t,r){const n=Object.entries(t);return new u.BcsType({name:e,read:t=>{const r=t.readULEB(),o=n[r];if(!o)throw new TypeError(`Unknown value ${r} for enum ${e}`);const[i,s]=o;return{[i]:s?.read(t)??!0,$kind:i}},write:(e,r)=>{const[o,i]=Object.entries(e).filter((([e])=>Object.hasOwn(t,e)))[0];for(let e=0;e{if(r?.validate?.(n),"object"!=typeof n||null==n)throw new TypeError("Expected object, found "+typeof n);const o=Object.keys(n).filter((e=>void 0!==n[e]&&Object.hasOwn(t,e)));if(1!==o.length)throw new TypeError(`Expected object with one key, but found ${o.length} for type ${e}}`);const[i]=o;if(!Object.hasOwn(t,i))throw new TypeError(`Invalid enum variant ${i}`)}})},map:(e,t)=>l.vector(l.tuple([e,t])).transform({name:`Map<${e.name}, ${t.name}>`,input:e=>[...e.entries()],output:e=>{const t=new Map;for(const[r,n]of e)t.set(r,n);return t}}),lazy:e=>(0,u.lazyBcsType)(e)}},5383:e=>{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={};function a(e){const t=e.startsWith("0x")?e.slice(2):e,r=t.length%2==0?t:`0${t}}`,n=r.match(/.{2}/g)?.map((e=>parseInt(e,16)))??[];return Uint8Array.from(n)}function c(e){return e.reduce(((e,t)=>e+t.toString(16).padStart(2,"0")),"")}((e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{fromHEX:()=>a,toHEX:()=>c}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of o(t))i.call(e,s)||undefined===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t))},4648:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{BcsReader:()=>p.BcsReader,BcsType:()=>l.BcsType,BcsWriter:()=>y.BcsWriter,SerializedBcs:()=>l.SerializedBcs,bcs:()=>f.bcs,decodeStr:()=>g.decodeStr,encodeStr:()=>g.encodeStr,fromB58:()=>u.fromB58,fromB64:()=>d.fromB64,fromHEX:()=>h.fromHEX,isSerializedBcs:()=>l.isSerializedBcs,splitGenericParameters:()=>g.splitGenericParameters,toB58:()=>u.toB58,toB64:()=>d.toB64,toHEX:()=>h.toHEX}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(9002),d=r(2849),l=r(5600),f=r(9570),h=r(5383),p=r(4994),g=r(543),y=r(6236)},4994:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{BcsReader:()=>d}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(7539);class d{constructor(e){this.bytePosition=0,this.dataView=new DataView(e.buffer)}shift(e){return this.bytePosition+=e,this}read8(){let e=this.dataView.getUint8(this.bytePosition);return this.shift(1),e}read16(){let e=this.dataView.getUint16(this.bytePosition,!0);return this.shift(2),e}read32(){let e=this.dataView.getUint32(this.bytePosition,!0);return this.shift(4),e}read64(){let e=this.read32(),t=this.read32().toString(16)+e.toString(16).padStart(8,"0");return BigInt("0x"+t).toString(10)}read128(){let e=BigInt(this.read64()),t=BigInt(this.read64()).toString(16)+e.toString(16).padStart(16,"0");return BigInt("0x"+t).toString(10)}read256(){let e=BigInt(this.read128()),t=BigInt(this.read128()).toString(16)+e.toString(16).padStart(32,"0");return BigInt("0x"+t).toString(10)}readBytes(e){let t=this.bytePosition+this.dataView.byteOffset,r=new Uint8Array(this.dataView.buffer,t,e);return this.shift(e),r}readULEB(){let e=this.bytePosition+this.dataView.byteOffset,t=new Uint8Array(this.dataView.buffer,e),{value:r,length:n}=(0,u.ulebDecode)(t);return this.shift(n),r}readVec(e){let t=this.readULEB(),r=[];for(let n=0;n{"use strict";var t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={};function a(e){let t=[],r=0;if(0===e)return[0];for(;e>0;)t[r]=127&e,(e>>=7)&&(t[r]|=128),r+=1;return t}function c(e){let t=0,r=0,n=0;for(;;){let o=e[n];if(n+=1,t|=(127&o)<{for(var n in t)r(e,n,{get:t[n],enumerable:!0})})(s,{ulebDecode:()=>c,ulebEncode:()=>a}),e.exports=(t=s,((e,t,s,a)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let s of o(t))i.call(e,s)||undefined===s||r(e,s,{get:()=>t[s],enumerable:!(a=n(t,s))||a.enumerable});return e})(r({},"__esModule",{value:!0}),t))},543:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{decodeStr:()=>h,encodeStr:()=>f,splitGenericParameters:()=>p}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(9002),d=r(2849),l=r(5383);function f(e,t){switch(t){case"base58":return(0,u.toB58)(e);case"base64":return(0,d.toB64)(e);case"hex":return(0,l.toHEX)(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function h(e,t){switch(t){case"base58":return(0,u.fromB58)(e);case"base64":return(0,d.fromB64)(e);case"hex":return(0,l.fromHEX)(e);default:throw new Error("Unsupported encoding, supported values are: base64, hex")}}function p(e,t=["<",">"]){const[r,n]=t,o=[];let i="",s=0;for(let t=0;t{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{BcsWriter:()=>l}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(7539),d=r(543);class l{constructor({initialSize:e=1024,maxSize:t=1/0,allocateSize:r=1024}={}){this.bytePosition=0,this.size=e,this.maxSize=t,this.allocateSize=r,this.dataView=new DataView(new ArrayBuffer(e))}ensureSizeOrGrow(e){const t=this.bytePosition+e;if(t>this.size){const e=Math.min(this.maxSize,this.size+this.allocateSize);if(t>e)throw new Error(`Attempting to serialize to BCS, but buffer does not have enough size. Allocated size: ${this.size}, Max size: ${this.maxSize}, Required size: ${t}`);this.size=e;const r=new ArrayBuffer(this.size);new Uint8Array(r).set(new Uint8Array(this.dataView.buffer)),this.dataView=new DataView(r)}}shift(e){return this.bytePosition+=e,this}write8(e){return this.ensureSizeOrGrow(1),this.dataView.setUint8(this.bytePosition,Number(e)),this.shift(1)}write16(e){return this.ensureSizeOrGrow(2),this.dataView.setUint16(this.bytePosition,Number(e),!0),this.shift(2)}write32(e){return this.ensureSizeOrGrow(4),this.dataView.setUint32(this.bytePosition,Number(e),!0),this.shift(4)}write64(e){return f(BigInt(e),8).forEach((e=>this.write8(e))),this}write128(e){return f(BigInt(e),16).forEach((e=>this.write8(e))),this}write256(e){return f(BigInt(e),32).forEach((e=>this.write8(e))),this}writeULEB(e){return(0,u.ulebEncode)(e).forEach((e=>this.write8(e))),this}writeVec(e,t){return this.writeULEB(e.length),Array.from(e).forEach(((r,n)=>t(this,r,n,e.length))),this}*[Symbol.iterator](){for(let e=0;e0;)r[n]=Number(e%BigInt(256)),e/=BigInt(256),n+=1;return r}},9296:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{Address:()=>f,AppId:()=>R,Argument:()=>w,CallArg:()=>b,Command:()=>A,CompressedSignature:()=>D,GasData:()=>B,Intent:()=>C,IntentMessage:()=>U,IntentScope:()=>x,IntentVersion:()=>M,MultiSig:()=>z,MultiSigPkMap:()=>k,MultiSigPublicKey:()=>L,ObjectArg:()=>y,ObjectDigest:()=>h,ProgrammableMoveCall:()=>O,ProgrammableTransaction:()=>_,PublicKey:()=>N,SenderSignedData:()=>W,SenderSignedTransaction:()=>q,SharedObjectRef:()=>g,StructTag:()=>T,SuiObjectRef:()=>p,TransactionData:()=>j,TransactionDataV1:()=>I,TransactionExpiration:()=>P,TransactionKind:()=>S,TypeTag:()=>v,base64String:()=>V}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(4648),d=r(2501),l=r(8548);const f=u.bcs.bytes(d.SUI_ADDRESS_LENGTH).transform({validate:e=>{const t="string"==typeof e?e:(0,u.toHEX)(e);if(!t||!(0,d.isValidSuiAddress)((0,d.normalizeSuiAddress)(t)))throw new Error(`Invalid Sui address ${t}`)},input:e=>"string"==typeof e?(0,u.fromHEX)((0,d.normalizeSuiAddress)(e)):e,output:e=>(0,d.normalizeSuiAddress)((0,u.toHEX)(e))}),h=u.bcs.vector(u.bcs.u8()).transform({name:"ObjectDigest",input:e=>(0,u.fromB58)(e),output:e=>(0,u.toB58)(new Uint8Array(e)),validate:e=>{if(32!==(0,u.fromB58)(e).length)throw new Error("ObjectDigest must be 32 bytes")}}),p=u.bcs.struct("SuiObjectRef",{objectId:f,version:u.bcs.u64(),digest:h}),g=u.bcs.struct("SharedObjectRef",{objectId:f,initialSharedVersion:u.bcs.u64(),mutable:u.bcs.bool()}),y=u.bcs.enum("ObjectArg",{ImmOrOwnedObject:p,SharedObject:g,Receiving:p}),b=u.bcs.enum("CallArg",{Pure:u.bcs.struct("Pure",{bytes:u.bcs.vector(u.bcs.u8()).transform({input:e=>"string"==typeof e?(0,u.fromB64)(e):e,output:e=>(0,u.toB64)(new Uint8Array(e))})}),Object:y}),m=u.bcs.enum("TypeTag",{bool:null,u8:null,u64:null,u128:null,address:null,signer:null,vector:u.bcs.lazy((()=>m)),struct:u.bcs.lazy((()=>T)),u16:null,u32:null,u256:null}),v=m.transform({input:e=>"string"==typeof e?l.TypeTagSerializer.parseFromStr(e,!0):e,output:e=>l.TypeTagSerializer.tagToString(e)}),w=u.bcs.enum("Argument",{GasCoin:null,Input:u.bcs.u16(),Result:u.bcs.u16(),NestedResult:u.bcs.tuple([u.bcs.u16(),u.bcs.u16()])}),O=u.bcs.struct("ProgrammableMoveCall",{package:f,module:u.bcs.string(),function:u.bcs.string(),typeArguments:u.bcs.vector(v),arguments:u.bcs.vector(w)}),A=u.bcs.enum("Command",{MoveCall:O,TransferObjects:u.bcs.struct("TransferObjects",{objects:u.bcs.vector(w),address:w}),SplitCoins:u.bcs.struct("SplitCoins",{coin:w,amounts:u.bcs.vector(w)}),MergeCoins:u.bcs.struct("MergeCoins",{destination:w,sources:u.bcs.vector(w)}),Publish:u.bcs.struct("Publish",{modules:u.bcs.vector(u.bcs.vector(u.bcs.u8()).transform({input:e=>"string"==typeof e?(0,u.fromB64)(e):e,output:e=>(0,u.toB64)(new Uint8Array(e))})),dependencies:u.bcs.vector(f)}),MakeMoveVec:u.bcs.struct("MakeMoveVec",{type:(E=v,u.bcs.enum("Option",{None:null,Some:E})).transform({input:e=>null===e?{None:!0}:{Some:e},output:e=>e.Some??null}),elements:u.bcs.vector(w)}),Upgrade:u.bcs.struct("Upgrade",{modules:u.bcs.vector(u.bcs.vector(u.bcs.u8()).transform({input:e=>"string"==typeof e?(0,u.fromB64)(e):e,output:e=>(0,u.toB64)(new Uint8Array(e))})),dependencies:u.bcs.vector(f),package:f,ticket:w})});var E;const _=u.bcs.struct("ProgrammableTransaction",{inputs:u.bcs.vector(b),commands:u.bcs.vector(A)}),S=u.bcs.enum("TransactionKind",{ProgrammableTransaction:_,ChangeEpoch:null,Genesis:null,ConsensusCommitPrologue:null}),P=u.bcs.enum("TransactionExpiration",{None:null,Epoch:u.bcs.u64({name:"unsafe_u64"}).transform({input:e=>e,output:e=>Number(e)})});const T=u.bcs.struct("StructTag",{address:f,module:u.bcs.string(),name:u.bcs.string(),typeParams:u.bcs.vector(m)}),B=u.bcs.struct("GasData",{payment:u.bcs.vector(p),owner:f,price:u.bcs.u64(),budget:u.bcs.u64()}),I=u.bcs.struct("TransactionDataV1",{kind:S,sender:f,gasData:B,expiration:P}),j=u.bcs.enum("TransactionData",{V1:I}),x=u.bcs.enum("IntentScope",{TransactionData:null,TransactionEffects:null,CheckpointSummary:null,PersonalMessage:null}),M=u.bcs.enum("IntentVersion",{V0:null}),R=u.bcs.enum("AppId",{Sui:null}),C=u.bcs.struct("Intent",{scope:x,version:M,appId:R});function U(e){return u.bcs.struct(`IntentMessage<${e.name}>`,{intent:C,value:e})}const D=u.bcs.enum("CompressedSignature",{ED25519:u.bcs.fixedArray(64,u.bcs.u8()),Secp256k1:u.bcs.fixedArray(64,u.bcs.u8()),Secp256r1:u.bcs.fixedArray(64,u.bcs.u8()),ZkLogin:u.bcs.vector(u.bcs.u8())}),N=u.bcs.enum("PublicKey",{ED25519:u.bcs.fixedArray(32,u.bcs.u8()),Secp256k1:u.bcs.fixedArray(33,u.bcs.u8()),Secp256r1:u.bcs.fixedArray(33,u.bcs.u8()),ZkLogin:u.bcs.vector(u.bcs.u8())}),k=u.bcs.struct("MultiSigPkMap",{pubKey:N,weight:u.bcs.u8()}),L=u.bcs.struct("MultiSigPublicKey",{pk_map:u.bcs.vector(k),threshold:u.bcs.u16()}),z=u.bcs.struct("MultiSig",{sigs:u.bcs.vector(D),bitmap:u.bcs.u16(),multisig_pk:L}),V=u.bcs.vector(u.bcs.u8()).transform({input:e=>"string"==typeof e?(0,u.fromB64)(e):e,output:e=>(0,u.toB64)(new Uint8Array(e))}),q=u.bcs.struct("SenderSignedTransaction",{intentMessage:U(j),txSignatures:u.bcs.vector(V)}),W=u.bcs.vector(q,{name:"SenderSignedData"})},4320:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{TransactionEffects:()=>B}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(4648),d=r(9296);const l=u.bcs.enum("PackageUpgradeError",{UnableToFetchPackage:u.bcs.struct("UnableToFetchPackage",{packageId:d.Address}),NotAPackage:u.bcs.struct("NotAPackage",{objectId:d.Address}),IncompatibleUpgrade:null,DigestDoesNotMatch:u.bcs.struct("DigestDoesNotMatch",{digest:u.bcs.vector(u.bcs.u8())}),UnknownUpgradePolicy:u.bcs.struct("UnknownUpgradePolicy",{policy:u.bcs.u8()}),PackageIDDoesNotMatch:u.bcs.struct("PackageIDDoesNotMatch",{packageId:d.Address,ticketId:d.Address})}),f=u.bcs.struct("ModuleId",{address:d.Address,name:u.bcs.string()}),h=u.bcs.struct("MoveLocation",{module:f,function:u.bcs.u16(),instruction:u.bcs.u16(),functionName:u.bcs.option(u.bcs.string())}),p=u.bcs.enum("CommandArgumentError",{TypeMismatch:null,InvalidBCSBytes:null,InvalidUsageOfPureArg:null,InvalidArgumentToPrivateEntryFunction:null,IndexOutOfBounds:u.bcs.struct("IndexOutOfBounds",{idx:u.bcs.u16()}),SecondaryIndexOutOfBounds:u.bcs.struct("SecondaryIndexOutOfBounds",{resultIdx:u.bcs.u16(),secondaryIdx:u.bcs.u16()}),InvalidResultArity:u.bcs.struct("InvalidResultArity",{resultIdx:u.bcs.u16()}),InvalidGasCoinUsage:null,InvalidValueUsage:null,InvalidObjectByValue:null,InvalidObjectByMutRef:null,SharedObjectOperationNotAllowed:null}),g=u.bcs.enum("TypeArgumentError",{TypeNotFound:null,ConstraintNotSatisfied:null}),y=u.bcs.enum("ExecutionFailureStatus",{InsufficientGas:null,InvalidGasObject:null,InvariantViolation:null,FeatureNotYetSupported:null,MoveObjectTooBig:u.bcs.struct("MoveObjectTooBig",{objectSize:u.bcs.u64(),maxObjectSize:u.bcs.u64()}),MovePackageTooBig:u.bcs.struct("MovePackageTooBig",{objectSize:u.bcs.u64(),maxObjectSize:u.bcs.u64()}),CircularObjectOwnership:u.bcs.struct("CircularObjectOwnership",{object:d.Address}),InsufficientCoinBalance:null,CoinBalanceOverflow:null,PublishErrorNonZeroAddress:null,SuiMoveVerificationError:null,MovePrimitiveRuntimeError:u.bcs.option(h),MoveAbort:u.bcs.tuple([h,u.bcs.u64()]),VMVerificationOrDeserializationError:null,VMInvariantViolation:null,FunctionNotFound:null,ArityMismatch:null,TypeArityMismatch:null,NonEntryFunctionInvoked:null,CommandArgumentError:u.bcs.struct("CommandArgumentError",{argIdx:u.bcs.u16(),kind:p}),TypeArgumentError:u.bcs.struct("TypeArgumentError",{argumentIdx:u.bcs.u16(),kind:g}),UnusedValueWithoutDrop:u.bcs.struct("UnusedValueWithoutDrop",{resultIdx:u.bcs.u16(),secondaryIdx:u.bcs.u16()}),InvalidPublicFunctionReturnType:u.bcs.struct("InvalidPublicFunctionReturnType",{idx:u.bcs.u16()}),InvalidTransferObject:null,EffectsTooLarge:u.bcs.struct("EffectsTooLarge",{currentSize:u.bcs.u64(),maxSize:u.bcs.u64()}),PublishUpgradeMissingDependency:null,PublishUpgradeDependencyDowngrade:null,PackageUpgradeError:u.bcs.struct("PackageUpgradeError",{upgradeError:l}),WrittenObjectsTooLarge:u.bcs.struct("WrittenObjectsTooLarge",{currentSize:u.bcs.u64(),maxSize:u.bcs.u64()}),CertificateDenied:null,SuiMoveVerificationTimedout:null,SharedObjectOperationNotAllowed:null,InputObjectDeleted:null}),b=u.bcs.enum("ExecutionStatus",{Success:null,Failed:u.bcs.struct("ExecutionFailed",{error:y,command:u.bcs.option(u.bcs.u64())})}),m=u.bcs.struct("GasCostSummary",{computationCost:u.bcs.u64(),storageCost:u.bcs.u64(),storageRebate:u.bcs.u64(),nonRefundableStorageFee:u.bcs.u64()}),v=u.bcs.enum("Owner",{AddressOwner:d.Address,ObjectOwner:d.Address,Shared:u.bcs.struct("Shared",{initialSharedVersion:u.bcs.u64()}),Immutable:null}),w=u.bcs.struct("TransactionEffectsV1",{status:b,executedEpoch:u.bcs.u64(),gasUsed:m,modifiedAtVersions:u.bcs.vector(u.bcs.tuple([d.Address,u.bcs.u64()])),sharedObjects:u.bcs.vector(d.SuiObjectRef),transactionDigest:d.ObjectDigest,created:u.bcs.vector(u.bcs.tuple([d.SuiObjectRef,v])),mutated:u.bcs.vector(u.bcs.tuple([d.SuiObjectRef,v])),unwrapped:u.bcs.vector(u.bcs.tuple([d.SuiObjectRef,v])),deleted:u.bcs.vector(d.SuiObjectRef),unwrappedThenDeleted:u.bcs.vector(d.SuiObjectRef),wrapped:u.bcs.vector(d.SuiObjectRef),gasObject:u.bcs.tuple([d.SuiObjectRef,v]),eventsDigest:u.bcs.option(d.ObjectDigest),dependencies:u.bcs.vector(d.ObjectDigest)}),O=u.bcs.tuple([u.bcs.u64(),d.ObjectDigest]),A=u.bcs.enum("ObjectIn",{NotExist:null,Exist:u.bcs.tuple([O,v])}),E=u.bcs.enum("ObjectOut",{NotExist:null,ObjectWrite:u.bcs.tuple([d.ObjectDigest,v]),PackageWrite:O}),_=u.bcs.enum("IDOperation",{None:null,Created:null,Deleted:null}),S=u.bcs.struct("EffectsObjectChange",{inputState:A,outputState:E,idOperation:_}),P=u.bcs.enum("UnchangedSharedKind",{ReadOnlyRoot:O,MutateDeleted:u.bcs.u64(),ReadDeleted:u.bcs.u64(),Cancelled:u.bcs.u64(),PerEpochConfig:null}),T=u.bcs.struct("TransactionEffectsV2",{status:b,executedEpoch:u.bcs.u64(),gasUsed:m,transactionDigest:d.ObjectDigest,gasObjectIndex:u.bcs.option(u.bcs.u32()),eventsDigest:u.bcs.option(d.ObjectDigest),dependencies:u.bcs.vector(d.ObjectDigest),lamportVersion:u.bcs.u64(),changedObjects:u.bcs.vector(u.bcs.tuple([d.Address,S])),unchangedSharedObjects:u.bcs.vector(u.bcs.tuple([d.Address,P])),auxDataDigest:u.bcs.option(d.ObjectDigest)}),B=u.bcs.enum("TransactionEffects",{V1:w,V2:T})},9108:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{BcsType:()=>h.BcsType,TypeTagSerializer:()=>f.TypeTagSerializer,bcs:()=>p}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(4648),d=r(9296),l=r(4320),f=r(8548),h=r(4648);const p={...u.bcs,U8:u.bcs.u8(),U16:u.bcs.u16(),U32:u.bcs.u32(),U64:u.bcs.u64(),U128:u.bcs.u128(),U256:u.bcs.u256(),ULEB128:u.bcs.uleb128(),Bool:u.bcs.bool(),String:u.bcs.string(),Address:d.Address,AppId:d.AppId,Argument:d.Argument,CallArg:d.CallArg,CompressedSignature:d.CompressedSignature,GasData:d.GasData,Intent:d.Intent,IntentMessage:d.IntentMessage,IntentScope:d.IntentScope,IntentVersion:d.IntentVersion,MultiSig:d.MultiSig,MultiSigPkMap:d.MultiSigPkMap,MultiSigPublicKey:d.MultiSigPublicKey,ObjectArg:d.ObjectArg,ObjectDigest:d.ObjectDigest,ProgrammableMoveCall:d.ProgrammableMoveCall,ProgrammableTransaction:d.ProgrammableTransaction,PublicKey:d.PublicKey,SenderSignedData:d.SenderSignedData,SenderSignedTransaction:d.SenderSignedTransaction,SharedObjectRef:d.SharedObjectRef,StructTag:d.StructTag,SuiObjectRef:d.SuiObjectRef,Command:d.Command,TransactionData:d.TransactionData,TransactionDataV1:d.TransactionDataV1,TransactionExpiration:d.TransactionExpiration,TransactionKind:d.TransactionKind,TypeTag:d.TypeTag,TransactionEffects:l.TransactionEffects}},8548:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{TypeTagSerializer:()=>h}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(4648),d=r(2501);const l=/^vector<(.+)>$/,f=/^([^:]+)::([^:]+)::([^<]+)(<(.+)>)?/;class h{static parseFromStr(e,t=!1){if("address"===e)return{address:null};if("bool"===e)return{bool:null};if("u8"===e)return{u8:null};if("u16"===e)return{u16:null};if("u32"===e)return{u32:null};if("u64"===e)return{u64:null};if("u128"===e)return{u128:null};if("u256"===e)return{u256:null};if("signer"===e)return{signer:null};const r=e.match(l);if(r)return{vector:h.parseFromStr(r[1],t)};const n=e.match(f);if(n)return{struct:{address:t?(0,d.normalizeSuiAddress)(n[1]):n[1],module:n[2],name:n[3],typeParams:void 0===n[5]?[]:h.parseStructTypeArgs(n[5],t)}};throw new Error(`Encountered unexpected token when parsing type args for ${e}`)}static parseStructTypeArgs(e,t=!1){return(0,u.splitGenericParameters)(e).map((e=>h.parseFromStr(e,t)))}static tagToString(e){if("bool"in e)return"bool";if("u8"in e)return"u8";if("u16"in e)return"u16";if("u32"in e)return"u32";if("u64"in e)return"u64";if("u128"in e)return"u128";if("u256"in e)return"u256";if("address"in e)return"address";if("signer"in e)return"signer";if("vector"in e)return`vector<${h.tagToString(e.vector)}>`;if("struct"in e){const t=e.struct,r=t.typeParams.map(h.tagToString).join(", ");return`${t.address}::${t.module}::${t.name}${r?`<${r}>`:""}`}throw new Error("Invalid TypeTag")}}},2501:(e,t,r)=>{"use strict";var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{SUI_ADDRESS_LENGTH:()=>f,isValidSuiAddress:()=>h,isValidSuiObjectId:()=>p,isValidTransactionDigest:()=>l,normalizeStructTag:()=>y,normalizeSuiAddress:()=>b,normalizeSuiObjectId:()=>m,parseStructTag:()=>g}),e.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let r of s(t))a.call(e,r)||undefined===r||o(e,r,{get:()=>t[r],enumerable:!(n=i(t,r))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var u=r(4648);const d=32;function l(e){try{return(0,u.fromB58)(e).length===d}catch(e){return!1}}const f=32;function h(e){return function(e){return/^(0x|0X)?[a-fA-F0-9]+$/.test(e)&&e.length%2==0}(e)&&function(e){return/^(0x|0X)/.test(e)?(e.length-2)/2:e.length/2}(e)===f}function p(e){return h(e)}function g(e){const[t,r]=e.split("::"),n=e.slice(t.length+r.length+4),o=n.includes("<")?n.slice(0,n.indexOf("<")):n,i=n.includes("<")?(0,u.splitGenericParameters)(n.slice(n.indexOf("<")+1,n.lastIndexOf(">"))).map((e=>function(e){return e.includes("::")?g(e):e}(e.trim()))):[];return{address:b(t),module:r,name:o,typeParams:i}}function y(e){const{address:t,module:r,name:n,typeParams:o}="string"==typeof e?g(e):e;return`${t}::${r}::${n}${o?.length>0?`<${o.map((e=>"string"==typeof e?e:y(e))).join(",")}>`:""}`}function b(e,t=!1){let r=e.toLowerCase();return!t&&r.startsWith("0x")&&(r=r.slice(2)),`0x${r.padStart(2*f,"0")}`}function m(e,t=!1){return b(e,t)}},3732:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(1345),t)},1345:function(e,t){"use strict";var r,n=this&&this.__classPrivateFieldSet||function(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},o=this&&this.__classPrivateFieldGet||function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};let i;Object.defineProperty(t,"__esModule",{value:!0}),t.DEPRECATED_getWallets=t.getWallets=void 0;const s=new Set,a={};function c(){if(i)return i;if(i=Object.freeze({register:u,get:d,on:l}),"undefined"==typeof window)return i;const e=Object.freeze({register:u});try{window.addEventListener("wallet-standard:register-wallet",(({detail:t})=>t(e)))}catch(e){console.error("wallet-standard:register-wallet event listener could not be added\n",e)}try{window.dispatchEvent(new h(e))}catch(e){console.error("wallet-standard:app-ready event could not be dispatched\n",e)}return i}function u(...e){var t;return(e=e.filter((e=>!s.has(e)))).length?(e.forEach((e=>s.add(e))),null===(t=a.register)||void 0===t||t.forEach((t=>f((()=>t(...e))))),function(){var t;e.forEach((e=>s.delete(e))),null===(t=a.unregister)||void 0===t||t.forEach((t=>f((()=>t(...e)))))}):()=>{}}function d(){return[...s]}function l(e,t){var r;return(null===(r=a[e])||void 0===r?void 0:r.push(t))||(a[e]=[t]),function(){var r;a[e]=null===(r=a[e])||void 0===r?void 0:r.filter((e=>t!==e))}}function f(e){try{e()}catch(e){console.error(e)}}t.getWallets=c;class h extends Event{constructor(e){super("wallet-standard:app-ready",{bubbles:!1,cancelable:!1,composed:!1}),r.set(this,void 0),n(this,r,e,"f")}get detail(){return o(this,r,"f")}get type(){return"wallet-standard:app-ready"}preventDefault(){throw new Error("preventDefault cannot be called")}stopImmediatePropagation(){throw new Error("stopImmediatePropagation cannot be called")}stopPropagation(){throw new Error("stopPropagation cannot be called")}}r=new WeakMap,t.DEPRECATED_getWallets=function(){if(i)return i;if(i=c(),"undefined"==typeof window)return i;const e=window.navigator.wallets||[];if(!Array.isArray(e))return console.error("window.navigator.wallets is not an array"),i;const{register:t}=i,r=(...e)=>e.forEach((e=>f((()=>e({register:t})))));try{Object.defineProperty(window.navigator,"wallets",{value:Object.freeze({push:r})})}catch(e){return console.error("window.navigator.wallets could not be set"),i}return r(...e),i}},6401:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},2904:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(6401),t),o(r(1782),t),o(r(8225),t)},1782:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},8225:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0})},3902:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(3732),t),o(r(2904),t),o(r(988),t),o(r(1283),t)},3204:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Connect=t.StandardConnect=void 0,t.StandardConnect="standard:connect",t.Connect=t.StandardConnect},7381:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Disconnect=t.StandardDisconnect=void 0,t.StandardDisconnect="standard:disconnect",t.Disconnect=t.StandardDisconnect},5177:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Events=t.StandardEvents=void 0,t.StandardEvents="standard:events",t.Events=t.StandardEvents},988:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(3204),t),o(r(7381),t),o(r(5177),t)},1283:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var o=Object.getOwnPropertyDescriptor(t,r);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,o)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__exportStar||function(e,t){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(t,r)||n(t,e,r)};Object.defineProperty(t,"__esModule",{value:!0}),o(r(9510),t),o(r(331),t)},9510:function(e,t){"use strict";var r,n=this&&this.__classPrivateFieldSet||function(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},o=this&&this.__classPrivateFieldGet||function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};function i(e){const t=({register:t})=>t(e);try{window.dispatchEvent(new s(t))}catch(e){console.error("wallet-standard:register-wallet event could not be dispatched\n",e)}try{window.addEventListener("wallet-standard:app-ready",(({detail:e})=>t(e)))}catch(e){console.error("wallet-standard:app-ready event listener could not be added\n",e)}}Object.defineProperty(t,"__esModule",{value:!0}),t.DEPRECATED_registerWallet=t.registerWallet=void 0,t.registerWallet=i;class s extends Event{constructor(e){super("wallet-standard:register-wallet",{bubbles:!1,cancelable:!1,composed:!1}),r.set(this,void 0),n(this,r,e,"f")}get detail(){return o(this,r,"f")}get type(){return"wallet-standard:register-wallet"}preventDefault(){throw new Error("preventDefault cannot be called")}stopImmediatePropagation(){throw new Error("stopImmediatePropagation cannot be called")}stopPropagation(){throw new Error("stopPropagation cannot be called")}}r=new WeakMap,t.DEPRECATED_registerWallet=function(e){var t;i(e);try{((t=window.navigator).wallets||(t.wallets=[])).push((({register:t})=>t(e)))}catch(e){console.error("window.navigator.wallets could not be pushed\n",e)}}},331:function(e,t){"use strict";var r,n,o,i,s,a,c=this&&this.__classPrivateFieldSet||function(e,t,r,n,o){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?o.call(e,r):o?o.value=r:t.set(e,r),r},u=this&&this.__classPrivateFieldGet||function(e,t,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};Object.defineProperty(t,"__esModule",{value:!0}),t.guard=t.pick=t.concatBytes=t.bytesEqual=t.arraysEqual=t.ReadonlyWalletAccount=void 0;class d{constructor(e){r.set(this,void 0),n.set(this,void 0),o.set(this,void 0),i.set(this,void 0),s.set(this,void 0),a.set(this,void 0),new.target===d&&Object.freeze(this),c(this,r,e.address,"f"),c(this,n,e.publicKey.slice(),"f"),c(this,o,e.chains.slice(),"f"),c(this,i,e.features.slice(),"f"),c(this,s,e.label,"f"),c(this,a,e.icon,"f")}get address(){return u(this,r,"f")}get publicKey(){return u(this,n,"f").slice()}get chains(){return u(this,o,"f").slice()}get features(){return u(this,i,"f").slice()}get label(){return u(this,s,"f")}get icon(){return u(this,a,"f")}}function l(e,t){if(e===t)return!0;const r=e.length;if(r!==t.length)return!1;for(let n=0;ne+t.length),e.length),n=new Uint8Array(r);n.set(e,0);for(const e of t)n.set(e,n.length);return n},t.pick=function(e,...t){const r={};for(const n of t)r[n]=e[n];return r},t.guard=function(e){try{e()}catch(e){console.error(e)}}},9176:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(e.length>=255)throw new TypeError("Alphabet too long");const t=new Uint8Array(256);for(let e=0;e>>0,u=new Uint8Array(c);for(;e[i];){let n=t[e.charCodeAt(i)];if(255===n)return;let o=0;for(let e=c-1;(0!==n||o>>0,u[e]=n%256>>>0,n=n/256>>>0;if(0!==n)throw new Error("Non-zero carry");a=o,i++}let d=c-a;for(;d!==c&&0===u[d];)d++;const l=new Uint8Array(s+(c-d));let f=s;for(;d!==c;)l[f++]=u[d++];return l}return{encode:function(t){if(t instanceof Uint8Array||(ArrayBuffer.isView(t)?t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Array.isArray(t)&&(t=Uint8Array.from(t))),!(t instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(0===t.length)return"";let o=0,s=0,a=0;const c=t.length;for(;a!==c&&0===t[a];)a++,o++;const u=(c-a)*i+1>>>0,d=new Uint8Array(u);for(;a!==c;){let e=t[a],n=0;for(let t=u-1;(0!==e||n>>0,d[t]=e%r>>>0,e=e/r>>>0;if(0!==e)throw new Error("Non-zero carry");s=n,a++}let l=u-s;for(;l!==u&&0===d[l];)l++;let f=n.repeat(o);for(;l{"use strict";const e=r(8253),t=r(9360),n=r(9392),o=r(1641),i=r(3902),s=r(9477);(()=>{window.cosmostation={version:"0.4.11",handlerInfos:[],cosmos:n.cosmos,ethereum:t.ethereum,bitcoin:s.bitcoin,tendermint:n.tendermint,providers:{keplr:n.keplr,metamask:t.ethereum},mode:"mobile-web"},window.keplr=n.keplr,window.getOfflineSigner=window.keplr.getOfflineSigner,window.getOfflineSignerOnlyAmino=window.keplr.getOfflineSignerOnlyAmino,window.getOfflineSignerAuto=window.keplr.getOfflineSignerAuto,window.ethereum=window.cosmostation.providers.metamask;const r=new o.CosmostationWallet;(0,i.registerWallet)(r),(0,e.registerCosmosWallet)(n.cosmosWallet),(0,t.announceEthereumProvider)()})()})()})(); \ No newline at end of file diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/fetcher/BtcFetcher.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/fetcher/BtcFetcher.kt index 5e17c21af..c773553eb 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/chain/fetcher/BtcFetcher.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/fetcher/BtcFetcher.kt @@ -28,7 +28,7 @@ class BtcFetcher(private val chain: BaseChain) : CosmosFetcher(chain) { fun mempoolUrl(): String { if (chain.isTestnet) { - return "https://mempool.space/testnet4/" + return "https://mempool.space/signet/" } return "https://mempool.space/" } diff --git a/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin84Testnet.kt b/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin84Testnet.kt index dae92ff72..cd4a58a73 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin84Testnet.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/chain/testnetClass/ChainBitcoin84Testnet.kt @@ -17,9 +17,9 @@ open class ChainBitcoin84Testnet : ChainBitCoin84(), Parcelable { override var scriptHash: Byte = (-60).toByte() override var bech32PrefixPattern: String = "tb" - override var name: String = "BitCoin Testnet" + override var name: String = "Bitcoin Signet" override var tag: String = "bitcoin84_T" - override var logo: Int = R.drawable.chain_bitcoin_testnet + override var logo: Int = R.drawable.chain_bitcoin_signet override var isTestnet: Boolean = true override var apiName: String = "bitcoin-testnet" diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/CoinFragment.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/CoinFragment.kt index 621ef9891..11ac99d28 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/CoinFragment.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/cosmos/CoinFragment.kt @@ -600,6 +600,7 @@ class CoinFragment : Fragment(), CoinFragmentInteraction { ) ) } + bitStaking.visibility = View.GONE } } diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/major/MajorCryptoFragment.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/major/MajorCryptoFragment.kt index 2411043f9..fc3d4bf68 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/major/MajorCryptoFragment.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/chain/major/MajorCryptoFragment.kt @@ -1,9 +1,11 @@ package wannabit.io.cosmostaion.ui.main.chain.major +import android.content.Intent import android.os.Build import android.os.Bundle import android.os.Handler import android.os.Looper +import android.os.Parcelable import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -19,6 +21,7 @@ import org.apache.commons.lang3.StringUtils import wannabit.io.cosmostaion.R import wannabit.io.cosmostaion.chain.BaseChain import wannabit.io.cosmostaion.chain.FetchState +import wannabit.io.cosmostaion.chain.PubKeyType import wannabit.io.cosmostaion.chain.fetcher.suiCoinSymbol import wannabit.io.cosmostaion.chain.majorClass.ChainBitCoin84 import wannabit.io.cosmostaion.chain.majorClass.ChainSui @@ -28,6 +31,7 @@ import wannabit.io.cosmostaion.common.makeToast import wannabit.io.cosmostaion.common.visibleOrGone import wannabit.io.cosmostaion.data.viewmodel.ApplicationViewModel import wannabit.io.cosmostaion.databinding.FragmentCoinBinding +import wannabit.io.cosmostaion.ui.main.dapp.DappActivity import wannabit.io.cosmostaion.ui.tx.genTx.CommonTransferFragment import wannabit.io.cosmostaion.ui.tx.genTx.SendAssetType import java.math.BigDecimal @@ -90,6 +94,15 @@ class MajorCryptoFragment : Fragment() { binding.apply { dropMoney.visibility = View.GONE dydxTrade.visibility = View.GONE + bitStaking.visibleOrGone(selectedChain is ChainBitCoin84 && selectedChain.accountKeyType.pubkeyType == PubKeyType.BTC_NATIVE_SEGWIT) + + bitStaking.setOnClickListener { + Intent(requireActivity(), DappActivity::class.java).apply { + putExtra("dapp", "") + putExtra("selectedChain", selectedChain as Parcelable) + startActivity(this) + } + } } } diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/dapp/DappActivity.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/dapp/DappActivity.kt index 0c5504ca3..6bba68698 100644 --- a/app/src/main/java/wannabit/io/cosmostaion/ui/main/dapp/DappActivity.kt +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/dapp/DappActivity.kt @@ -22,6 +22,7 @@ import android.webkit.WebView import android.webkit.WebViewClient import androidx.appcompat.app.AlertDialog import androidx.core.content.ContextCompat +import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.lifecycleScope import com.cosmos.tx.v1beta1.ServiceGrpc import com.cosmos.tx.v1beta1.ServiceProto.BroadcastTxRequest @@ -53,9 +54,12 @@ import org.web3j.protocol.http.HttpService import wannabit.io.cosmostaion.BuildConfig import wannabit.io.cosmostaion.R import wannabit.io.cosmostaion.chain.BaseChain +import wannabit.io.cosmostaion.chain.PubKeyType import wannabit.io.cosmostaion.chain.allChains import wannabit.io.cosmostaion.chain.cosmosClass.ChainInjective +import wannabit.io.cosmostaion.chain.majorClass.ChainBitCoin84 import wannabit.io.cosmostaion.chain.majorClass.ChainSui +import wannabit.io.cosmostaion.chain.testnetClass.ChainBitcoin84Testnet import wannabit.io.cosmostaion.common.BaseActivity import wannabit.io.cosmostaion.common.BaseConstant.COSMOS_KEY_TYPE_PUBLIC import wannabit.io.cosmostaion.common.BaseConstant.ETHERMINT_KEY_TYPE_PUBLIC @@ -74,8 +78,15 @@ import wannabit.io.cosmostaion.data.model.req.JsonRpcRequest import wannabit.io.cosmostaion.data.model.req.PubKey import wannabit.io.cosmostaion.data.model.req.Signature import wannabit.io.cosmostaion.data.model.res.NetworkResult +import wannabit.io.cosmostaion.data.repository.tx.TxRepositoryImpl +import wannabit.io.cosmostaion.data.repository.wallet.WalletRepositoryImpl +import wannabit.io.cosmostaion.data.viewmodel.intro.WalletViewModel +import wannabit.io.cosmostaion.data.viewmodel.intro.WalletViewModelProviderFactory +import wannabit.io.cosmostaion.data.viewmodel.tx.TxViewModel +import wannabit.io.cosmostaion.data.viewmodel.tx.TxViewModelProviderFactory import wannabit.io.cosmostaion.database.model.BaseAccountType import wannabit.io.cosmostaion.databinding.ActivityDappBinding +import wannabit.io.cosmostaion.sign.BitCoinJS import wannabit.io.cosmostaion.sign.Signer import java.io.BufferedReader import java.net.URLDecoder @@ -92,9 +103,11 @@ class DappActivity : BaseActivity() { private var selectChain: BaseChain? = null private var selectEvmChain: BaseChain? = null private var selectMajorChain: BaseChain? = null + private var selectBitcoin: BaseChain? = null private var rpcUrl: String? = null private var web3j: Web3j? = null private var wcUrl: String? = "" + private var bitNetwork: String = "mainnet" private var walletConnectURI: String? = null private var currentV2PairingUri: String? = null @@ -105,11 +118,23 @@ class DappActivity : BaseActivity() { private var currentEvmChainId: String? = null + private var currentMessageJson: JSONObject = JSONObject() + private var currentMessageId: String = "" + private var bitToAddress: String = "" + private var bitSatAmount: String = "" + + private lateinit var walletViewModel: WalletViewModel + private lateinit var txViewModel: TxViewModel + + private var bitcoinJS: BitCoinJS? = null + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityDappBinding.inflate(layoutInflater) setContentView(binding.root) + initViewModel() + setUpObserve() allChains = initAllKeyData() } @@ -130,6 +155,25 @@ class DappActivity : BaseActivity() { (intent.getParcelableExtra("selectedEvmChain")) as? BaseChain } selectEvmChain = allChains?.firstOrNull { it.name == ecoChain?.name } + + val ecoMajorChain = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + intent.getParcelableExtra("selectedChain", BaseChain::class.java) + } else { + (intent.getParcelableExtra("selectedChain")) as? BaseChain + } + selectBitcoin = allChains?.firstOrNull { it.name == ecoMajorChain?.name } + } + + private fun initViewModel() { + val walletRepository = WalletRepositoryImpl() + val walletViewModelProviderFactory = WalletViewModelProviderFactory(walletRepository) + walletViewModel = ViewModelProvider( + this, walletViewModelProviderFactory + )[WalletViewModel::class.java] + + val txRepository = TxRepositoryImpl() + val txViewModelProviderFactory = TxViewModelProviderFactory(txRepository) + txViewModel = ViewModelProvider(this, txViewModelProviderFactory)[TxViewModel::class.java] } private fun initAllKeyData(): MutableList { @@ -437,8 +481,7 @@ class DappActivity : BaseActivity() { "cosmos_signDirect" -> { val signBundle = signBundle(id, params, "sign_direct") - showSignDialog( - signBundle, + showSignDialog(signBundle, object : PopUpCosmosSignFragment.WcSignRawDataListener { override fun sign(id: Long, data: String) { approveSignDirectV2Request(id, data, sessionRequest) @@ -452,8 +495,7 @@ class DappActivity : BaseActivity() { "cosmos_signAmino" -> { val signBundle = signBundle(id, params, "sign_amino") - showSignDialog( - signBundle, + showSignDialog(signBundle, object : PopUpCosmosSignFragment.WcSignRawDataListener { override fun sign(id: Long, data: String) { approveSignAminoV2Request(id, data, sessionRequest) @@ -595,6 +637,7 @@ class DappActivity : BaseActivity() { binding.apply { dappWebView.removeJavascriptInterface("station") } + bitcoinJS?.unbindService() } private fun signBundle(id: Long, data: String, method: String? = ""): Bundle { @@ -650,6 +693,23 @@ class DappActivity : BaseActivity() { } } + private fun showBitSignDialog( + bundle: Bundle, bitCoinJS: BitCoinJS?, signListener: PopUpBitSignFragment.WcSignRawDataListener + ) { + bundle.getString("data")?.let { data -> + PopUpBitSignFragment( + selectBitcoin, + bitCoinJS, + bundle.getLong("id"), + data, + bundle.getString("method"), + signListener + ).show( + supportFragmentManager, PopUpSuiSignFragment::class.java.name + ) + } + } + private val dappWebViewClient = object : WebViewClient() { override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { super.onPageStarted(view, url, favicon) @@ -817,6 +877,7 @@ class DappActivity : BaseActivity() { isCosmostation = true val messageId = requestJson.getString("messageId") val messageJson = requestJson.getJSONObject("message") + Log.e("Test12345 : ", messageJson.getString("method")) when (messageJson.getString("method")) { "cos_requestAccount", "cos_account", "ten_requestAccount", "ten_account" -> { @@ -897,8 +958,7 @@ class DappActivity : BaseActivity() { "cos_signMessage" -> { val params = messageJson.getJSONObject("params") val signBundle = signBundle(0, params.toString(), "sign_message") - showSignDialog( - signBundle, + showSignDialog(signBundle, object : PopUpCosmosSignFragment.WcSignRawDataListener { override fun sign(id: Long, data: String) { approveSignMessageRequest(messageJson, messageId, data) @@ -915,8 +975,7 @@ class DappActivity : BaseActivity() { "cos_signAmino" -> { val params = messageJson.getJSONObject("params") val signBundle = signBundle(0, params.toString(), "sign_amino") - showSignDialog( - signBundle, + showSignDialog(signBundle, object : PopUpCosmosSignFragment.WcSignRawDataListener { override fun sign(id: Long, data: String) { approveSignAminoInjectRequest(messageJson, messageId, data) @@ -933,8 +992,7 @@ class DappActivity : BaseActivity() { "cos_signDirect" -> { val params = messageJson.getJSONObject("params") val signBundle = signBundle(0, params.toString(), "sign_direct") - showSignDialog( - signBundle, + showSignDialog(signBundle, object : PopUpCosmosSignFragment.WcSignRawDataListener { override fun sign(id: Long, data: String) { approveSignDirectInjectRequest(messageJson, messageId, data) @@ -979,8 +1037,7 @@ class DappActivity : BaseActivity() { // evm method "eth_requestAccounts", "wallet_requestPermissions" -> { - val address = - allChains?.firstOrNull { chain -> chain.supportEvm }?.evmAddress + val address = allChains?.firstOrNull { chain -> chain.supportEvm }?.evmAddress appToWebResult( messageJson, JSONArray(listOf(address)), messageId ) @@ -988,7 +1045,8 @@ class DappActivity : BaseActivity() { "wallet_switchEthereumChain" -> { lifecycleScope.launch(Dispatchers.IO) { - val evmChainIds = allChains?.map { chain -> chain.chainIdEvm.uppercase() }?.distinct() + val evmChainIds = + allChains?.map { chain -> chain.chainIdEvm.uppercase() }?.distinct() val chainId = (messageJson.getJSONArray("params") .get(0) as JSONObject).getString("chainId") @@ -1233,7 +1291,8 @@ class DappActivity : BaseActivity() { "personal_sign" -> { val params = messageJson.getJSONArray("params") val signBundle = signBundle(0, params.toString(), "personal_sign") - showEvmSignDialog(signBundle, + showEvmSignDialog( + signBundle, object : PopUpEvmSignFragment.WcSignRawDataListener { override fun sign(id: Long, data: String) { appToWebResult( @@ -1256,8 +1315,7 @@ class DappActivity : BaseActivity() { return } val signBundle = signBundle(0, params.toString(), "eth_signTypedData") - showEvmSignDialog( - signBundle, + showEvmSignDialog(signBundle, object : PopUpEvmSignFragment.WcSignRawDataListener { override fun sign(id: Long, data: String) { appToWebResult( @@ -1275,8 +1333,7 @@ class DappActivity : BaseActivity() { "eth_sendTransaction" -> { val params = messageJson.getJSONArray("params") val signBundle = signBundle(0, params[0].toString(), "eth_sendTransaction") - showEvmSignDialog( - signBundle, + showEvmSignDialog(signBundle, object : PopUpEvmSignFragment.WcSignRawDataListener { override fun sign(id: Long, data: String) { lifecycleScope.launch(Dispatchers.IO) { @@ -1366,8 +1423,7 @@ class DappActivity : BaseActivity() { "sui_signTransaction", "sui_signTransactionBlock" -> { val params = messageJson.getJSONObject("params") val signBundle = signBundle(0, params.toString(), "sui_signTransaction") - showSuiSignDialog( - signBundle, + showSuiSignDialog(signBundle, object : PopUpSuiSignFragment.WcSignRawDataListener { override fun sign(id: Long, data: String, signature: String) { val signed = JSONObject() @@ -1388,8 +1444,7 @@ class DappActivity : BaseActivity() { val params = messageJson.getJSONObject("params") val signBundle = signBundle(0, params.toString(), "sui_signAndExecuteTransactionBlock") - showSuiSignDialog( - signBundle, + showSuiSignDialog(signBundle, object : PopUpSuiSignFragment.WcSignRawDataListener { override fun sign(id: Long, data: String, signature: String) { approveSuiSignExecuteRequest( @@ -1412,8 +1467,7 @@ class DappActivity : BaseActivity() { return } val signBundle = signBundle(0, params.toString(), "sui_signMessage") - showSuiSignDialog( - signBundle, + showSuiSignDialog(signBundle, object : PopUpSuiSignFragment.WcSignRawDataListener { override fun sign(id: Long, data: String, signature: String) { val signed = JSONObject() @@ -1430,6 +1484,195 @@ class DappActivity : BaseActivity() { }) } + //babylon + "bit_requestAccount" -> { + if (selectBitcoin == null) { + selectBitcoin = + allChains?.find { it is ChainBitCoin84 && it.accountKeyType.pubkeyType == PubKeyType.BTC_NATIVE_SEGWIT } + } + + if (selectBitcoin?.mainAddress?.isNotEmpty() == true) { + appToWebResult( + messageJson, listOf(selectBitcoin?.mainAddress), messageId + ) + } else { + appToWebError(messageJson, messageId, "None Address") + } + } + + "bit_getPublicKeyHex" -> { + if (selectBitcoin == null) { + selectBitcoin = + allChains?.find { it is ChainBitCoin84 && it.accountKeyType.pubkeyType == PubKeyType.BTC_NATIVE_SEGWIT } + } + appToWebResult( + messageJson, + Base64.encodeToString(selectBitcoin?.publicKey, Base64.NO_WRAP), + messageId + ) + } + + "bit_getNetwork" -> { + if (selectBitcoin == null) { + selectBitcoin = + allChains?.find { it is ChainBitCoin84 && it.accountKeyType.pubkeyType == PubKeyType.BTC_NATIVE_SEGWIT } + } + bitNetwork = if (selectBitcoin is ChainBitcoin84Testnet) { + "signet" + } else { + "mainnet" + } + appToWebResult( + messageJson, bitNetwork, messageId + ) + } + + "bit_switchNetwork" -> { + val params = messageJson.getJSONArray("params") + if (params.length() > 0) { + bitNetwork = params.get(0).toString() + selectBitcoin = if (bitNetwork == "mainnet") { + allChains?.find { + it is ChainBitCoin84 && it.accountKeyType.pubkeyType == PubKeyType.BTC_NATIVE_SEGWIT && it.isDefault + } + } else { + allChains?.find { + it is ChainBitCoin84 && it.accountKeyType.pubkeyType == PubKeyType.BTC_NATIVE_SEGWIT && it.name.uppercase() + .contains(bitNetwork.uppercase()) + } + } + appToWebResult( + messageJson, bitNetwork, messageId + ) + } else { + appToWebError(messageJson, messageId, "Error : No Network") + } + } + + "bit_getAddress" -> { + if (selectBitcoin == null) { + selectBitcoin = + allChains?.find { it is ChainBitCoin84 && it.accountKeyType.pubkeyType == PubKeyType.BTC_NATIVE_SEGWIT } + } + + if (selectBitcoin?.mainAddress?.isNotEmpty() == true) { + appToWebResult( + messageJson, selectBitcoin?.mainAddress, messageId + ) + } else { + appToWebError(messageJson, messageId, "None Address") + } + } + + "bit_getBalance" -> { + currentMessageJson = messageJson + currentMessageId = messageId + + selectBitcoin?.let { chain -> + walletViewModel.balance(chain) + } ?: run { + appToWebError( + messageJson, messageId, getString(R.string.error_not_support) + ) + } + } + + "bit_pushTx" -> { + val params = messageJson.getJSONArray("params") + if (params.length() > 0) { + val txHex = params.get(0).toString() + val pushTxRequest = JsonRpcRequest( + method = "sendrawtransaction", params = listOf(txHex) + ) + val pushTxResponse = + jsonRpcResponse(selectBitcoin?.mainUrl ?: "", pushTxRequest) + val pushTxJsonObject = Gson().fromJson( + pushTxResponse.body?.string(), JsonObject::class.java + ) + try { + val result = pushTxJsonObject["result"].asString + appToWebResult( + messageJson, result, messageId + ) + + } catch (e: Exception) { + val errorMessage = + pushTxJsonObject["error"].asJsonObject["message"].asString + appToWebError( + messageJson, messageId, errorMessage + ) + } + + } else { + appToWebError( + messageJson, messageId, "No Param Data" + ) + } + } + + "bit_sendBitcoin" -> { + lifecycleScope.launch(Dispatchers.IO) { + if (bitcoinJS == null) { + bitcoinJS = BitCoinJS(this@DappActivity) + } + val params = messageJson.getJSONObject("params") + currentMessageJson = messageJson + currentMessageId = messageId + bitToAddress = params.getString("to") + bitSatAmount = params.getLong("satAmount").toString() + + if (selectBitcoin?.mainAddress?.lowercase() == bitToAddress.lowercase()) { + appToWebError(messageJson, messageId, "Wrong address") + return@launch + } + + val signBundle = signBundle(0, params.toString(), "bit_sendBitcoin") + showBitSignDialog(signBundle, bitcoinJS, object : PopUpBitSignFragment.WcSignRawDataListener { + override fun sign(id: Long, txHex: String) { + lifecycleScope.launch(Dispatchers.IO) { + val bitSendTxRequest = JsonRpcRequest( + method = "sendrawtransaction", params = listOf(txHex) + ) + val bitSendTxResponse = + jsonRpcResponse(selectBitcoin?.mainUrl ?: "", bitSendTxRequest) + val bitSendTxJsonObject = Gson().fromJson( + bitSendTxResponse.body?.string(), JsonObject::class.java + ) + try { + val result = bitSendTxJsonObject["result"].asString + appToWebResult( + currentMessageJson, result, currentMessageId + ) + + } catch (e: Exception) { + val errorMessage = + bitSendTxJsonObject["error"].asJsonObject["message"].asString + appToWebError( + currentMessageJson, currentMessageId, errorMessage + ) + } + } + } + + override fun cancel(id: Long) { + appToWebError(messageJson, messageId, "User rejected the request.") + } + }) + } + } + + "bit_signMessage" -> { + if (bitcoinJS == null) { + bitcoinJS = BitCoinJS(this@DappActivity) + } + val test = """function test() { + const sign = signMessageECDSA2() + console.log("sign : ", sign) + """.trimIndent() + bitcoinJS?.mergeFunction(test) + bitcoinJS?.executeFunction("test()") + } + else -> { appToWebError(messageJson, messageId, "Not implemented") } @@ -1696,6 +1939,16 @@ class DappActivity : BaseActivity() { } } + private fun setUpObserve() { + walletViewModel.balanceResult.observe(this) { + appToWebResult( + currentMessageJson, + (selectBitcoin as ChainBitCoin84).btcFetcher()?.btcBalances, + currentMessageId + ) + } + } + inner class DappJavascriptInterface { @JavascriptInterface fun request(message: String) { diff --git a/app/src/main/java/wannabit/io/cosmostaion/ui/main/dapp/PopUpBitSignFragment.kt b/app/src/main/java/wannabit/io/cosmostaion/ui/main/dapp/PopUpBitSignFragment.kt new file mode 100644 index 000000000..8e67bbb90 --- /dev/null +++ b/app/src/main/java/wannabit/io/cosmostaion/ui/main/dapp/PopUpBitSignFragment.kt @@ -0,0 +1,181 @@ +package wannabit.io.cosmostaion.ui.main.dapp + +import android.content.DialogInterface +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.core.content.ContextCompat +import androidx.core.view.isVisible +import androidx.lifecycle.lifecycleScope +import com.google.gson.JsonParser +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext +import org.json.JSONObject +import wannabit.io.cosmostaion.R +import wannabit.io.cosmostaion.chain.BaseChain +import wannabit.io.cosmostaion.chain.majorClass.ChainBitCoin84 +import wannabit.io.cosmostaion.common.BaseData +import wannabit.io.cosmostaion.common.formatAmount +import wannabit.io.cosmostaion.common.formatAssetValue +import wannabit.io.cosmostaion.common.setImg +import wannabit.io.cosmostaion.databinding.FragmentBitSignBinding +import wannabit.io.cosmostaion.sign.BitCoinJS +import wannabit.io.cosmostaion.ui.tx.genTx.BaseTxFragment +import java.math.RoundingMode + +class PopUpBitSignFragment( + var selectedChain: BaseChain?, + private val bitCoinJS: BitCoinJS?, + private val id: Long, + private val data: String, + private val method: String?, + val listener: WcSignRawDataListener +) : BaseTxFragment() { + + private var _binding: FragmentBitSignBinding? = null + private val binding get() = _binding!! + + private var bitToAddress: String = "" + private var bitSatAmount: String = "" + private var message: String = "" + + private var updateData: String? = null + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? + ): View { + _binding = FragmentBitSignBinding.inflate(layoutInflater, container, false) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + initViewResource() + parsingRequest() + setUpObserve() + setUpClickAction() + } + + private fun initViewResource() { + binding.apply { + signView.setBackgroundResource(R.drawable.cell_bg) + feeView.setBackgroundResource(R.drawable.cell_bg) + dialogTitle.text = getString(R.string.str_tx_request) + warnMsg.visibility = View.VISIBLE + warnMsg.text = getString(R.string.str_affect_danger_msg) + warnMsg.setTextColor( + ContextCompat.getColorStateList( + requireContext(), R.color.color_accent_red + ) + ) + dappFeeTokenImg.setImg(R.drawable.token_btc) + dappFeeToken.text = "BIT" + } + } + + private fun parsingRequest() { + lifecycleScope.launch(Dispatchers.IO) { + val txJsonObject = JsonParser.parseString(data).asJsonObject + (selectedChain as ChainBitCoin84).apply { + bitToAddress = txJsonObject["to"].asString + bitSatAmount = txJsonObject["satAmount"].asLong.toString() + if (method == "bit_sendBitcoin") { + message = JSONObject( + mapOf( + "From" to selectedChain?.mainAddress, + "To" to bitToAddress, + "Amount" to bitSatAmount.toBigDecimal().movePointLeft(8) + .setScale(8, RoundingMode.DOWN).toPlainString() + ) + ).toString(4) + withContext(Dispatchers.Main) { + txViewModel.bitTxData(this@apply) + } + } + } + } + } + + private fun setUpObserve() { + txViewModel.bitTxDataResult.observe(this) { bitData -> + (selectedChain as ChainBitCoin84).apply { + lifecycleScope.launch(Dispatchers.IO) { + val bitVByteFee = btcFetcher()?.bitVBytesFee(bitData.first, "") + val bitFee = + bitData.second.toBigDecimal().multiply(bitVByteFee).movePointRight(5) + .setScale(0, RoundingMode.UP) + + withContext(Dispatchers.Main) { + binding.apply { + val price = BaseData.getPrice(coinGeckoId) + val amount = bitFee.movePointLeft(8).setScale(8, RoundingMode.UP) + val value = price.multiply(amount) + + btnConfirm.isEnabled = true + loading.visibility = View.GONE + signData.text = message + feeAmount.text = formatAmount(amount.toPlainString(), 8) + feeValue.text = formatAssetValue(value) + } + + txViewModel.bitSendSimulate( + this@apply, + bitCoinJS, + mainAddress, + bitToAddress, + bitSatAmount, + btcFetcher()?.btcBalances?.subtract(bitSatAmount.toBigDecimal()) + ?.subtract(bitFee).toString(), + "", + bitData.first + ) + } + } + } + } + + txViewModel.simulate.observe(this) { txHex -> + updateData = txHex + } + } + + private fun setUpClickAction() { + binding.apply { + btnCancel.setOnClickListener { + if (!loading.isVisible) { + listener.cancel(id) + dismiss() + } + } + + btnConfirm.setOnClickListener { + if (!loading.isVisible && btnConfirm.isEnabled) { + listener.sign(id, updateData.toString()) + dismiss() + } + } + } + } + + override fun onDismiss(dialog: DialogInterface) { + super.onDismiss(dialog) + binding.apply { + if (!loading.isVisible) { + listener.cancel(id) + } + } + } + + interface WcSignRawDataListener { + fun sign(id: Long, txHex: String) + fun cancel(id: Long) + } + + override fun onDestroyView() { + _binding = null + super.onDestroyView() + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bit_sign.xml b/app/src/main/res/layout/fragment_bit_sign.xml new file mode 100644 index 000000000..9467ba6f3 --- /dev/null +++ b/app/src/main/res/layout/fragment_bit_sign.xml @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +