hedera-sdk-rust
hedera-sdk-rust copied to clipboard
Streamline key and alias specifications for AccountCreateTransaction
Description
New methods need to be added to the SDK in order to streamline account key specifications with considerations for alias.
The following APIs need to be added in AccountCreateTransaction:
key_with_alias(ECDSAKey)- Sets ECDSA private key, derives and sets it's EVM address in the background. Essentially combines the methodskey(Key)+alias(Alias)key_with_alias(Key, ECDSAKey)- Allows for setting the account key and a separate key that the EVM address should be derived from. A user must sign the transaction with both keys for this flow to be successful.key_without_alias(Key)- Explicitly calls out that the alias is not set.
The following APIs need to be deprecated in AccountCreateTransaction:
key(Key)- set the key for theAccountCreateTransaction
Test plan
- When an account is created with an ECDSA key with
key_with_alias, then the created account has the ECDSA key as its key and the ECDSA key as its alias. - When an account is created with a Key and an ECDSA key with
key_with_alias, then the created account has the Key as its key and the ECDSA key as its alias. - When an account is created with a Key with
key_without_alias, then the created account has the Key as its key and no alias.
Example
- Create an account with an ECDSA key using
key_with_alias. - Query the account and verify its key and alias match the ECDSA key.
- Create another account with a Key and an ECDSA key using
key_with_alias. - Query the account and verify its key matches the
Keyand its alias matched the ECDSA key. - Create another account with a Key using
key_without_alias. - Query the account and verify its key matches the
Keyand it has no alias.