algorand / go-algorand-sdk

Algorand Golang SDK

Home Page:https://pkg.go.dev/github.com/algorand/go-algorand-sdk/v2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support attaching signatures to transactions

jasonpaulos opened this issue · comments

Summary

This SDK has the ability to create a signed transaction given a private key using the SignTransaction function from the crypto package. However, we should also support use cases where the SDK does not have access the private key, such as if the key is on another system or stored in a hardware wallet.

We can support this by providing a function which creates a signed transaction based on an arbitrary signature, which can be computed elsewhere.

Scope

I propose creating the following new function in the crypto package:

  • AttachTransactionSignature(tx types.Transaction, signer types.Address, signature []byte) (txid string, stxBytes []byte)
    • Create a signed transaction using an existing signature. This would be very similar to the existing SignTransaction function, except it accepts the signature as an input. And if signer is not the same as the sender of the transaction, the AuthAddr field should be set on the signed transaction.