-
Notifications
You must be signed in to change notification settings - Fork 573
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Staging -> Master #4752
Merged
Merged
Staging -> Master #4752
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
we should add a new test case for an account encoding each time the encoding changes
* adds BuildTransaction worker job we offload PostTransaction to the worker pool because proof generation is compute intensive and could otherwise bog down the node process creating an UnsignedTransaction using 'build' generates proofs and would create the same problem the new job allows us to offload compute to the worker pool in RPC calls that build UnsignedTransactions * fixes tests
* fixes BuildTransaction worker task uses proofAuthorizingKey instead of proofGenerationKey as input to build changes sizes of serialization for key change * changes argument name in WorkerPool to proofAuthorizingKey
1. Consensus parameters 2. Genesis block 3. Definition
* updating account value with proofAuthorizationKey * setting up migration * Add headvalue to accountValue migration * adding migration logic: * adding pak to account and bech32 * changing proofAuthorizationKey to proofAuthorizingKey * adding proof aurthorizing key to types and mnemonic * adding default null value to proof authorizing key to previous migrations * fixing lint issues * updating wallet test slow * adding key length to bech32 encoder * adding flag for pak to bech32 * reverting fixture changes * simplifying migration * adding to list of all migrations * bech32 decoder v3 * bech32 decoder v3 * bech32 test for proof authorizing key * updating account schema version * fixing typos * reverting blockchain test fixture * adding pak import testcases * moving proof authorizing key to the back of the account * moving proof authorizing key to the back of the account
* Move Consensus into Network * Change constructor to positional args * Move parameter copy to network * Change miningReward to use consensus parameters
* feat(ironfish): Add public key package without tests * feat(ironfish): Update RpcAccountImport to have undefined multisig * feat(ironfish): Update multiSigKeys to be undefined * test(ironfish): Add test for multisig encoder * refactor(ironfish): Remove un-needed key in exportAccount * refactor(ironfish): Clean up lint * refactor(ironfish): Clean up deserializeRpcAccountMultiSigKeys * refactor(ironfish): Clean up * feat(ironfish): Make public key package required * refactor(ironfish): Remove unused import * fix(ironfish): Check for all signer fields * refactor(ironfish): Remove nullable * test(ironfish): Add test cases for import * test(ironfish): Update import tests * feat(ironfish): Remove proofGenerationKey in tests * fix(ironfish): Remove unneeded undefined * refactor(ironfish): Clean up multisig encoder
) * feat(ironfish): Add public key package without tests * feat(ironfish): Update RpcAccountImport to have undefined multisig * feat(ironfish): Update multiSigKeys to be undefined * test(ironfish): Add test for multisig encoder * refactor(ironfish): Remove un-needed key in exportAccount * refactor(ironfish): Clean up lint * refactor(ironfish): Clean up deserializeRpcAccountMultiSigKeys * refactor(ironfish): Clean up * feat(ironfish): Make public key package required * refactor(ironfish): Remove unused import * fix(ironfish): Check for all signer fields * refactor(ironfish): Remove nullable * test(ironfish): Add test cases for import * test(ironfish): Update import tests * feat(ironfish): Remove proofGenerationKey in tests * fix(ironfish): Remove unneeded undefined * refactor(ironfish): Clean up multisig encoder * test(ironfish): Add coordinator account to integration frost test
* adds wallet/buildTransaction RPC buildTransaction takes a serialized RawTransaction and returns a serialized UnsignedTransaction adds a 'build' method to the Wallet. for now, derives proofGenerationKey either from an account's spendingKey or from the account's multiSigKeys. invokes the buildTransaction worker pool task to build a RawTransaction * fixes proofAuthorizingKey TODO * adds test that buildTransaction RPC output can be signed * changes 'transaction' name in request/response uses explicit 'rawTransaction' and 'unsignedTransaction' names
if flag is set uses the wallet/buildTransaction RPC to build the raw transaction to send outputs unsigned transaction as hex string before exiting flag is exclusive to the rawTransaction flag so that the command will output either a rawTransaction or an unsignedTransaction flag is hidden
* remove max signers from secret config * updating typescript generated code * updating usage of napi binding * test utility for creating identifiers * importing create_identifiers for split secret test * removing comment * updating wallet:slow test to remove max signers
* removing max signers from create trusted dealer package rpc * removing max signers from createSigningPackage rpc
* adds multisig/aggregateSignatureShares RPC takes a publicKeyPackage, an unsignedTransaction, a signingPackage for that transaction, and a list of signatureShares for that signingPackage uses UnsignedTransaction.signFrost to aggregate the signatureShares, sign the transaction, and produce a signed transaction returns a signed transaction serialized as hex * fixes typo in RpcClient s/Signature/Signing/ * fixes second typo
…4679) * signing commitment now contains identifier * removing identifiercommitment concept * remove newline * Reverting change to assert is signer * fixing createSigningPackage test
* feat(cli,ironfish): Use base64json instead of bech32 * refactor(cli): Fix unused import * test(ironfish): Update tests * test(ironfish): Add test case for base64json
we are changing a number of multisig RPCs to accept an 'account' parameter in requests we will need to assert that the account passed to each one is a multisig account adds an assertion for convenience that asserts that an account is a multisig account
* changes createSigningShare RPC to take an account name changes the RPC to take an account name as a request parameter instead of a serialized keyPackage loads the account for the given name and asserts that it is a multisig signing account before using the keyPackage from that account this avoids passing a keyPackage, which contains a sensitive secret, from being passed through an RPC request * adds tests for createSigningShare RPC
* accepts account name as input for createSigningCommitment * using AssertMultiSig * asserts that a trusted dealer cannot create a signing commitment * removing node client depedency
…bject with identifier and signature share types (#4691)
* Adds error message to multi sig signer assert 1. Moves the function to the account file 2. Updates test to assert the error message * using with required * Rename to AssertMultiSigSigner * updating test
* chore: add code comment for encryption default nonce * lint fix --------- Co-authored-by: Rahul Patni <[email protected]>
* large prompt for account import * repeat until user passes an input * large prompt follows cli ux required interface * using recursion * creating readline interface out of the recursive loop * updates to use recursive method * fixing import name --------- Co-authored-by: Joe <[email protected]>
* ux improvements for multisig command inputs * large prompt to long prompt
commit 619a539 updated the wallet to support minting an asset and sending the minted notes in the same transaction we have a test that relied on an assumption about the number of spends in a transaction that both minted and burned the same asset. we did not update this test to reduce the number of spends in the transaction after changing the sdk behavior to use minted value in outputs of a transaction fixes the test by reducing the number of expected spends
changes 'Identifier' to 'Identity' to match logic changes
* Add a one-time difficulty adjustment when FishHash activates * pass in consensus directly instead of a bunch of consensus params * move difficulty adjustment into a const
* removes duplicate check for duplicate name in createAccount wallet.createAccount already checks for duplicate names instead of checking in both RPC and wallet sdk, the RPC catches the error that the wallet sdk throws and handles it with the appropriate RPC response * updates test assertion for duplicate account name
* updating fixture * non zero miner fee * updating fixture * resetting numberspush * resetting numbers * moving location of scan transactions to after account import * update comment
…ments The nonces/commitments are built from the secret share, the transaction hash, and the list of signers, so they are unique per transaction and they cannot be accidentally reused to sign multiple transactions.
* Creates a new signing package struct. - Adds unsignedTransaction to the signing package. - This new struct is passed between the rust/ typescript layer instead of the frost SigningPackage. - This change has also led to simplification on the RPC and CLI side for creating signature shares. - Removes the need to pass the transaction hash of the unsigned transaction * removing duplicate try_deserialize_signersimport name * lint fix
* removing unsigned transaction from aggregate signature share * rust lint fix
This way, the list of signers does not have to be repeated in multiple RPC calls.
…ansaction (#4745) * feat(ironfish,rust,rust-nodejs): Return unsigned descriptions * refactor(rust-nodejs): Lint * Update PR feedback
dguenther
approved these changes
Feb 20, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
For version 1.20.0
Testing Plan
Documentation
Does this change require any updates to the Iron Fish Docs (ex. the RPC API
Reference)? If yes, link a
related documentation pull request for the website.
Breaking Change
Is this a breaking change? If yes, add notes below on why this is breaking and
what additional work is required, if any.