Skip to content
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 #4626

Merged
merged 34 commits into from
Jan 29, 2024
Merged

STAGING -> MASTER #4626

merged 34 commits into from
Jan 29, 2024

Conversation

NullSoldier
Copy link
Contributor

No description provided.

danield9tqh and others added 30 commits January 23, 2024 11:52
we use deterministic nonce generation from a seeded RNG

in the future we will use deterministic nonces generated from transaction inputs
(transaction data and participant identities)

since we do not need to save the nonces between rounds we can discard them from
the round one outputs and return only the signing commitments

renames RoundOneSigningData to SigningCommitments
* adding valueToUnspentNoteHashes index

* *getUnspentNotesSortedByValue

* adding getUnspentNotesSortedByValue

* removing previous unspent note function

* adding migration

* adding migration 30

* adding wallet db tests

* test for addSpendsForAsset

* testing unspent notes for a minted asset

* updating fixture

* removing extraneous test

* changing language to reflect unspent notes

* changing fee amount to create notes of different values

* removing load sorted notes from wallet db

* replacing get unspent notes on account

* regenerate fixture and lint

* consolidating unspent note add delete

* regenerating fixtures for walletdb change

* simplifying test

* simplifying migration

* passing reverse directly to unspent note hashes
* importing split secret in lib.rs

* creating identifier list

* converting bytes to hex

* identifiers from u16 to string

* change to for loop for identifier conversion

* using hex key for pgk

* removing proof_generation_key_to_bytes

* unused import

* removing unwrap for creating sapling key

* building artifacts

* removing ironfish frost dependency

---------

Co-authored-by: Joe <[email protected]>
adds binding for 'UnsignedTransaction::signing_package' to create a siging
package from participant signing commitments

returns the SigningPackage serialized as a hex string

the signing package is created from the signing commitments that each
participant generates in round 1. the signing package is then used as an input
for generating signature shares in round 2 and for aggregating signature shares
* intermediate commit: add test, and method with deserialization for keypackage stuff

* adds `sign_frost` method which aggregates signature shares and signed UnsignedTransaction

* review updates
adds napi decorator to generate TypeScript

changes type of seed to u32 to support serialization from TypeScript

changes return type to String
refactors logic for adding spends, outputs, mints, and burns into '_build' to
produce a 'NativeTransaction'

'build' uses '_build' to produce a NativeTransaction then calls 'build' on the
NativeTransaction to produce a serialized UnsignedTransaction

the multisig signing flow will require an UnsignedTransaction for generating a
signing package
* adds frost participant napi bindings

implements ParticipantSecret and ParticipantIdentity to wrap the Secret and
Identity types for participants defined in ironfish-frost

uses 'random' as ParticipantSecret constructor because we haven't implemented
ser/de for Secret

serializes frost Identifier as a hex string rather than defining a napi type for
Identifier

* removes to/fromHex from ParticipantIdentity

we can convert between Buffer and string serialization in TypeScript if
necessary

* fixes frost slow test

* removes unused import

* adds missing newline
* WIP adds integration test for multisig signing

* randomly generating identifiers

* exploses public key randomness unsigned transaction

* rebase

* using ParticipantSecret to generate the identifiers

* fixture update

* removing .only from test

* reverts change to imports

* running linter

* fixing randomness typo

* reusing miner spending key instead of generating new ones for each block

* running linter

---------

Co-authored-by: Hugh Cunningham <[email protected]>
Adds a new PrefixArrayEncoding that will ultimately replace the existing
PrefixEncoding. The goal here is a slightly better syntax.
These timeouts used to exist before I created the standardized testing
suite.
implements 'serialize' and changes constructor to deserialize from buffer

adds separate static 'random' method to generate random secret

updates tests to use 'random' instead of constructor

pins ironfish-frost dependency to 'main' branch from git repo in order to pick
up latest changes
* chore: updates split secret location, also uses key based approach for identifier/keypackage mapping

* add createTrustedDealerKeyPackage rpc
* adds test of simple transaction signing

- creates ProposedTransaction
- builds transaction to create UnsignedTransaction
- signs transaction to create PostedTransaction
- verifies transaction

* replaces unwrap with expect in test_sign_simple
* Adds signingCommitment type and endpoitn

* changing namespace to multisig

* test creates signing commitment

* Adding TODO

We currently pass the seed field in the request body, but this is
eventually going to be removed when we have deterministic nonces
NullSoldier and others added 3 commits January 27, 2024 00:44
* prevents the filestore from throwing an error when an empty file exists

* adds test to confirm empty file works

* removes comment

* Clean up the test a little

* Clean up FileStore.load()

---------

Co-authored-by: Jason Spafford <[email protected]>
@NullSoldier NullSoldier requested a review from a team as a code owner January 28, 2024 23:08
@NullSoldier NullSoldier merged commit a12ebdd into master Jan 29, 2024
27 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants