-
Notifications
You must be signed in to change notification settings - Fork 12
feat!: MultisigAccount and LogicSig with signer interfaces #465
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
base: decoupling
Are you sure you want to change the base?
Conversation
|
Putting this in draft because I realized lsig and msig are a bit intertwined, so I wil update this PR with lsig changes as well |
354dd4b to
3a4d746
Compare
| authAddress = msigAddr | ||
| } | ||
|
|
||
| const signedTxn: SignedTransaction = { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment says unsigned multisig transaction blob but this function returns a SignedTransaction blob. Can you please confirm?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I updated it in eb9498f
This functions creates the multisig "SignedTransaction" object but without any signatures
This PR started as just multisig, but now also includes logic signatures since they are partly intertwined. Both the lsig and msig abstractions present in algosdk and utils require direct usage of secret keys. The abstractions in this PR work entirely based on signing callbacks. This improves security (secret keys are no longer passed around) and makes multisigs and logicsigs compatible with external KMS.
The following function was also added to make it easy for anyone without Algorand knowledge to generate Algorand-specific signing functions with type safety, auth address handling, and proper domain separation:
It should be noted that this is a fairly significant breaking change for lsigs and msigs but the changes only affect those using in-memory secret keys with these abstractions whcih should hopefully be a small percentage of production code.
TODOs in this PR
Related TODOs in follow up PRs