-
Notifications
You must be signed in to change notification settings - Fork 98
feat: secp256k1 account #2598
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
feat: secp256k1 account #2598
Changes from 4 commits
8386e4f
724ed4b
ff1faf6
d1cf191
091dd28
4dcd051
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| -----BEGIN EC PRIVATE KEY----- | ||
| MHQCAQEEICJxApEbuZznKFpV+VKACRK30i6+7u5Z13/DOl18cIC+oAcGBSuBBAAK | ||
| oUQDQgAEPas6Iag4TUx+Uop+3NhE6s3FlayFtbwdhRVjvOar0kPTfE/N8N6btRnd | ||
| 74ly5xXEBNSXiENyxhEuzOZrIWMCNQ== | ||
| -----END EC PRIVATE KEY----- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -179,4 +179,33 @@ pub const SNS_CANISTERS: [&SnsCanisterInstallation; 5] = [ | |
| ]; | ||
|
|
||
| /// Test account with well known public & private keys, used in NNS_LEDGER, NNS_DAPP and third party projects. | ||
| pub const TEST_ACCOUNT: &str = "5b315d2f6702cb3a27d826161797d7b2c2e131cd312aece51d4d5574d1247087"; | ||
| /// The keys use the ED25519 curve, used for BasicIdentity on th eInternet Computer. | ||
| /// The keys are as follows, in the tweetnacl format used by agent-js: | ||
| /// ``` | ||
| /// const publicKey = "Uu8wv55BKmk9ZErr6OIt5XR1kpEGXcOSOC1OYzrAwuk="; | ||
| /// const privateKey = | ||
| /// "N3HB8Hh2PrWqhWH2Qqgr1vbU9T3gb1zgdBD8ZOdlQnVS7zC/nkEqaT1kSuvo4i3ldHWSkQZdw5I4LU5jOsDC6Q=="; | ||
| /// const identity = Ed25519KeyIdentity.fromKeyPair( | ||
| /// base64ToUInt8Array(publicKey), | ||
| /// base64ToUInt8Array(privateKey) | ||
| /// ); | ||
| /// ``` | ||
| pub const ED25519_TEST_ACCOUNT: &str = | ||
| "5b315d2f6702cb3a27d826161797d7b2c2e131cd312aece51d4d5574d1247087"; | ||
|
|
||
| /// Test account for command line usage. The test account is typically called ident-1 | ||
| /// The keys use the secp256k1 curve. To use: | ||
| /// ``` | ||
| /// $ cat ~/.config/dfx/identity/ident-1/identity.pem | ||
| /// -----BEGIN EC PRIVATE KEY----- | ||
| /// MHQCAQEEICJxApEbuZznKFpV+VKACRK30i6+7u5Z13/DOl18cIC+oAcGBSuBBAAK | ||
| /// oUQDQgAEPas6Iag4TUx+Uop+3NhE6s3FlayFtbwdhRVjvOar0kPTfE/N8N6btRnd | ||
| /// 74ly5xXEBNSXiENyxhEuzOZrIWMCNQ== | ||
| /// -----END EC PRIVATE KEY----- | ||
| /// ``` | ||
| /// The test account should match the output of: | ||
| /// ``` | ||
| /// $ dfx --identity ident-1 ledger account-id | ||
| /// ``` | ||
| pub const SECP256K1_TEST_ACCOUNT: &str = | ||
| "2b8fbde99de881f695f279d2a892b1137bfe81a42d7694e064b1be58701e1138"; | ||
|
Comment on lines
+192
to
+221
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How about using the anonymous identity for this? It's present for all dfx installations already so the key doesn't have to be imported
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This way normal API calls can be used. In this PR the secp256k1 key matches the existing ed25519 account (5b...), where it is also the case that code needs to have and use the secret key explicitly. It is a "no magic" philosophy. That said, if we did initialize the anonymous identity with ICP, how would this work? What is the account ID of the anonymous identity and what dfx call would transfer funds from the anonymous identity to another? Does the anonymous account use secp256k1? I mean, there might well be a use case for giving the anonymous ID funds but we would probably want to check the ramifications. In the case of the pre-populated ed25519 the account can be, and is, used like any other account. The idea was to do the same here. We can change the current approach but is that what we want?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. NVM, I stand corrected: I just tried it out, and the anonymous principal did receive ICP, but is not allowed to send:
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Interesting. Thank you for looking. I didn't know about |
||
Uh oh!
There was an error while loading. Please reload this page.