SmartAccount Factories
NewECDSA and NewMultisigECDSA for SmartAccount
NewECDSASmartAccount
Creates a SmartAccount instance that uses single ECDSA key for signing payload.
| Parameter | Type | Description | 
|---|---|---|
| address | common.Address | Account address. | 
| privateKey | string | The ECDSA private key. | 
| client | *clients.client | The client to connect to. Can be nilfor offline usage. | 
func NewECDSASmartAccount(address common.Address, privateKey string, client *clients.Client) *SmartAccount
Example
privateKey := os.Getenv("PRIVATE_KEY")
address := common.HexToAddress("<ACCOUNT ADDRESS>")
ZkSyncEraProvider := "https://sepolia.era.zksync.dev"
client, err := clients.DialBase(ZkSyncEraProvider)
if err != nil {
  log.Panic(err)
}
defer client.Close()
account := accounts.NewECDSASmartAccount(address, privateKey, client)
NewMultisigECDSASmartAccount
Creates a SmartAccount instance that uses multiple ECDSA keys for signing payloads.
The signature is generated by concatenating signatures created by signing with each key individually.
| Parameter | Type | Description | 
|---|---|---|
| address | common.Address | Account address. | 
| privateKeys | []string | The list of the ECDSA private keys. | 
| client | *clients.Client | The client to connect to. Can be nilfor offline usage. | 
NewMultisigECDSASmartAccount(address common.Address, privateKeys []string, client *clients.Client) *SmartAccount
Example
privateKey1 := os.Getenv("PRIVATE_KEY1")
privateKey2 := os.Getenv("PRIVATE_KEY2")
address := common.HexToAddress("<ACCOUNT ADDRESS>")
ZkSyncEraProvider := "https://sepolia.era.zksync.dev"
client, err := clients.DialBase(ZkSyncEraProvider)
if err != nil {
  log.Panic(err)
}
defer client.Close()
account := accounts.NewMultisigECDSASmartAccount(address, []string{privateKey1, privateKey2}, client)