diff --git a/apps/extension/src/Approvals/ApproveTx/ConfirmLedgerTx.tsx b/apps/extension/src/Approvals/ApproveTx/ConfirmLedgerTx.tsx index 2c214098cf..7fb48e5d3f 100644 --- a/apps/extension/src/Approvals/ApproveTx/ConfirmLedgerTx.tsx +++ b/apps/extension/src/Approvals/ApproveTx/ConfirmLedgerTx.tsx @@ -56,7 +56,7 @@ export const ConfirmLedgerTx: React.FC = ({ details }) => { const txArgs: TxProps = { token: Tokens.NAM.address || "", feeAmount: new BigNumber(0), - gasLimit: new BigNumber(0), + gasLimit: new BigNumber(20_000), chainId, publicKey, }; diff --git a/apps/extension/src/background/keyring/handler.ts b/apps/extension/src/background/keyring/handler.ts index a899da4dd5..3e8ca432b5 100644 --- a/apps/extension/src/background/keyring/handler.ts +++ b/apps/extension/src/background/keyring/handler.ts @@ -21,7 +21,6 @@ import { } from "./messages"; import { ConnectInterfaceMsg, - EncodeInitAccountMsg, QueryAccountsMsg, QueryBalancesMsg, FetchAndStoreMaspParamsMsg, @@ -83,11 +82,6 @@ export const getHandler: (service: KeyRingService) => Handler = (service) => { env, msg as QueryParentAccountsMsg ); - case EncodeInitAccountMsg: - return handleEncodeInitAccountMsg(service)( - env, - msg as EncodeInitAccountMsg - ); case CloseOffscreenDocumentMsg: return handleCloseOffscreenDocumentMsg(service)( env, @@ -243,15 +237,6 @@ const handleQueryParentAccountsMsg: ( }; }; -const handleEncodeInitAccountMsg: ( - service: KeyRingService -) => InternalHandler = (service) => { - return (_, msg) => { - const { address, txMsg } = msg; - return service.encodeInitAccount(txMsg, address); - }; -}; - const handleSetActiveAccountMsg: ( service: KeyRingService ) => InternalHandler = (service) => { diff --git a/apps/extension/src/background/keyring/init.ts b/apps/extension/src/background/keyring/init.ts index f3c661809f..98b7f5f1da 100644 --- a/apps/extension/src/background/keyring/init.ts +++ b/apps/extension/src/background/keyring/init.ts @@ -20,7 +20,6 @@ import { } from "./messages"; import { ConnectInterfaceMsg, - EncodeInitAccountMsg, QueryAccountsMsg, QueryBalancesMsg, FetchAndStoreMaspParamsMsg, @@ -37,7 +36,6 @@ export function init(router: Router, service: KeyRingService): void { router.registerMessage(CloseOffscreenDocumentMsg); router.registerMessage(ConnectInterfaceMsg); router.registerMessage(DeriveAccountMsg); - router.registerMessage(EncodeInitAccountMsg); router.registerMessage(GenerateMnemonicMsg); router.registerMessage(GetActiveAccountMsg); router.registerMessage(LockKeyRingMsg); diff --git a/apps/extension/src/background/keyring/keyring.ts b/apps/extension/src/background/keyring/keyring.ts index 9a99ff17ec..8bdc5c11a9 100644 --- a/apps/extension/src/background/keyring/keyring.ts +++ b/apps/extension/src/background/keyring/keyring.ts @@ -11,7 +11,6 @@ import { VecU8Pointer, } from "@namada/crypto"; import { - Account, Address, ExtendedSpendingKey, ExtendedViewingKey, @@ -596,34 +595,6 @@ export class KeyRing { return getAccountValuesFromStore(accounts); } - async encodeInitAccount( - address: string, - txMsg: Uint8Array - ): Promise { - if (!this._password) { - throw new Error("Not authenticated!"); - } - const account = await this._keyStore.getRecord("address", address); - if (!account) { - throw new Error(`Account not found for ${address}`); - } - - let pk: string; - - try { - pk = crypto.decrypt(account.crypto, this._password, this._cryptoMemory); - } catch (e) { - throw new Error(`Could not unlock account for ${address}: ${e}`); - } - - try { - const { tx_data } = new Account(txMsg, pk).to_serialized(); - return tx_data; - } catch (e) { - throw new Error(`Could not encode InitAccount for ${address}: ${e}`); - } - } - async submitBond(txMsg: Uint8Array): Promise { if (!this._password) { throw new Error("Not authenticated!"); diff --git a/apps/extension/src/background/keyring/service.ts b/apps/extension/src/background/keyring/service.ts index 8b3dac86fc..77f9905ddb 100644 --- a/apps/extension/src/background/keyring/service.ts +++ b/apps/extension/src/background/keyring/service.ts @@ -1,4 +1,4 @@ -import { fromBase64, toBase64 } from "@cosmjs/encoding"; +import { fromBase64 } from "@cosmjs/encoding"; import { PhraseSize } from "@namada/crypto"; import { KVStore, Store } from "@namada/storage"; @@ -323,19 +323,6 @@ export class KeyRingService { } } - /** - * Creating an InitAccount for Namada requires a secret, - * therefore, we need to query the private key for this account from - * storage - */ - async encodeInitAccount(txMsg: string, address: string): Promise { - const tx_data = await this._keyRing.encodeInitAccount( - address, - fromBase64(txMsg) - ); - return toBase64(tx_data); - } - async setActiveAccount(id: string, type: ParentAccount): Promise { await this._keyRing.setActiveAccount(id, type); this.broadcaster.updateAccounts(); diff --git a/apps/extension/src/background/ledger/service.ts b/apps/extension/src/background/ledger/service.ts index a0f751804d..a56239f1da 100644 --- a/apps/extension/src/background/ledger/service.ts +++ b/apps/extension/src/background/ledger/service.ts @@ -57,6 +57,10 @@ export class LedgerService { TxMsgValue ); + if (!publicKey) { + throw new Error("Public key not found in txMsg"); + } + // Query account from Ledger storage to determine path for signer const account = await this._ledgerStore.getRecord("publicKey", publicKey); @@ -64,7 +68,11 @@ export class LedgerService { throw new Error(`Ledger account not found for ${publicKey}`); } - const bytes = await this.sdk.build_tx(TxType.RevealPK, fromBase64(txMsg)); + const bytes = await this.sdk.build_tx( + TxType.RevealPK, + fromBase64(txMsg), + publicKey + ); const path = makeBip44Path(coinType, account.path); return { bytes, path }; @@ -168,7 +176,15 @@ export class LedgerService { throw new Error(`Ledger account not found for ${address}`); } - const bytes = await this.sdk.build_tx(txType, fromBase64(txMsg)); + if (!account.publicKey) { + throw new Error(`Ledger account missing public key for ${address}`); + } + + const bytes = await this.sdk.build_tx( + txType, + fromBase64(txMsg), + account.publicKey + ); const path = makeBip44Path(coinType, account.path); return { bytes, path }; diff --git a/apps/extension/src/background/offscreen/offscreen.ts b/apps/extension/src/background/offscreen/offscreen.ts index 85c7e9b048..3d49face1c 100644 --- a/apps/extension/src/background/offscreen/offscreen.ts +++ b/apps/extension/src/background/offscreen/offscreen.ts @@ -25,7 +25,7 @@ const SW_TTL = 20000; sender: unknown, sendResponse: (response?: unknown) => void ): boolean { - const {data, type, routerId, target} = submitTransferMessage; + const { data, type, routerId, target } = submitTransferMessage; if (target !== OFFSCREEN_TARGET) { return false; diff --git a/apps/extension/src/provider/InjectedNamada.ts b/apps/extension/src/provider/InjectedNamada.ts index fe32f6a369..e657d11fed 100644 --- a/apps/extension/src/provider/InjectedNamada.ts +++ b/apps/extension/src/provider/InjectedNamada.ts @@ -105,15 +105,6 @@ export class InjectedNamada implements INamada { type, }); } - public async encodeInitAccount(props: { - txMsg: string; - address: string; - }): Promise { - return await InjectedProxy.requestMethod< - { txMsg: string; address: string }, - string - >("encodeInitAccount", props); - } public version(): string { return this._version; diff --git a/apps/extension/src/provider/Namada.test.ts b/apps/extension/src/provider/Namada.test.ts index 9913affd70..e40f79e4e2 100644 --- a/apps/extension/src/provider/Namada.test.ts +++ b/apps/extension/src/provider/Namada.test.ts @@ -1,7 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import { toBase64 } from "@cosmjs/encoding"; -import { AccountMsgValue, Message, Chain, Namada } from "@namada/types"; +import { Chain, Namada } from "@namada/types"; import { KVKeys } from "router"; import { init, KVStoreMock } from "test/init"; @@ -72,21 +71,4 @@ describe("Namada", () => { const chains = await iDBStore.get("chains"); expect(chains?.pop()).toEqual(chain); }); - - // This test shows that init account is NOT working - it is also unused. - // We will have to change assertion after fixing initAccount fn - it("should THROW AN ERROR on encode init account", async () => { - const accountMsgValue = new AccountMsgValue({ - vpCode: new Uint8Array(), - }); - const accountMessage = new Message(); - const serialized = accountMessage.encode(accountMsgValue); - - await expect( - namada.encodeInitAccount({ - txMsg: toBase64(serialized), - address: keyStore[0].address, - }) - ).rejects.toThrow(); - }); }); diff --git a/apps/extension/src/provider/Namada.ts b/apps/extension/src/provider/Namada.ts index 82cdc62ed9..b832ab7aec 100644 --- a/apps/extension/src/provider/Namada.ts +++ b/apps/extension/src/provider/Namada.ts @@ -15,7 +15,6 @@ import { GetChainMsg, GetChainsMsg, SuggestChainMsg, - EncodeInitAccountMsg, QueryAccountsMsg, FetchAndStoreMaspParamsMsg, HasMaspParamsMsg, @@ -144,17 +143,6 @@ export class Namada implements INamada { ); } - public async encodeInitAccount(props: { - txMsg: string; - address: string; - }): Promise { - const { txMsg, address } = props; - return await this.requester?.sendMessage( - Ports.Background, - new EncodeInitAccountMsg(txMsg, address) - ); - } - public version(): string { return this._version; } diff --git a/apps/extension/src/provider/Signer.ts b/apps/extension/src/provider/Signer.ts index 9bfccb9b27..56dd7d6c0f 100644 --- a/apps/extension/src/provider/Signer.ts +++ b/apps/extension/src/provider/Signer.ts @@ -2,10 +2,8 @@ import { toBase64 } from "@cosmjs/encoding"; import { Account, Namada, - AccountMsgValue, IbcTransferMsgValue, IbcTransferProps, - InitAccountProps, Message, Signer as ISigner, TransferMsgValue, @@ -118,24 +116,4 @@ export class Signer implements ISigner { type, }); } - - /** - * Encode an InitAccount message - */ - public async encodeInitAccount( - args: InitAccountProps, - signer: string - ): Promise { - const { vpCode } = args; - const accountMsgValue = new AccountMsgValue({ - vpCode, - }); - const accountMessage = new Message(); - const serialized = accountMessage.encode(accountMsgValue); - - return await this._namada.encodeInitAccount({ - txMsg: toBase64(serialized), - address: signer, - }); - } } diff --git a/apps/extension/src/provider/messages.ts b/apps/extension/src/provider/messages.ts index ae3454b45f..700ff13be7 100644 --- a/apps/extension/src/provider/messages.ts +++ b/apps/extension/src/provider/messages.ts @@ -24,7 +24,6 @@ enum MessageType { QueryBalances = "query-balances", SubmitIbcTransfer = "submit-ibc-transfer", SubmitLedgerTransfer = "submit-ledger-transfer", - EncodeInitAccount = "encode-init-account", EncodeRevealPublicKey = "encode-reveal-public-key", GetChain = "get-chain", GetChains = "get-chains", @@ -183,34 +182,6 @@ export class QueryBalancesMsg extends Message< } } -export class EncodeInitAccountMsg extends Message { - public static type(): MessageType { - return MessageType.EncodeInitAccount; - } - - constructor(public readonly txMsg: string, public readonly address: string) { - super(); - } - - validate(): void { - if (!this.address) { - throw new Error("An address is required!"); - } - if (!this.txMsg) { - throw new Error("An encoded txMsg is required!"); - } - return; - } - - route(): string { - return Route.KeyRing; - } - - type(): string { - return EncodeInitAccountMsg.type(); - } -} - export class ApproveTransferMsg extends Message { public static type(): MessageType { return MessageType.ApproveTransfer; diff --git a/apps/namada-interface/src/App/Token/IBCTransfer/IBCTransfer.tsx b/apps/namada-interface/src/App/Token/IBCTransfer/IBCTransfer.tsx index 98d1a2fa02..e623002301 100644 --- a/apps/namada-interface/src/App/Token/IBCTransfer/IBCTransfer.tsx +++ b/apps/namada-interface/src/App/Token/IBCTransfer/IBCTransfer.tsx @@ -61,7 +61,7 @@ export const submitIbcTransfer = async ( tx: { token: Tokens.NAM.address || "", feeAmount: new BigNumber(0), - gasLimit: new BigNumber(0), + gasLimit: new BigNumber(20_000), publicKey, chainId, }, @@ -93,7 +93,7 @@ export const submitBridgeTransfer = async ( tx: { token: Tokens.NAM.address || "", feeAmount: new BigNumber(0), - gasLimit: new BigNumber(0), + gasLimit: new BigNumber(20_000), chainId, }, source: address, diff --git a/apps/namada-interface/src/App/Token/TokenSend/TokenSendForm.tsx b/apps/namada-interface/src/App/Token/TokenSend/TokenSendForm.tsx index 146ad295de..5129f0cb1c 100644 --- a/apps/namada-interface/src/App/Token/TokenSend/TokenSendForm.tsx +++ b/apps/namada-interface/src/App/Token/TokenSend/TokenSendForm.tsx @@ -76,7 +76,7 @@ export const submitTransferTransaction = async ( tx: { token: Tokens.NAM.address || "", feeAmount: new BigNumber(0), - gasLimit: new BigNumber(0), + gasLimit: new BigNumber(20_000), chainId, publicKey: publicKey, signer: faucet ? target : undefined, diff --git a/apps/namada-interface/src/slices/StakingAndGovernance/actions.ts b/apps/namada-interface/src/slices/StakingAndGovernance/actions.ts index c07c587d54..959800b995 100644 --- a/apps/namada-interface/src/slices/StakingAndGovernance/actions.ts +++ b/apps/namada-interface/src/slices/StakingAndGovernance/actions.ts @@ -50,9 +50,9 @@ const toMyValidators = ( index == -1 ? (arr: MyValidators[]) => arr : (arr: MyValidators[], idx: number) => [ - ...arr.slice(0, idx), - ...arr.slice(idx + 1), - ]; + ...arr.slice(0, idx), + ...arr.slice(idx + 1), + ]; const stakedAmount = new BigNumber(stake).plus( new BigNumber(v?.stakedAmount || 0) @@ -249,7 +249,7 @@ export const postNewBonding = createAsyncThunk< tx: { token: Tokens.NAM.address || "", feeAmount: new BigNumber(0), - gasLimit: new BigNumber(0), + gasLimit: new BigNumber(20_000), chainId, publicKey, }, @@ -285,7 +285,7 @@ export const postNewUnbonding = createAsyncThunk< tx: { token: Tokens.NAM.address || "", feeAmount: new BigNumber(0), - gasLimit: new BigNumber(0), + gasLimit: new BigNumber(20_000), chainId, publicKey, }, @@ -314,7 +314,7 @@ export const postNewWithdraw = createAsyncThunk< tx: { token: Tokens.NAM.address || "", feeAmount: new BigNumber(0), - gasLimit: new BigNumber(0), + gasLimit: new BigNumber(20_000), chainId, publicKey, }, diff --git a/e2e/genesis.toml b/e2e/genesis.toml index 048470dcba..c5248571cd 100644 --- a/e2e/genesis.toml +++ b/e2e/genesis.toml @@ -168,6 +168,12 @@ min_num_of_blocks = 4 max_expected_time_per_block = 30 # Max payload size, in bytes, for a tx batch proposal. max_proposal_bytes = 22020096 +# Max amount of gas per block +max_block_gas = 20000000 +# Fee unshielding gas limit +fee_unshielding_gas_limit = 20000 +# Fee unshielding descriptions limit +fee_unshielding_descriptions_limit = 15 # vp whitelist vp_whitelist = [] # tx whitelist @@ -182,6 +188,11 @@ epochs_per_year = 525_600 pos_gain_p = "0.1" # The D gain factor in the Proof of Stake rewards controller pos_gain_d = "0.1" +# The maximum number of signatures allowed per transaction +max_signatures_per_transaction = 15 + +[parameters.gas_cost] +"atest1v4ehgw36x3prswzxggunzv6pxqmnvdj9xvcyzvpsggeyvs3cg9qnywf589qnwvfsg5erg3fkl09rg5" = "0.000001" # Proof of stake parameters. [pos_params] @@ -223,10 +234,18 @@ min_proposal_fund = 500 # proposal code size in bytes max_proposal_code_size = 1000000 # min proposal period length in epochs -min_proposal_period = 3 +min_proposal_voting_period = 3 # max proposal period length in epochs max_proposal_period = 27 # maximum number of characters in the proposal content max_proposal_content_size = 10000 # minimum epochs between end and grace epoch min_proposal_grace_epochs = 6 + +[pgf_params] +# list of steward address at genezis +stewards = [] +# inflation rate for pgf fundings +pgf_inflation_rate = "0.1" +# inflation rate for pgf stewards +stewards_inflation_rate = "0.01" diff --git a/e2e/setup-namada.sh b/e2e/setup-namada.sh index c33d9faafb..6ffd426474 100755 --- a/e2e/setup-namada.sh +++ b/e2e/setup-namada.sh @@ -1,6 +1,6 @@ #!/bin/bash -x -VERSION="v0.20.1" +VERSION="v0.22.0" CURRENT_VERSION="" NAMADA_DIR=".namada" NAMADA_BASE_DIR=".namada/basedir" diff --git a/e2e/src/index.test.ts b/e2e/src/index.test.ts index 25e996fab3..6ce6d04713 100644 --- a/e2e/src/index.test.ts +++ b/e2e/src/index.test.ts @@ -244,7 +244,7 @@ describe("Namada extension", () => { // Wait for success toast const toast = await page.waitForXPath( - "//div[contains(., 'Transfer successful!')]" + "//div[contains(., 'Transaction completed!')]" ); await stopNamada(nam); diff --git a/packages/integrations/src/Namada.ts b/packages/integrations/src/Namada.ts index 485ed85f38..57c6d9fc73 100644 --- a/packages/integrations/src/Namada.ts +++ b/packages/integrations/src/Namada.ts @@ -16,7 +16,7 @@ import { BridgeProps, Integration } from "./types/Integration"; export default class Namada implements Integration { private _namada: WindowWithNamada["namada"] | undefined; - constructor(public readonly chain: Chain) { } + constructor(public readonly chain: Chain) {} public get instance(): INamada | undefined { return this._namada; diff --git a/packages/shared/lib/Cargo.lock b/packages/shared/lib/Cargo.lock index 5fd44e48d0..3aafb227dd 100644 --- a/packages/shared/lib/Cargo.lock +++ b/packages/shared/lib/Cargo.lock @@ -64,9 +64,9 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "1.0.2" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41" +checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783" dependencies = [ "memchr", ] @@ -289,9 +289,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.2" +version = "0.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53" [[package]] name = "base64ct" @@ -301,15 +301,15 @@ checksum = "8a32fd6af2b5827bce66c29053ba0e7c42b9dcab01835835058558c10851a46b" [[package]] name = "bech32" -version = "0.7.3" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dabbe35f96fb9507f7330793dc490461b2962659ac5d427181e451a623751d1" +checksum = "cf9ff0bbfd639f15c74af777d81383cf53efb7c93613f6cab67c6c11e05bbf8b" [[package]] name = "bech32" -version = "0.8.1" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9ff0bbfd639f15c74af777d81383cf53efb7c93613f6cab67c6c11e05bbf8b" +checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" [[package]] name = "bellman" @@ -317,7 +317,7 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4dd656ef4fdf7debb6d87d4dd92642fcbcdb78cbf6600c13e25c87e4d1a3807" dependencies = [ - "bitvec 1.0.1", + "bitvec", "blake2s_simd", "byteorder", "ff 0.12.1", @@ -380,16 +380,6 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "bitvec" -version = "0.17.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" -dependencies = [ - "either", - "radium 0.3.0", -] - [[package]] name = "bitvec" version = "1.0.1" @@ -397,7 +387,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", - "radium 0.7.0", + "radium", "tap", "wyz", ] @@ -408,7 +398,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -506,7 +496,17 @@ name = "borsh" version = "0.9.4" source = "git+https://github.com/heliaxdev/borsh-rs.git?rev=cd5223e5103c4f139e0c54cf8259b7ec5ec4073a#cd5223e5103c4f139e0c54cf8259b7ec5ec4073a" dependencies = [ - "borsh-derive", + "borsh-derive 0.9.4", + "hashbrown 0.11.2", +] + +[[package]] +name = "borsh" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" +dependencies = [ + "borsh-derive 0.10.3", "hashbrown 0.11.2", ] @@ -515,8 +515,21 @@ name = "borsh-derive" version = "0.9.4" source = "git+https://github.com/heliaxdev/borsh-rs.git?rev=cd5223e5103c4f139e0c54cf8259b7ec5ec4073a#cd5223e5103c4f139e0c54cf8259b7ec5ec4073a" dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", + "borsh-derive-internal 0.9.4", + "borsh-schema-derive-internal 0.9.4", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" +dependencies = [ + "borsh-derive-internal 0.10.3", + "borsh-schema-derive-internal 0.10.3", "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", @@ -532,6 +545,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "borsh-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "borsh-schema-derive-internal" version = "0.9.4" @@ -542,13 +566,25 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "borsh-schema-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "bs58" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" dependencies = [ - "sha2 0.9.9", + "sha2 0.10.7", + "tinyvec", ] [[package]] @@ -607,18 +643,18 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.4" +version = "1.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +checksum = "2cfa25e60aea747ec7e1124f238816749faa93759c6ff5b31f1ccdda137f4479" dependencies = [ "serde", ] @@ -631,7 +667,7 @@ checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.17", + "semver 1.0.18", "serde", "serde_json", "thiserror", @@ -738,56 +774,52 @@ source = "git+https://github.com/marmeladema/clru-rs.git?rev=71ca566#71ca566915f [[package]] name = "coins-bip32" -version = "0.8.3" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30a84aab436fcb256a2ab3c80663d8aec686e6bae12827bb05fef3e1e439c9f" +checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" dependencies = [ - "bincode", "bs58", "coins-core", - "digest 0.10.6", - "getrandom 0.2.9", + "digest 0.10.7", "hmac 0.12.1", "k256", - "lazy_static", "serde", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", ] [[package]] name = "coins-bip39" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84f4d04ee18e58356accd644896aeb2094ddeafb6a713e056cef0c0a8e468c15" +checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" dependencies = [ - "bitvec 0.17.4", + "bitvec", "coins-bip32", - "getrandom 0.2.9", "hmac 0.12.1", "once_cell", - "pbkdf2 0.12.1", + "pbkdf2 0.12.2", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", ] [[package]] name = "coins-core" -version = "0.8.3" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b949a1c63fb7eb591eb7ba438746326aedf0ae843e51ec92ba6bec5bb382c4f" +checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" dependencies = [ - "base64 0.21.2", - "bech32 0.7.3", + "base64 0.21.3", + "bech32 0.9.1", "bs58", - "digest 0.10.6", + "digest 0.10.7", "generic-array 0.14.7", "hex", "ripemd", "serde", "serde_derive", - "sha2 0.10.6", + "sha2 0.10.7", "sha3", "thiserror", ] @@ -804,9 +836,9 @@ dependencies = [ [[package]] name = "const-oid" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6340df57935414636969091153f35f68d9f00bbc8fb4a9c6054706c213e6c6bc" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" [[package]] name = "constant_time_eq" @@ -867,9 +899,9 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.14" +version = "0.9.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7" dependencies = [ "autocfg", "cfg-if", @@ -880,9 +912,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.15" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" dependencies = [ "cfg-if", ] @@ -988,15 +1020,15 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" +checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" [[package]] name = "der" -version = "0.7.7" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c7ed52955ce76b1554f509074bb357d3fb8ac9b51288a65a3fd480d1dfba946" +checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c" dependencies = [ "const-oid", "zeroize", @@ -1056,9 +1088,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "const-oid", @@ -1126,18 +1158,18 @@ checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" [[package]] name = "dyn-clone" -version = "1.0.11" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" +checksum = "bbfc4744c1b8f2a09adc0e55242f60b1af195d88596bd8700be74418c056c555" [[package]] name = "ecdsa" -version = "0.16.7" +version = "0.16.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0997c976637b606099b9985693efa3581e84e41f5c11ba5255f88711058ad428" +checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" dependencies = [ "der", - "digest 0.10.6", + "digest 0.10.7", "elliptic-curve", "rfc6979", "signature 2.1.0", @@ -1199,7 +1231,7 @@ checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" dependencies = [ "base16ct", "crypto-bigint", - "digest 0.10.6", + "digest 0.10.7", "ff 0.13.0", "generic-array 0.14.7", "group 0.13.0", @@ -1221,9 +1253,9 @@ dependencies = [ [[package]] name = "encoding_rs" -version = "0.8.32" +version = "0.8.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" dependencies = [ "cfg-if", ] @@ -1248,28 +1280,28 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "erased-serde" -version = "0.3.25" +version = "0.3.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2b0c2380453a92ea8b6c8e5f64ecaafccddde8ceab55ff7a8ac1029f894569" +checksum = "c6984864d65d092d9e9ada107007a846a09f75d2e24046bcce9a38d14aa52052" dependencies = [ "serde", ] [[package]] name = "errno" -version = "0.3.1" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd" dependencies = [ "errno-dragonfly", "libc", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -1290,7 +1322,7 @@ checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" dependencies = [ "aes 0.8.3", "ctr", - "digest 0.10.6", + "digest 0.10.7", "hex", "hmac 0.12.1", "pbkdf2 0.11.0", @@ -1298,7 +1330,7 @@ dependencies = [ "scrypt", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.7", "sha3", "thiserror", "uuid", @@ -1338,8 +1370,8 @@ dependencies = [ [[package]] name = "ethbridge-bridge-contract" -version = "0.18.0" -source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.18.0#d49a0d110bb726c526896ff440d542585ced12f2" +version = "0.23.0" +source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.23.0#1bb96e06cbc3889aa46a01e3768bf25f0c78168a" dependencies = [ "ethbridge-bridge-events", "ethbridge-structs", @@ -1349,8 +1381,8 @@ dependencies = [ [[package]] name = "ethbridge-bridge-events" -version = "0.18.0" -source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.18.0#d49a0d110bb726c526896ff440d542585ced12f2" +version = "0.23.0" +source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.23.0#1bb96e06cbc3889aa46a01e3768bf25f0c78168a" dependencies = [ "ethabi", "ethbridge-structs", @@ -1360,8 +1392,8 @@ dependencies = [ [[package]] name = "ethbridge-governance-contract" -version = "0.18.0" -source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.18.0#d49a0d110bb726c526896ff440d542585ced12f2" +version = "0.23.0" +source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.23.0#1bb96e06cbc3889aa46a01e3768bf25f0c78168a" dependencies = [ "ethbridge-governance-events", "ethbridge-structs", @@ -1371,8 +1403,8 @@ dependencies = [ [[package]] name = "ethbridge-governance-events" -version = "0.18.0" -source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.18.0#d49a0d110bb726c526896ff440d542585ced12f2" +version = "0.23.0" +source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.23.0#1bb96e06cbc3889aa46a01e3768bf25f0c78168a" dependencies = [ "ethabi", "ethbridge-structs", @@ -1382,8 +1414,8 @@ dependencies = [ [[package]] name = "ethbridge-structs" -version = "0.18.0" -source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.18.0#d49a0d110bb726c526896ff440d542585ced12f2" +version = "0.23.0" +source = "git+https://github.com/heliaxdev/ethbridge-rs?tag=v0.23.0#1bb96e06cbc3889aa46a01e3768bf25f0c78168a" dependencies = [ "ethabi", "ethers", @@ -1408,9 +1440,9 @@ dependencies = [ [[package]] name = "ethers" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a58ce802c65cf3d0756dee5a61094a92cde53c1583b246e9ee5b37226c7fc15" +checksum = "96b4026b97da8281276744741fac7eb385da905f6093c583331fa2953fdd4253" dependencies = [ "ethers-addressbook", "ethers-contract", @@ -1424,9 +1456,9 @@ dependencies = [ [[package]] name = "ethers-addressbook" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b856b7b8ff5c961093cb8efe151fbcce724b451941ce20781de11a531ccd578" +checksum = "edcb6ffefc230d8c42874c51b28dc11dbb8de50b27a8fdf92648439d6baa68dc" dependencies = [ "ethers-core", "once_cell", @@ -1436,14 +1468,15 @@ dependencies = [ [[package]] name = "ethers-contract" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e066a0d9cfc70c454672bf16bb433b0243427420076dc5b2f49c448fb5a10628" +checksum = "0d4719a44c3d37ab07c6dea99ab174068d8c35e441b60b6c20ce4e48357273e8" dependencies = [ "ethers-contract-abigen", "ethers-contract-derive", "ethers-core", "ethers-providers", + "ethers-signers", "futures-util", "hex", "once_cell", @@ -1455,9 +1488,9 @@ dependencies = [ [[package]] name = "ethers-contract-abigen" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c113e3e86b6bc16d98484b2c3bb2d01d6fed9f489fe2e592e5cc87c3024d616b" +checksum = "155ea1b84d169d231317ed86e307af6f2bed6b40dd17e5e94bc84da21cadb21c" dependencies = [ "Inflector", "dunce", @@ -1479,9 +1512,9 @@ dependencies = [ [[package]] name = "ethers-contract-derive" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3fb5adee25701c79ec58fcf2c63594cd8829bc9ad6037ff862d5a111101ed2" +checksum = "8567ff196c4a37c1a8c90ec73bda0ad2062e191e4f0a6dc4d943e2ec4830fc88" dependencies = [ "Inflector", "ethers-contract-abigen", @@ -1495,9 +1528,9 @@ dependencies = [ [[package]] name = "ethers-core" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6da5fa198af0d3be20c19192df2bd9590b92ce09a8421e793bec8851270f1b05" +checksum = "60ca2514feb98918a0a31de7e1983c29f2267ebf61b2dc5d4294f91e5b866623" dependencies = [ "arrayvec", "bytes", @@ -1525,13 +1558,13 @@ dependencies = [ [[package]] name = "ethers-etherscan" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84ebb401ba97c6f5af278c2c9936c4546cad75dec464b439ae6df249906f4caa" +checksum = "22b3a8269d3df0ed6364bc05b4735b95f4bf830ce3aef87d5e760fb0e93e5b91" dependencies = [ "ethers-core", "reqwest", - "semver 1.0.17", + "semver 1.0.18", "serde", "serde_json", "thiserror", @@ -1540,9 +1573,9 @@ dependencies = [ [[package]] name = "ethers-middleware" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740f4a773c19dd6d6a68c8c2e0996c096488d38997d524e21dc612c55da3bd24" +checksum = "e0c339aad74ae5c451d27e0e49c7a3c7d22620b119b4f9291d7aa21f72d7f366" dependencies = [ "async-trait", "auto_impl", @@ -1567,13 +1600,13 @@ dependencies = [ [[package]] name = "ethers-providers" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56b498fd2a6c019d023e43e83488cd1fb0721f299055975aa6bac8dbf1e95f2c" +checksum = "b411b119f1cf0efb69e2190883dee731251882bb21270f893ee9513b3a697c48" dependencies = [ "async-trait", "auto_impl", - "base64 0.21.2", + "base64 0.21.3", "bytes", "enr", "ethers-core", @@ -1603,9 +1636,9 @@ dependencies = [ [[package]] name = "ethers-signers" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c4b7e15f212fa7cc2e1251868320221d4ff77a3d48068e69f47ce1c491df2d" +checksum = "4864d387456a9c09a1157fa10e1528b29d90f1d859443acf06a1b23365fb518c" dependencies = [ "async-trait", "coins-bip32", @@ -1615,16 +1648,16 @@ dependencies = [ "ethers-core", "hex", "rand 0.8.5", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", "tracing", ] [[package]] name = "ethers-solc" -version = "2.0.7" +version = "2.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a81c89f121595cf8959e746045bb8b25a6a38d72588561e1a3b7992fc213f674" +checksum = "7a6c2b9625a2c639d46625f88acc2092a3cb35786c37f7c2128b3ca20f639b3c" dependencies = [ "cfg-if", "dunce", @@ -1638,7 +1671,7 @@ dependencies = [ "path-slash", "rayon", "regex", - "semver 1.0.17", + "semver 1.0.18", "serde", "serde_json", "solang-parser", @@ -1692,8 +1725,8 @@ dependencies = [ "bincode", "blake2", "blake2b_simd", - "borsh", - "digest 0.10.6", + "borsh 0.9.4", + "digest 0.10.7", "ed25519-dalek", "either", "ferveo-common", @@ -1702,7 +1735,7 @@ dependencies = [ "itertools", "measure_time", "miracl_core", - "num 0.4.0", + "num 0.4.1", "rand 0.7.3", "rand 0.8.5", "serde", @@ -1732,7 +1765,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" dependencies = [ - "bitvec 1.0.1", + "bitvec", "rand_core 0.6.4", "subtle 2.4.1", ] @@ -1767,9 +1800,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.26" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +checksum = "c6c98ee8095e9d1dcbf2fcc6d95acccb90d1c81db1e44725c6a984b1dbdfb010" dependencies = [ "crc32fast", "miniz_oxide", @@ -1793,9 +1826,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "form_urlencoded" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" dependencies = [ "percent-encoding", ] @@ -2074,9 +2107,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049" +checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833" dependencies = [ "bytes", "fnv", @@ -2129,18 +2162,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" +checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" [[package]] name = "hex" @@ -2184,7 +2208,7 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -2221,7 +2245,7 @@ version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" dependencies = [ - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -2254,9 +2278,9 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" [[package]] name = "httpdate" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" @@ -2291,7 +2315,7 @@ dependencies = [ "futures-util", "http", "hyper", - "rustls 0.21.3", + "rustls", "tokio", "tokio-rustls", ] @@ -2321,8 +2345,8 @@ dependencies = [ [[package]] name = "ibc" -version = "0.36.0" -source = "git+https://github.com/heliaxdev/cosmos-ibc-rs.git?rev=634f4ede136d045dd6f1ff8f4984dd0006aa15f0#634f4ede136d045dd6f1ff8f4984dd0006aa15f0" +version = "0.41.0" +source = "git+https://github.com/heliaxdev/cosmos-ibc-rs.git?rev=38a827d3901e590b2935ee5b6b81b4d67c399560#38a827d3901e590b2935ee5b6b81b4d67c399560" dependencies = [ "bytes", "derive_more", @@ -2338,25 +2362,28 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "sha2 0.10.6", + "sha2 0.10.7", "subtle-encoding", "tendermint", "tendermint-light-client-verifier", "tendermint-proto", - "time 0.3.20", + "time 0.3.21", "tracing", "uint", ] [[package]] name = "ibc-proto" -version = "0.26.0" -source = "git+https://github.com/heliaxdev/ibc-proto-rs.git?rev=bb16e17a4d9260d5f20516a8eda43fa52377fad2#bb16e17a4d9260d5f20516a8eda43fa52377fad2" +version = "0.30.0" +source = "git+https://github.com/heliaxdev/ibc-proto-rs.git?rev=31892ee743b2af017d5629b2af419ee20b6100c7#31892ee743b2af017d5629b2af419ee20b6100c7" dependencies = [ - "base64 0.13.1", + "base64 0.21.3", + "borsh 0.10.3", "bytes", "flex-error", + "parity-scale-codec", "prost 0.11.9", + "scale-info", "serde", "subtle-encoding", "tendermint-proto", @@ -2373,15 +2400,15 @@ dependencies = [ "hex", "prost 0.11.9", "ripemd", - "sha2 0.10.6", + "sha2 0.10.7", "sha3", ] [[package]] name = "idna" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" dependencies = [ "unicode-bidi", "unicode-normalization", @@ -2456,7 +2483,7 @@ name = "index-set" version = "0.7.1" source = "git+https://github.com/heliaxdev/index-set?tag=v0.7.1#dc24cdbbe3664514d59f1a4c4031863fc565f1c2" dependencies = [ - "borsh", + "borsh 0.9.4", "serde", ] @@ -2512,13 +2539,13 @@ dependencies = [ [[package]] name = "io-lifetimes" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" +checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.1", + "hermit-abi", "libc", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -2533,10 +2560,10 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ - "hermit-abi 0.3.1", + "hermit-abi", "io-lifetimes", "rustix", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -2578,7 +2605,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a575df5f985fe1cd5b2b05664ff6accfc46559032b954529fd225a2168d27b0f" dependencies = [ - "bitvec 1.0.1", + "bitvec", "bls12_381", "ff 0.12.1", "group 0.12.1", @@ -2596,7 +2623,7 @@ dependencies = [ "ecdsa", "elliptic-curve", "once_cell", - "sha2 0.10.6", + "sha2 0.10.7", "signature 2.1.0", ] @@ -2611,9 +2638,9 @@ dependencies = [ [[package]] name = "lalrpop" -version = "0.19.12" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a1cbf952127589f2851ab2046af368fd20645491bb4b376f04b7f94d7a9837b" +checksum = "da4081d44f4611b66c6dd725e6de3169f9f63905421e8626fcb86b6a898998b8" dependencies = [ "ascii-canvas", "bit-set", @@ -2624,7 +2651,7 @@ dependencies = [ "lalrpop-util", "petgraph", "regex", - "regex-syntax 0.6.29", + "regex-syntax", "string_cache", "term", "tiny-keccak", @@ -2633,9 +2660,9 @@ dependencies = [ [[package]] name = "lalrpop-util" -version = "0.19.12" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3c48237b9604c5a4702de6b824e02006c3214327564636aef27c1028a8fa0ed" +checksum = "3f35c735096c0293d313e8f2a641627472b83d01b937177fe76e5e2708d31e0d" [[package]] name = "lazy_static" @@ -2717,9 +2744,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" +checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" [[package]] name = "lock_api" @@ -2743,9 +2770,9 @@ dependencies = [ [[package]] name = "masp_note_encryption" version = "0.2.0" -source = "git+https://github.com/anoma/masp?rev=252a6059565b125c1444e9e7d0b7c8da0fba8f8f#252a6059565b125c1444e9e7d0b7c8da0fba8f8f" +source = "git+https://github.com/anoma/masp?rev=50acc5028fbcd52a05970fe7991c7850ab04358e#50acc5028fbcd52a05970fe7991c7850ab04358e" dependencies = [ - "borsh", + "borsh 0.9.4", "chacha20 0.9.1", "chacha20poly1305", "cipher 0.4.4", @@ -2756,15 +2783,15 @@ dependencies = [ [[package]] name = "masp_primitives" version = "0.9.0" -source = "git+https://github.com/anoma/masp?rev=252a6059565b125c1444e9e7d0b7c8da0fba8f8f#252a6059565b125c1444e9e7d0b7c8da0fba8f8f" +source = "git+https://github.com/anoma/masp?rev=50acc5028fbcd52a05970fe7991c7850ab04358e#50acc5028fbcd52a05970fe7991c7850ab04358e" dependencies = [ "aes 0.7.5", "bip0039", - "bitvec 1.0.1", + "bitvec", "blake2b_simd", "blake2s_simd", "bls12_381", - "borsh", + "borsh 0.9.4", "byteorder", "ff 0.12.1", "fpe", @@ -2776,6 +2803,7 @@ dependencies = [ "masp_note_encryption", "memuse", "nonempty", + "num-traits", "rand 0.8.5", "rand_core 0.6.4", "sha2 0.9.9", @@ -2786,7 +2814,7 @@ dependencies = [ [[package]] name = "masp_proofs" version = "0.9.0" -source = "git+https://github.com/anoma/masp?rev=252a6059565b125c1444e9e7d0b7c8da0fba8f8f#252a6059565b125c1444e9e7d0b7c8da0fba8f8f" +source = "git+https://github.com/anoma/masp?rev=50acc5028fbcd52a05970fe7991c7850ab04358e#50acc5028fbcd52a05970fe7991c7850ab04358e" dependencies = [ "bellman", "blake2b_simd", @@ -2810,7 +2838,7 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -2825,15 +2853,15 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c" [[package]] name = "memoffset" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" dependencies = [ "autocfg", ] @@ -2879,15 +2907,15 @@ dependencies = [ [[package]] name = "minreq" -version = "2.8.1" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3de406eeb24aba36ed3829532fa01649129677186b44a49debec0ec574ca7da7" +checksum = "9e9011dfd733a35686fee44b5749ecb981e9020f683433fcf8f8a9bc43a5ad41" dependencies = [ "log", "once_cell", - "rustls 0.20.8", - "webpki", - "webpki-roots 0.22.6", + "rustls", + "rustls-webpki 0.101.4", + "webpki-roots 0.25.2", ] [[package]] @@ -2897,9 +2925,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2" dependencies = [ "libc", - "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -2916,12 +2943,12 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "namada" -version = "0.20.1" -source = "git+https://github.com/anoma/namada#7fdf079540201546aaf436bf6cc7526acc6a13f8" +version = "0.22.0" +source = "git+https://github.com/anoma/namada#9b67281e359ebff5467cad57c866fbcf91eb80c8" dependencies = [ "async-trait", "bimap", - "borsh", + "borsh 0.9.4", "circular-queue", "clru", "data-encoding", @@ -2965,14 +2992,14 @@ dependencies = [ [[package]] name = "namada_core" -version = "0.20.1" -source = "git+https://github.com/anoma/namada#7fdf079540201546aaf436bf6cc7526acc6a13f8" +version = "0.22.0" +source = "git+https://github.com/anoma/namada#9b67281e359ebff5467cad57c866fbcf91eb80c8" dependencies = [ "ark-bls12-381", "ark-ec", "ark-serialize", "bech32 0.8.1", - "borsh", + "borsh 0.9.4", "chrono", "data-encoding", "derivative", @@ -2996,6 +3023,7 @@ dependencies = [ "num-rational 0.4.1", "num-traits", "num256", + "primitive-types", "prost 0.11.9", "prost-types 0.11.9", "rand 0.8.5", @@ -3016,10 +3044,10 @@ dependencies = [ [[package]] name = "namada_ethereum_bridge" -version = "0.20.1" -source = "git+https://github.com/anoma/namada#7fdf079540201546aaf436bf6cc7526acc6a13f8" +version = "0.22.0" +source = "git+https://github.com/anoma/namada#9b67281e359ebff5467cad57c866fbcf91eb80c8" dependencies = [ - "borsh", + "borsh 0.9.4", "ethers", "eyre", "itertools", @@ -3037,8 +3065,8 @@ dependencies = [ [[package]] name = "namada_macros" -version = "0.20.1" -source = "git+https://github.com/anoma/namada#7fdf079540201546aaf436bf6cc7526acc6a13f8" +version = "0.22.0" +source = "git+https://github.com/anoma/namada#9b67281e359ebff5467cad57c866fbcf91eb80c8" dependencies = [ "proc-macro2", "quote", @@ -3047,10 +3075,10 @@ dependencies = [ [[package]] name = "namada_proof_of_stake" -version = "0.20.1" -source = "git+https://github.com/anoma/namada#7fdf079540201546aaf436bf6cc7526acc6a13f8" +version = "0.22.0" +source = "git+https://github.com/anoma/namada#9b67281e359ebff5467cad57c866fbcf91eb80c8" dependencies = [ - "borsh", + "borsh 0.9.4", "data-encoding", "derivative", "namada_core", @@ -3087,12 +3115,12 @@ dependencies = [ [[package]] name = "num" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +checksum = "b05180d69e3da0e530ba2a1dae5110317e49e3b7f3d41be227dc5f92e49ee7af" dependencies = [ "num-bigint 0.4.3", - "num-complex 0.4.3", + "num-complex 0.4.4", "num-integer", "num-iter", "num-rational 0.4.1", @@ -3133,9 +3161,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +checksum = "1ba157ca0885411de85d6ca030ba7e2a83a28636056c7c699b07c8b6f7383214" dependencies = [ "num-traits", ] @@ -3212,7 +3240,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9b5179e82f0867b23e0b9b822493821f9345561f271364f409c8e4a058367d" dependencies = [ "lazy_static", - "num 0.4.0", + "num 0.4.1", "num-derive", "num-traits", "serde", @@ -3221,11 +3249,11 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.15.0" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" dependencies = [ - "hermit-abi 0.2.6", + "hermit-abi", "libc", ] @@ -3327,7 +3355,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ddb756ca205bd108aee3c62c6d3c994e1df84a59b9d6d4a5ea42ee1fd5a9a28" dependencies = [ "arrayvec", - "bitvec 1.0.1", + "bitvec", "byte-slice-cast", "impl-trait-for-tuples", "parity-scale-codec-derive", @@ -3366,7 +3394,7 @@ dependencies = [ "libc", "redox_syscall 0.3.5", "smallvec", - "windows-targets 0.48.0", + "windows-targets", ] [[package]] @@ -3404,9 +3432,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.12" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" [[package]] name = "path-slash" @@ -3439,19 +3467,19 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "hmac 0.12.1", "password-hash 0.4.2", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] name = "pbkdf2" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "hmac 0.12.1", ] @@ -3484,28 +3512,29 @@ checksum = "c719dcf55f09a3a7e764c6649ab594c18a177e3599c467983cdf644bfc0a4088" [[package]] name = "percent-encoding" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" +checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.6.0" +version = "2.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70" +checksum = "d7a4d085fd991ac8d5b05a147b437791b4260b76326baf0fc60cf7c9c27ecd33" dependencies = [ + "memchr", "thiserror", "ucd-trie", ] [[package]] name = "petgraph" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 1.9.3", + "indexmap 2.0.0", ] [[package]] @@ -3822,12 +3851,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "radium" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" - [[package]] name = "radium" version = "0.7.0" @@ -3974,34 +3997,40 @@ dependencies = [ [[package]] name = "regex" -version = "1.8.1" +version = "1.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" +checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.7.1", + "regex-automata", + "regex-syntax", ] [[package]] -name = "regex-syntax" -version = "0.6.29" +name = "regex-automata" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] [[package]] name = "regex-syntax" -version = "0.7.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "reqwest" -version = "0.11.18" +version = "0.11.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55" +checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1" dependencies = [ - "base64 0.21.2", + "base64 0.21.3", "bytes", "encoding_rs", "futures-core", @@ -4018,7 +4047,7 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.21.3", + "rustls", "rustls-pemfile", "serde", "serde_json", @@ -4030,7 +4059,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.22.6", + "webpki-roots 0.25.2", "winreg", ] @@ -4065,7 +4094,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -4117,44 +4146,32 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.17", + "semver 1.0.18", ] [[package]] name = "rustix" -version = "0.37.19" +version = "0.37.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" +checksum = "4d69718bf81c6127a49dc64e44a742e8bb9213c0ff8869a22c308f84c1d4ab06" dependencies = [ "bitflags", "errno", "io-lifetimes", "libc", "linux-raw-sys", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] name = "rustls" -version = "0.20.8" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" dependencies = [ "log", "ring", - "sct", - "webpki", -] - -[[package]] -name = "rustls" -version = "0.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b19faa85ecb5197342b54f987b142fb3e30d0c90da40f80ef4fa9a726e6676ed" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.1", + "rustls-webpki 0.101.4", "sct", ] @@ -4164,14 +4181,14 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2" dependencies = [ - "base64 0.21.2", + "base64 0.21.3", ] [[package]] name = "rustls-webpki" -version = "0.100.1" +version = "0.100.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +checksum = "e98ff011474fa39949b7e5c0428f9b4937eda7da7848bbb947786b7be0b27dab" dependencies = [ "ring", "untrusted", @@ -4179,9 +4196,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.101.1" +version = "0.101.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15f36a6828982f422756984e47912a7a51dcbc2a197aa791158f8ca61cd8204e" +checksum = "7d93931baf2d282fff8d3a532bbfd7653f734643161b87e3e01e59a04439bf0d" dependencies = [ "ring", "untrusted", @@ -4189,9 +4206,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc31bd9b61a32c31f9650d18add92aa83a49ba979c143eefd27fe7177b05bd5f" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" @@ -4296,9 +4313,9 @@ checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "scrypt" @@ -4309,7 +4326,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2 0.11.0", "salsa20", - "sha2 0.10.6", + "sha2 0.10.7", ] [[package]] @@ -4324,9 +4341,9 @@ dependencies = [ [[package]] name = "sec1" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" dependencies = [ "base16ct", "der", @@ -4347,9 +4364,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" dependencies = [ "serde", ] @@ -4386,9 +4403,9 @@ dependencies = [ [[package]] name = "serde_bytes" -version = "0.11.9" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +checksum = "f3c5113243e4a3a1c96587342d067f3e6b0f50790b6cf40d2868eb647a3eef0e" dependencies = [ "serde", ] @@ -4417,9 +4434,9 @@ dependencies = [ [[package]] name = "serde_repr" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" +checksum = "6f0a21fba416426ac927b1691996e82079f8b6156e920c85345f135b2e9ba2de" dependencies = [ "proc-macro2", "quote", @@ -4455,7 +4472,7 @@ checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -4485,13 +4502,13 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.6", + "digest 0.10.7", ] [[package]] @@ -4500,7 +4517,7 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "keccak", ] @@ -4509,7 +4526,7 @@ name = "shared" version = "0.1.0" dependencies = [ "async-trait", - "borsh", + "borsh 0.9.4", "chrono", "console_error_panic_hook", "getrandom 0.2.9", @@ -4553,21 +4570,21 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" dependencies = [ - "digest 0.10.6", + "digest 0.10.7", "rand_core 0.6.4", ] [[package]] name = "siphasher" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] @@ -4599,9 +4616,9 @@ dependencies = [ [[package]] name = "solang-parser" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a94494913728908efa7a25a2dd2e4f037e714897985c24273c40596638ed909" +checksum = "9c792fe9fae2a2f716846f214ca10d5a1e21133e0bf36cef34bcc4a852467b21" dependencies = [ "itertools", "lalrpop", @@ -4616,7 +4633,7 @@ name = "sparse-merkle-tree" version = "0.3.1-pre" source = "git+https://github.com/heliaxdev/sparse-merkle-tree?rev=e086b235ed6e68929bf73f617dd61cd17b000a56#e086b235ed6e68929bf73f617dd61cd17b000a56" dependencies = [ - "borsh", + "borsh 0.9.4", "cfg-if", "ics23", "sha2 0.9.9", @@ -4659,24 +4676,24 @@ dependencies = [ [[package]] name = "strum" -version = "0.24.1" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.24.3" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +checksum = "ad8d03b598d3d0fff69bf533ee3ef19b8eeb342729596df84bcc7e1f96ec4059" dependencies = [ "heck", "proc-macro2", "quote", "rustversion", - "syn 1.0.109", + "syn 2.0.16", ] [[package]] @@ -4730,10 +4747,10 @@ dependencies = [ "home", "once_cell", "reqwest", - "semver 1.0.17", + "semver 1.0.18", "serde", "serde_json", - "sha2 0.10.6", + "sha2 0.10.7", "thiserror", "url", "zip", @@ -4769,15 +4786,16 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tempfile" -version = "3.5.0" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6" dependencies = [ + "autocfg", "cfg-if", "fastrand", "redox_syscall 0.3.5", "rustix", - "windows-sys 0.45.0", + "windows-sys", ] [[package]] @@ -4804,7 +4822,7 @@ dependencies = [ "subtle 2.4.1", "subtle-encoding", "tendermint-proto", - "time 0.3.20", + "time 0.3.21", "zeroize", ] @@ -4830,7 +4848,7 @@ dependencies = [ "flex-error", "serde", "tendermint", - "time 0.3.20", + "time 0.3.21", ] [[package]] @@ -4847,7 +4865,7 @@ dependencies = [ "serde", "serde_bytes", "subtle-encoding", - "time 0.3.20", + "time 0.3.21", ] [[package]] @@ -4870,7 +4888,7 @@ dependencies = [ "tendermint-config", "tendermint-proto", "thiserror", - "time 0.3.20", + "time 0.3.21", "tokio", "tracing", "url", @@ -4922,9 +4940,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.20" +version = "0.3.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc" dependencies = [ "serde", "time-core", @@ -4933,15 +4951,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" [[package]] name = "time-macros" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" dependencies = [ "time-core", ] @@ -5022,9 +5040,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.28.1" +version = "1.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aa32867d44e6f2ce3385e89dceb990188b8bb0fb25b0cf576647a6f98ac5105" +checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" dependencies = [ "autocfg", "bytes", @@ -5036,7 +5054,7 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys", ] [[package]] @@ -5056,7 +5074,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.3", + "rustls", "tokio", ] @@ -5068,7 +5086,7 @@ checksum = "ec509ac96e9a0c43427c74f003127d953a265737636129424288d27cb5c4b12c" dependencies = [ "futures-util", "log", - "rustls 0.21.3", + "rustls", "tokio", "tokio-rustls", "tungstenite", @@ -5121,9 +5139,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.19.12" +version = "0.19.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c500344a19072298cd05a7224b3c0c629348b78692bf48466c5238656e315a78" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" dependencies = [ "indexmap 2.0.0", "serde", @@ -5212,7 +5230,7 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "rustls 0.21.3", + "rustls", "sha1", "thiserror", "url", @@ -5228,9 +5246,9 @@ checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" [[package]] name = "ucd-trie" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" +checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" [[package]] name = "uint" @@ -5289,9 +5307,9 @@ checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" [[package]] name = "url" -version = "2.3.1" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna", @@ -5454,7 +5472,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29e3ac9b780c7dda0cac7a52a5d6d2d6707cc6e3451c9db209b6c758f40d7acb" dependencies = [ "indexmap 1.9.3", - "semver 1.0.17", + "semver 1.0.18", ] [[package]] @@ -5483,9 +5501,9 @@ dependencies = [ [[package]] name = "webpki" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "f0e74f82d49d545ad128049b7e88f6576df2da6b02e9ce565c6f533be576957e" dependencies = [ "ring", "untrusted", @@ -5493,21 +5511,18 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.6" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" dependencies = [ - "webpki", + "rustls-webpki 0.100.2", ] [[package]] name = "webpki-roots" -version = "0.23.1" +version = "0.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" -dependencies = [ - "rustls-webpki 0.100.1", -] +checksum = "14247bb57be4f377dfb94c72830b8ce8fc6beac03cf4bf7b9732eadd414123fc" [[package]] name = "which" @@ -5557,16 +5572,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", + "windows-targets", ] [[package]] @@ -5575,22 +5581,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets", ] [[package]] @@ -5599,93 +5590,51 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - [[package]] name = "windows_x86_64_msvc" version = "0.48.0" @@ -5694,20 +5643,21 @@ checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" [[package]] name = "winnow" -version = "0.4.9" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81a2094c43cc94775293eaa0e499fbc30048a6d824ac82c0351a8c0bf9112529" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" dependencies = [ "memchr", ] [[package]] name = "winreg" -version = "0.10.1" +version = "0.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" dependencies = [ - "winapi", + "cfg-if", + "windows-sys", ] [[package]] @@ -5789,7 +5739,7 @@ dependencies = [ "hmac 0.12.1", "pbkdf2 0.11.0", "sha1", - "time 0.3.20", + "time 0.3.21", "zstd", ] diff --git a/packages/shared/lib/Cargo.toml b/packages/shared/lib/Cargo.toml index e8e2d1d7ef..f7a5577d00 100644 --- a/packages/shared/lib/Cargo.toml +++ b/packages/shared/lib/Cargo.toml @@ -21,9 +21,9 @@ chrono = "0.4.22" getrandom = { version = "0.2.7", features = ["js"] } gloo-utils = { version = "0.1.5", features = ["serde"] } js-sys = "0.3.60" -masp_primitives = { git = "https://github.com/anoma/masp", rev = "252a6059565b125c1444e9e7d0b7c8da0fba8f8f" } -masp_proofs = { git = "https://github.com/anoma/masp", rev = "252a6059565b125c1444e9e7d0b7c8da0fba8f8f", default-features = false, features = ["local-prover"] } -namada = { git = "https://github.com/anoma/namada", version = "0.20.1", default-features = false, features = ["abciplus", "namada-sdk"] } +masp_primitives = { git = "https://github.com/anoma/masp", rev = "50acc5028fbcd52a05970fe7991c7850ab04358e" } +masp_proofs = { git = "https://github.com/anoma/masp", rev = "50acc5028fbcd52a05970fe7991c7850ab04358e", default-features = false, features = ["local-prover"] } +namada = { git = "https://github.com/anoma/namada", version = "0.22.0", default-features = false, features = ["abciplus", "namada-sdk"] } prost = "0.9.0" prost-types = "0.9.0" rand = "0.8.5" diff --git a/packages/shared/lib/src/account.rs b/packages/shared/lib/src/account.rs deleted file mode 100644 index 91bdae6be8..0000000000 --- a/packages/shared/lib/src/account.rs +++ /dev/null @@ -1,81 +0,0 @@ -use borsh::{BorshDeserialize, BorshSerialize}; -use gloo_utils::format::JsValueSerdeExt; -use namada::types::{ - hash::Hash, - key::{ - self, - common::{PublicKey, SecretKey}, - RefTo, - }, - transaction::InitAccount, -}; -use serde::{Deserialize, Serialize}; -use std::str::FromStr; -use wasm_bindgen::prelude::*; - -#[wasm_bindgen] -#[derive(BorshSerialize, BorshDeserialize)] -pub struct AccountMsg { - vp_code: Vec, -} - -#[wasm_bindgen] -#[derive(Serialize, Deserialize)] -pub struct Account { - tx_data: Vec, -} - -#[wasm_bindgen] -impl Account { - /// Create an init-account struct - #[wasm_bindgen(constructor)] - pub fn new(msg: &[u8], secret: &str) -> Result { - let msg = BorshDeserialize::try_from_slice(msg) - .map_err(|err| format!("BorshDeserialize failed! {:?}", err))?; - let AccountMsg { vp_code } = msg; - //TODO: Fix unwrap - let vp_code_hash = Hash::try_from(&vp_code[..]).unwrap(); - - let secret_key = key::ed25519::SecretKey::from_str(secret) - .map_err(|err| format!("ed25519 encoding failed: {:?}", err))?; - let signing_key = SecretKey::Ed25519(secret_key); - - // TODO: Fix the following conversion - #[allow(clippy::useless_conversion)] - let public_key = PublicKey::from(signing_key.ref_to()); - - let init_account = InitAccount { - public_key, - vp_code_hash, - }; - - let tx_data = init_account.try_to_vec().map_err(|err| err.to_string())?; - - Ok(Account { tx_data }) - } - - pub fn to_serialized(&self) -> Result { - let serialized = JsValue::from_serde(&self).map_err(|err| err.to_string())?; - Ok(serialized) - } -} - -#[cfg(test)] -mod tests { - use super::*; - use wasm_bindgen_test::*; - - #[wasm_bindgen_test] - fn can_generate_init_account() { - let secret = "1498b5467a63dffa2dc9d9e069caf075d16fc33fdd4c3b01bfadae6433767d93"; - let msg = AccountMsg { vp_code: vec![] }; - - let msg_serialized = - BorshSerialize::try_to_vec(&msg).expect("Message should serialize to vector"); - - let Account { tx_data } = Account::new(&msg_serialized, secret) - .expect("Should be able to create an Account from serialized message"); - - assert_eq!(tx_data.len(), 37); - } -} diff --git a/packages/shared/lib/src/lib.rs b/packages/shared/lib/src/lib.rs index 6054948cd1..1bd88f9d5f 100644 --- a/packages/shared/lib/src/lib.rs +++ b/packages/shared/lib/src/lib.rs @@ -2,7 +2,6 @@ //! //! A library of functions to integrate shared functionality from the Namada ecosystem -pub mod account; pub mod query; pub mod rpc_client; pub mod sdk; diff --git a/packages/shared/lib/src/query.rs b/packages/shared/lib/src/query.rs index b547dc15e2..de24482236 100644 --- a/packages/shared/lib/src/query.rs +++ b/packages/shared/lib/src/query.rs @@ -1,7 +1,8 @@ -use masp_primitives::{transaction::components::Amount, zip32::ExtendedFullViewingKey}; +use masp_primitives::transaction::components::I128Sum; +use masp_primitives::zip32::ExtendedFullViewingKey; use namada::ledger::masp::ShieldedContext; use namada::ledger::queries::RPC; -use namada::ledger::rpc::{get_public_key, get_token_balance}; +use namada::ledger::rpc::{get_public_key_at, get_token_balance}; use namada::types::{ address::Address, masp::ExtendedViewingKey, @@ -104,10 +105,9 @@ impl Query { validators_per_address.insert(address, validators); } - let mut result: Vec<(Address, Address, String, String, String)> = - Vec::new(); + let mut result: Vec<(Address, Address, String, String, String)> = Vec::new(); - let epoch = namada::ledger::rpc::query_epoch(&self.client).await; + let epoch = namada::ledger::rpc::query_epoch(&self.client).await?; for (owner, validators) in validators_per_address.into_iter() { for validator in validators.into_iter() { let owner_option = &Some(owner.clone()); @@ -173,7 +173,7 @@ impl Query { let mut bonds = vec![]; let mut unbonds = vec![]; - let epoch = namada::ledger::rpc::query_epoch(&self.client).await; + let epoch = namada::ledger::rpc::query_epoch(&self.client).await?; for (owner, validators) in validators_per_address.into_iter() { for validator in validators.into_iter() { let owner_option = &Some(owner.clone()); @@ -204,7 +204,6 @@ impl Query { unbond.withdraw.to_string(), )); } - } } } @@ -217,25 +216,26 @@ impl Query { /// # Arguments /// /// * `owner` - Account address in form of bech32, base64 encoded string - async fn query_transparent_balance(&self, owner: Address) -> Vec<(Address, token::Amount)> { + async fn query_transparent_balance( + &self, + owner: Address, + ) -> Result, JsError> { //TODO: Move hardoced tokens somewhere else let tokens: HashSet
= HashSet::from([Address::from_str( "atest1v4ehgw36x3prswzxggunzv6pxqmnvdj9xvcyzvpsggeyvs3cg9qnywf589qnwvfsg5erg3fkl09rg5", - ) - .unwrap(), Address::from_str( + )?, Address::from_str( "atest1v4ehgw36gfryydj9g3p5zv3kg9znyd358ycnzsfcggc5gvecgc6ygs2rxv6ry3zpg4zrwdfeumqcz9", - ) - .unwrap(), Address::from_str( + )?, Address::from_str( "atest1v4ehgw36xqmr2d3nx3ryvd2xxgmrq33j8qcns33sxezrgv6zxdzrydjrxveygd2yxumrsdpsf9jc2p", - ) - .unwrap()]); + )?]); let mut result = vec![]; for token in tokens { - let balances = get_token_balance(&self.client, &token, &owner).await; + let balances = get_token_balance(&self.client, &token, &owner).await?; result.push((token, balances)); } - result + + Ok(result) } /// Queries shielded balance for a given extended viewing key @@ -246,7 +246,7 @@ impl Query { async fn query_shielded_balance( &self, xvk: ExtendedViewingKey, - ) -> Vec<(Address, token::Amount)> { + ) -> Result, JsError> { let viewing_key = ExtendedFullViewingKey::from(xvk).fvk.vk; // We are recreating shielded context to avoid multiple mutable borrows let mut shielded: ShieldedContext = ShieldedContext::default(); @@ -257,17 +257,18 @@ impl Query { .map(|fvk| ExtendedFullViewingKey::from(*fvk).fvk.vk) .collect(); - shielded.fetch(&self.client, &[], &fvks).await; + shielded.fetch(&self.client, &[], &fvks).await?; - let epoch = namada::ledger::rpc::query_epoch(&self.client).await; + let epoch = namada::ledger::rpc::query_epoch(&self.client).await?; let balance = shielded .compute_exchanged_balance(&self.client, &viewing_key, epoch) - .await + .await? .expect("context should contain viewing key"); - let balance = Amount::from(balance); - let decoded_balance = shielded.decode_amount(&self.client, balance, epoch).await; + let decoded_balance = shielded + .decode_amount(&self.client, I128Sum::from(balance), epoch) + .await; - Self::get_decoded_balance(decoded_balance) + Ok(Self::get_decoded_balance(decoded_balance)) } pub async fn query_balance(&self, owner: String) -> Result { @@ -277,7 +278,7 @@ impl Query { Ok(xvk) => self.query_shielded_balance(xvk).await, Err(e2) => return Err(JsError::new(&format!("{} {}", e1, e2))), }, - }; + }?; let result: Vec<(Address, String)> = result .into_iter() .map(|(addr, amount)| (addr, amount.to_string_native())) @@ -288,7 +289,7 @@ impl Query { pub async fn query_public_key(&self, address: &str) -> Result { let addr = Address::from_str(address).map_err(JsError::from)?; - let pk = get_public_key(&self.client, &addr).await; + let pk = get_public_key_at(&self.client, &addr, 0).await?; let result = match pk { Some(v) => Some(v.to_string()), diff --git a/packages/shared/lib/src/sdk/mod.rs b/packages/shared/lib/src/sdk/mod.rs index 4597f6016a..a1375ffac2 100644 --- a/packages/shared/lib/src/sdk/mod.rs +++ b/packages/shared/lib/src/sdk/mod.rs @@ -1,3 +1,5 @@ +use std::str::FromStr; + use crate::utils::to_js_result; use crate::{ rpc_client::HttpClient, @@ -5,6 +7,8 @@ use crate::{ utils::{set_panic_hook, to_bytes}, }; use borsh::{BorshDeserialize, BorshSerialize}; +use namada::ledger::signing::SigningTxData; +use namada::types::address::Address; use namada::{ ledger::{ args, @@ -106,53 +110,46 @@ impl Sdk { wallet::add_spending_key(&mut self.wallet, xsk, password, alias) } - async fn submit_reveal_pk( - &mut self, - args: &args::Tx, - mut tx: Tx, - pk: &PublicKey, - ) -> Result<(), JsError> { - // Build a transaction to reveal the signer of this transaction - let reveal_pk = namada::ledger::tx::build_reveal_pk( - &self.client, - &mut self.wallet, - args::RevealPk { - tx: args.clone(), - public_key: pk.clone(), - }, - ) - .await?; - - // Sign and submit reveal pk - if let Some((mut rtx, _, _)) = reveal_pk { - // Sign the reveal public key transaction with the fee payer - signing::sign_tx(&mut self.wallet, &mut rtx, &args, &pk).await?; - // Submit the reveal public key transaction first - namada::ledger::tx::process_tx(&self.client, &mut self.wallet, &args, rtx).await?; - // Update the stateful PoW challenge of the outer transaction - #[cfg(not(feature = "mainnet"))] - signing::update_pow_challenge(&self.client, &args, &mut tx, &pk, false).await; - } - - Ok(()) - } - /// Sign and submit transactions async fn sign_and_process_tx( &mut self, args: args::Tx, mut tx: Tx, - pk: PublicKey, + signing_data: SigningTxData, + is_faucet_transfer: bool, ) -> Result<(), JsError> { - let signer = &args.signer; - - // Submit a reveal pk tx if necessary - if *signer == None { - self.submit_reveal_pk(&args, tx.clone(), &pk).await?; + // We are revealing the signer of this transaction(if needed) + // We only support one signer(for now) + let pk = &signing_data + .public_keys + .clone() + .into_iter() + .nth(0) + .expect("No public key provided"); + + let address = Address::from(pk); + + if !is_faucet_transfer + && namada::ledger::tx::is_reveal_pk_needed(&self.client, &address, false).await? + { + let (mut tx, _) = namada::ledger::tx::build_reveal_pk( + &self.client, + &mut self.wallet, + &mut self.shielded_ctx, + &args, + &address, + &pk, + &signing_data.fee_payer, + ) + .await?; + + signing::sign_tx(&mut self.wallet, &args, &mut tx, signing_data.clone())?; + + namada::ledger::tx::process_tx(&self.client, &mut self.wallet, &args, tx).await?; } // Sign tx - signing::sign_tx(&mut self.wallet, &mut tx, &args, &pk).await?; + signing::sign_tx(&mut self.wallet, &args, &mut tx, signing_data.clone())?; // Submit tx namada::ledger::tx::process_tx(&self.client, &mut self.wallet, &args, tx).await?; @@ -177,14 +174,30 @@ impl Sdk { } /// Build transaction for specified type, return bytes to client - pub async fn build_tx(&mut self, tx_type: TxType, tx_msg: &[u8]) -> Result { + pub async fn build_tx( + &mut self, + tx_type: TxType, + tx_msg: &[u8], + gas_payer: String, + ) -> Result { + //TODO: verify if this works + // We prefix 00 because PublicKey is an enum. TODO: fix when ledger is updated to handle + // payment addresses + let gas_payer = PublicKey::from_str(&format!("00{}", gas_payer))?; + let tx = match tx_type { TxType::Bond => { - let args = tx::bond_tx_args(tx_msg, None)?; - let bond = - namada::ledger::tx::build_bond(&self.client, &mut self.wallet, args.clone()) - .await?; - bond.0 + let (args, _) = tx::bond_tx_args(tx_msg, None)?; + let (bond, _) = namada::ledger::tx::build_bond( + &self.client, + &mut self.wallet, + &mut self.shielded_ctx, + args.clone(), + gas_payer, + ) + .await + .map_err(JsError::from)?; + bond } TxType::RevealPK => { let args = tx::tx_args_from_slice(tx_msg)?; @@ -198,62 +211,70 @@ impl Sdk { } }; - let reveal_pk = namada::ledger::tx::build_reveal_pk( + let address = Address::from(&public_key); + + let (reveal_pk, _) = namada::ledger::tx::build_reveal_pk( &self.client, &mut self.wallet, - args::RevealPk { - tx: args.clone(), - public_key, - }, + &mut self.shielded_ctx, + &args.clone(), + &address, + &public_key, + &gas_payer, ) .await?; - match reveal_pk { - Some(v) => v.0, - None => { - return Err(JsError::new( - "Attempted to build reveal pk for existing public key!", - )) - } - } + reveal_pk } TxType::Transfer => { - let args = tx::transfer_tx_args(tx_msg, None, None)?; - let transfer = namada::ledger::tx::build_transfer( + let (args, _faucet_signer) = tx::transfer_tx_args(tx_msg, None, None)?; + let (tx, _) = namada::ledger::tx::build_transfer( &self.client, &mut self.wallet, &mut self.shielded_ctx, args.clone(), + gas_payer, ) .await?; - transfer.0 + tx } TxType::IBCTransfer => { - let args = tx::ibc_transfer_tx_args(tx_msg, None)?; - let ibc_transfer = namada::ledger::tx::build_ibc_transfer( + let (args, _faucet_signer) = tx::ibc_transfer_tx_args(tx_msg, None)?; + + let (tx, _) = namada::ledger::tx::build_ibc_transfer( &self.client, &mut self.wallet, + &mut self.shielded_ctx, args.clone(), + gas_payer, ) .await?; - ibc_transfer.0 + tx } TxType::Unbond => { - let args = tx::unbond_tx_args(tx_msg, None)?; - let unbond = - namada::ledger::tx::build_unbond(&self.client, &mut self.wallet, args.clone()) - .await?; - unbond.0 + let (args, _faucet_signer) = tx::unbond_tx_args(tx_msg, None)?; + let (tx, _, _) = namada::ledger::tx::build_unbond( + &self.client, + &mut self.wallet, + &mut self.shielded_ctx, + args.clone(), + gas_payer, + ) + .await?; + tx } TxType::Withdraw => { - let args = tx::withdraw_tx_args(tx_msg, None)?; - let unbond = namada::ledger::tx::build_withdraw( + let (args, _faucet_signer) = tx::withdraw_tx_args(tx_msg, None)?; + let (withdraw, _) = namada::ledger::tx::build_withdraw( &self.client, &mut self.wallet, + &mut self.shielded_ctx, args.clone(), + gas_payer, ) .await?; - unbond.0 + + withdraw } }; @@ -302,16 +323,30 @@ impl Sdk { password: Option, xsk: Option, ) -> Result<(), JsError> { - let args = tx::transfer_tx_args(tx_msg, password, xsk)?; - let (tx, _, pk, _, _) = namada::ledger::tx::build_transfer( + let (args, faucet_signer) = tx::transfer_tx_args(tx_msg, password, xsk)?; + let effective_address = args.source.effective_address(); + let default_signer = faucet_signer.clone().or(Some(effective_address.clone())); + + let signing_data = signing::aux_signing_data( + &self.client, + &mut self.wallet, + &args.tx.clone(), + &Some(effective_address.clone()), + default_signer, + ) + .await?; + + let (tx, _) = namada::ledger::tx::build_transfer( &self.client, &mut self.wallet, &mut self.shielded_ctx, args.clone(), + signing_data.fee_payer.clone(), ) .await?; - self.sign_and_process_tx(args.tx, tx, pk).await?; + self.sign_and_process_tx(args.tx, tx, signing_data, faucet_signer.is_some()) + .await?; Ok(()) } @@ -321,13 +356,30 @@ impl Sdk { tx_msg: &[u8], password: Option, ) -> Result<(), JsError> { - let args = tx::ibc_transfer_tx_args(tx_msg, password)?; + let (args, faucet_signer) = tx::ibc_transfer_tx_args(tx_msg, password)?; + let source = args.source.clone(); + let default_signer = faucet_signer.clone().or(Some(source.clone())); - let (tx, _, pk) = - namada::ledger::tx::build_ibc_transfer(&self.client, &mut self.wallet, args.clone()) - .await?; + let signing_data = signing::aux_signing_data( + &self.client, + &mut self.wallet, + &args.tx.clone(), + &Some(source.clone()), + default_signer, + ) + .await?; + + let (tx, _) = namada::ledger::tx::build_ibc_transfer( + &self.client, + &mut self.wallet, + &mut self.shielded_ctx, + args.clone(), + signing_data.fee_payer.clone(), + ) + .await?; - self.sign_and_process_tx(args.tx, tx, pk).await?; + self.sign_and_process_tx(args.tx, tx, signing_data, faucet_signer.is_some()) + .await?; Ok(()) } @@ -337,13 +389,30 @@ impl Sdk { tx_msg: &[u8], password: Option, ) -> Result<(), JsError> { - let args = tx::bond_tx_args(tx_msg, password)?; + let (args, faucet_signer) = tx::bond_tx_args(tx_msg, password)?; + let source = args.source.clone(); + let default_signer = faucet_signer.clone().or(source.clone()); - let (tx, _, pk) = - namada::ledger::tx::build_bond(&mut self.client, &mut self.wallet, args.clone()) - .await?; + let signing_data = signing::aux_signing_data( + &self.client, + &mut self.wallet, + &args.tx.clone(), + &source, + default_signer, + ) + .await?; - self.sign_and_process_tx(args.tx, tx, pk).await?; + let (tx, _) = namada::ledger::tx::build_bond( + &mut self.client, + &mut self.wallet, + &mut self.shielded_ctx, + args.clone(), + signing_data.fee_payer.clone(), + ) + .await?; + + self.sign_and_process_tx(args.tx, tx, signing_data, faucet_signer.is_some()) + .await?; Ok(()) } @@ -354,13 +423,29 @@ impl Sdk { tx_msg: &[u8], password: Option, ) -> Result<(), JsError> { - let args = tx::unbond_tx_args(tx_msg, password)?; + let (args, faucet_signer) = tx::unbond_tx_args(tx_msg, password)?; + let source = args.source.clone(); + let default_signer = faucet_signer.clone().or(source.clone()); + let signing_data = signing::aux_signing_data( + &self.client, + &mut self.wallet, + &args.tx.clone(), + &source, + default_signer, + ) + .await?; - let (tx, _, pk, _) = - namada::ledger::tx::build_unbond(&mut self.client, &mut self.wallet, args.clone()) - .await?; + let (tx, _, _) = namada::ledger::tx::build_unbond( + &mut self.client, + &mut self.wallet, + &mut self.shielded_ctx, + args.clone(), + signing_data.fee_payer.clone(), + ) + .await?; - self.sign_and_process_tx(args.tx, tx, pk).await?; + self.sign_and_process_tx(args.tx, tx, signing_data, faucet_signer.is_some()) + .await?; Ok(()) } @@ -370,13 +455,29 @@ impl Sdk { tx_msg: &[u8], password: Option, ) -> Result<(), JsError> { - let args = tx::withdraw_tx_args(tx_msg, password)?; + let (args, faucet_signer) = tx::withdraw_tx_args(tx_msg, password)?; + let source = args.source.clone(); + let default_signer = faucet_signer.clone().or(source.clone()); + let signing_data = signing::aux_signing_data( + &self.client, + &mut self.wallet, + &args.tx.clone(), + &source, + default_signer, + ) + .await?; - let (tx, _, pk) = - namada::ledger::tx::build_withdraw(&mut self.client, &mut self.wallet, args.clone()) - .await?; + let (tx, _) = namada::ledger::tx::build_withdraw( + &mut self.client, + &mut self.wallet, + &mut self.shielded_ctx, + args.clone(), + signing_data.fee_payer.clone(), + ) + .await?; - self.sign_and_process_tx(args.tx, tx, pk).await?; + self.sign_and_process_tx(args.tx, tx, signing_data, faucet_signer.is_some()) + .await?; Ok(()) } diff --git a/packages/shared/lib/src/sdk/tx.rs b/packages/shared/lib/src/sdk/tx.rs index 63c8c18b37..efb2aa49b9 100644 --- a/packages/shared/lib/src/sdk/tx.rs +++ b/packages/shared/lib/src/sdk/tx.rs @@ -46,7 +46,10 @@ pub struct SubmitBondMsg { /// /// Returns JsError if the tx_msg can't be deserialized or /// Rust structs can't be created. -pub fn bond_tx_args(tx_msg: &[u8], password: Option) -> Result { +pub fn bond_tx_args( + tx_msg: &[u8], + password: Option, +) -> Result<(args::Bond, Option
), JsError> { let tx_msg = SubmitBondMsg::try_from_slice(tx_msg)?; let SubmitBondMsg { @@ -61,9 +64,10 @@ pub fn bond_tx_args(tx_msg: &[u8], password: Option) -> Result) -> Result) -> Result { +pub fn unbond_tx_args( + tx_msg: &[u8], + password: Option, +) -> Result<(args::Unbond, Option
), JsError> { let tx_msg = SubmitUnbondMsg::try_from_slice(tx_msg)?; let SubmitUnbondMsg { @@ -107,15 +114,17 @@ pub fn unbond_tx_args(tx_msg: &[u8], password: Option) -> Result, -) -> Result { +) -> Result<(args::Withdraw, Option
), JsError> { let tx_msg = SubmitWithdrawMsg::try_from_slice(tx_msg)?; let SubmitWithdrawMsg { @@ -150,15 +159,16 @@ pub fn withdraw_tx_args( let source = Address::from_str(&source)?; let validator = Address::from_str(&validator)?; + let (tx, faucet_signer) = tx_msg_into_args(tx, password)?; let args = args::Withdraw { - tx: tx_msg_into_args(tx, password)?, + tx, validator, source: Some(source), tx_code_path: PathBuf::from("tx_withdraw.wasm"), }; - Ok(args) + Ok((args, faucet_signer)) } #[derive(BorshSerialize, BorshDeserialize)] @@ -186,7 +196,7 @@ pub fn transfer_tx_args( tx_msg: &[u8], password: Option, xsk: Option, -) -> Result { +) -> Result<(args::TxTransfer, Option
), JsError> { let tx_msg = SubmitTransferMsg::try_from_slice(tx_msg)?; let SubmitTransferMsg { tx, @@ -223,12 +233,12 @@ pub fn transfer_tx_args( let native_token = Address::from_str(&native_token)?; let token = Address::from_str(&token)?; - let amount_str = amount.to_string(); - let denom_amount = DenominatedAmount::from_str(&amount_str).expect("Amount to be valid."); + let denom_amount = DenominatedAmount::from_str(&amount).expect("Amount to be valid."); let amount = InputAmount::Unvalidated(denom_amount); + let (tx, faucet_signer) = tx_msg_into_args(tx, password)?; let args = args::TxTransfer { - tx: tx_msg_into_args(tx, password)?, + tx, source, target, token, @@ -236,7 +246,8 @@ pub fn transfer_tx_args( native_token, tx_code_path: PathBuf::from("tx_transfer.wasm"), }; - Ok(args) + + Ok((args, faucet_signer)) } #[derive(BorshSerialize, BorshDeserialize)] @@ -266,7 +277,7 @@ pub struct SubmitIbcTransferMsg { pub fn ibc_transfer_tx_args( tx_msg: &[u8], password: Option, -) -> Result { +) -> Result<(args::TxIbcTransfer, Option
), JsError> { let tx_msg = SubmitIbcTransferMsg::try_from_slice(tx_msg)?; let SubmitIbcTransferMsg { tx, @@ -282,14 +293,15 @@ pub fn ibc_transfer_tx_args( let source = Address::from_str(&source)?; let token = Address::from_str(&token)?; - let amount: Amount = DenominatedAmount::from_str(&amount) - .expect(format!("Amount has to be valid. Received {}", amount).as_str()) - .into(); + let denom_amount = DenominatedAmount::from_str(&amount).expect("Amount to be valid."); + let amount = InputAmount::Unvalidated(denom_amount); let port_id = PortId::from_str(&port_id).expect("Port id to be valid"); let channel_id = ChannelId::from_str(&channel_id).expect("Channel id to be valid"); + let (tx, faucet_signer) = tx_msg_into_args(tx, password)?; let args = args::TxIbcTransfer { - tx: tx_msg_into_args(tx, password)?, + tx, + memo: None, source, receiver, token, @@ -300,12 +312,13 @@ pub fn ibc_transfer_tx_args( timeout_sec_offset, tx_code_path: PathBuf::from("tx_ibc.wasm"), }; - Ok(args) + + Ok((args, faucet_signer)) } pub fn tx_args_from_slice(tx_msg_bytes: &[u8]) -> Result { let tx_msg = TxMsg::try_from_slice(tx_msg_bytes)?; - let args = tx_msg_into_args(tx_msg, None)?; + let (args, _) = tx_msg_into_args(tx_msg, None)?; Ok(args) } @@ -321,7 +334,10 @@ pub fn tx_args_from_slice(tx_msg_bytes: &[u8]) -> Result { /// # Errors /// /// Returns JsError if token address is invalid. -fn tx_msg_into_args(tx_msg: TxMsg, password: Option) -> Result { +fn tx_msg_into_args( + tx_msg: TxMsg, + password: Option, +) -> Result<(args::Tx, Option
), JsError> { let TxMsg { token, fee_amount, @@ -338,9 +354,6 @@ fn tx_msg_into_args(tx_msg: TxMsg, password: Option) -> Result { let pk = PublicKey::from_str(&v)?; @@ -348,29 +361,32 @@ fn tx_msg_into_args(tx_msg: TxMsg, password: Option) -> Result None, }; - let signer = match signer { - Some(v) => Some(Address::from_str(&v)?), - _ => None, - }; + let signer = signer.map(|v| Address::from_str(&v).ok()).flatten(); let args = args::Tx { dry_run: false, + dry_run_wrapper: false, + disposable_signing_key: false, dump_tx: false, force: false, broadcast_only: false, ledger_address: (), wallet_alias_force: false, initialized_account_alias: None, - fee_amount: fee_input_amount, + fee_amount: Some(fee_input_amount), fee_token: token.clone(), - gas_limit: GasLimit::from(gas_limit), + fee_unshield: None, + gas_limit: GasLimit::from_str(&gas_limit).expect("Gas limit to be valid"), + wrapper_fee_payer: None, + output_folder: None, expiration: None, chain_id: Some(ChainId(String::from(chain_id))), - signing_key: None, - signer, + signatures: vec![], + signing_keys: vec![], tx_reveal_code_path: PathBuf::from("tx_reveal_pk.wasm"), verification_key: public_key, password, }; - Ok(args) + + Ok((args, signer)) } diff --git a/packages/types/src/namada.ts b/packages/types/src/namada.ts index 40f3586124..e8916e3489 100644 --- a/packages/types/src/namada.ts +++ b/packages/types/src/namada.ts @@ -18,10 +18,6 @@ export interface Namada { submitWithdraw: (props: TxMsgProps) => Promise; submitTransfer: (props: TxMsgProps) => Promise; submitIbcTransfer: (props: TxMsgProps) => Promise; - encodeInitAccount: (props: { - txMsg: string; - address: string; - }) => Promise; version: () => string; } diff --git a/packages/types/src/signer.ts b/packages/types/src/signer.ts index f70074c599..5bfe187828 100644 --- a/packages/types/src/signer.ts +++ b/packages/types/src/signer.ts @@ -1,7 +1,6 @@ import { Account, AccountType } from "./account"; import { IbcTransferProps, - InitAccountProps, SubmitBondProps, SubmitUnbondProps, SubmitWithdrawProps, @@ -15,8 +14,4 @@ export interface Signer { submitWithdraw(args: SubmitWithdrawProps, type: AccountType): Promise; submitTransfer(args: TransferProps, type: AccountType): Promise; submitIbcTransfer(args: IbcTransferProps, type: AccountType): Promise; - encodeInitAccount( - args: InitAccountProps, - signer: string - ): Promise; } diff --git a/packages/types/src/tx/schema/account.ts b/packages/types/src/tx/schema/account.ts deleted file mode 100644 index 9f7c2884ca..0000000000 --- a/packages/types/src/tx/schema/account.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* eslint-disable @typescript-eslint/no-unused-vars */ -import { field, vec } from "@dao-xyz/borsh"; - -export class AccountMsgValue { - @field({ type: vec("u8") }) - vpCode!: Uint8Array; - - constructor(data: AccountMsgValue) { - Object.assign(this, data); - } -} diff --git a/packages/types/src/tx/schema/index.ts b/packages/types/src/tx/schema/index.ts index 26b0574489..b7f514b7dd 100644 --- a/packages/types/src/tx/schema/index.ts +++ b/packages/types/src/tx/schema/index.ts @@ -1,4 +1,3 @@ -export * from "./account"; export * from "./ibcTransfer"; export * from "./transfer"; export * from "./bond"; @@ -7,7 +6,6 @@ export * from "./unbond"; export * from "./withdraw"; export * from "./tx"; -import { AccountMsgValue } from "./account"; import { IbcTransferMsgValue } from "./ibcTransfer"; import { TransferMsgValue } from "./transfer"; import { SubmitBondMsgValue } from "./bond"; @@ -17,7 +15,6 @@ import { SignatureMsgValue } from "./signature"; import { TxMsgValue } from "./tx"; export type Schema = - | AccountMsgValue | IbcTransferMsgValue | TransferMsgValue | SubmitBondMsgValue diff --git a/packages/types/src/tx/types.ts b/packages/types/src/tx/types.ts index 9f169ca066..08589349de 100644 --- a/packages/types/src/tx/types.ts +++ b/packages/types/src/tx/types.ts @@ -65,10 +65,6 @@ export type BridgeTransferProps = { amount: BigNumber; }; -export type InitAccountProps = { - vpCode: Uint8Array; -}; - export type SignatureProps = { salt: Uint8Array; indices: Uint8Array; diff --git a/specs/interface/transparent-transactions.md b/specs/interface/transparent-transactions.md index fb81aeae54..572b7d98e7 100644 --- a/specs/interface/transparent-transactions.md +++ b/specs/interface/transparent-transactions.md @@ -188,26 +188,6 @@ Ok(Transaction { _In namada CLI:_ https://github.com/anoma/namada/blob/f6e78278608aaef253617885bb7ef95a50057268/apps/src/lib/client/tx.rs#L810-L814 -## Part 2 - Initialize Account Transaction - -Constructing an Initialize Account transaction follows a similar process to a transfer, however, in addition to providing a `tx_init_account` wasm, we need to provide the `vp_user` wasm as well, as this is required when constructing the transaction: - -```rust -// namada-lib/src/account.rs - -let vp_code: Vec = vp_code.to_vec(); -let keypair = &Keypair::deserialize(serialized_keypair.clone()) - .expect("Keypair could not be deserialized"); -let public_key = PublicKey::from(keypair.0.public.clone()); - -let data = InitAccount { - public_key, - vp_code: vp_code.clone(), -}; -``` - -Following this, we will pass `data` into to our new transaction as before, along with `tx_code` and required values for `WrapperTx`, returning the final result in a `JsValue` containing the transaction hash and returned byte array. - ## Submitting Transparent Transactions See [RPC](./rpc.md) for more information on HTTP and WebSocket RPC interaction with ledger.