From d8f0c9f7b725a237a2328eebb7abae071e9fddc8 Mon Sep 17 00:00:00 2001 From: Qiang Zhou Date: Fri, 2 Feb 2024 11:35:38 +0800 Subject: [PATCH 1/3] update nonce Signed-off-by: Qiang Zhou --- cairoVM/cairo.go | 19 +++++++------------ cairoVM/cmd/main.go | 1 - 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/cairoVM/cairo.go b/cairoVM/cairo.go index 4b64b76..1db2938 100644 --- a/cairoVM/cairo.go +++ b/cairoVM/cairo.go @@ -27,18 +27,6 @@ func NewCairoVM(cfg *Config) (*Cairo, error) { if err != nil { return nil, err } - //db, err := pebble.NewMem() - //if err != nil { - // return nil, err - //} - //txn, err := db.NewTransaction(true) - //if err != nil { - // return nil, err - //} - //state := core.NewState(txn) - //cairoFiles := make(map[string]string) - //cairoFiles["data/genesis/NoValidateAccount.sierra.json"] = "data/genesis/NoValidateAccount.casm.json" - //cairoFiles["data/genesis/erc20.sierra.json"] = "data/genesis/erc20.casm.json" state, err := BuildGenesis( []string{ @@ -135,6 +123,13 @@ func (c *Cairo) HandleInvokeTx(tx *core.InvokeTransaction) (*vm.TransactionTrace if err != nil { return nil, err } + nonce, err := c.state.ContractNonce(tx.SenderAddress) + if err != nil { + return nil, err + } + + tx.Nonce = nonce + tx.TransactionHash = txnHash sig, err := c.acc.Sign(context.Background(), txnHash) diff --git a/cairoVM/cmd/main.go b/cairoVM/cmd/main.go index 74aed32..ba76553 100644 --- a/cairoVM/cmd/main.go +++ b/cairoVM/cmd/main.go @@ -9,7 +9,6 @@ import ( "github.com/davecgh/go-spew/spew" "github.com/NethermindEth/juno/core/felt" - // "github.com/NethermindEth/juno/core" ) func main() { From 510c0bffd44ac34a9ce9d64609ef746259a89c94 Mon Sep 17 00:00:00 2001 From: Qiang Zhou Date: Fri, 2 Feb 2024 11:38:59 +0800 Subject: [PATCH 2/3] a little refine Signed-off-by: Qiang Zhou --- cairoVM/cairo.go | 10 ++++++---- cairoVM/deploy.go | 30 ------------------------------ cairoVM/invoke.go | 3 --- 3 files changed, 6 insertions(+), 37 deletions(-) diff --git a/cairoVM/cairo.go b/cairoVM/cairo.go index 1db2938..8245f86 100644 --- a/cairoVM/cairo.go +++ b/cairoVM/cairo.go @@ -119,10 +119,7 @@ func (c *Cairo) HandleInvokeTx(tx *core.InvokeTransaction) (*vm.TransactionTrace fmt.Println("---------- Invoke TX ----------") tx.MaxFee = c.MaxFee tx.SenderAddress = &felt.Zero - txnHash, err := core.TransactionHash(tx, c.cfg.Network) - if err != nil { - return nil, err - } + nonce, err := c.state.ContractNonce(tx.SenderAddress) if err != nil { return nil, err @@ -130,6 +127,11 @@ func (c *Cairo) HandleInvokeTx(tx *core.InvokeTransaction) (*vm.TransactionTrace tx.Nonce = nonce + txnHash, err := core.TransactionHash(tx, c.cfg.Network) + if err != nil { + return nil, err + } + tx.TransactionHash = txnHash sig, err := c.acc.Sign(context.Background(), txnHash) diff --git a/cairoVM/deploy.go b/cairoVM/deploy.go index c66ff12..6a5ad40 100644 --- a/cairoVM/deploy.go +++ b/cairoVM/deploy.go @@ -58,13 +58,6 @@ func NewDeployCool() (*core.InvokeTransaction, error) { } func NewDeployInvokeTest() (*core.InvokeTransaction, error) { - //InvokeTx := rpc.InvokeTxnV1{ - // Version: rpc.TransactionV1, - // Type: rpc.TransactionType_Invoke, - //} - - // Converting the contractAddress from hex to felt - // contractAddress := new(felt.Felt).SetUint64(2) contractAddress, _ := new(felt.Felt).SetString("0x7f2f788bcd85c25ece505a4fe359c577be77841c5afb971648af03391e5e834") params := new(felt.Felt).SetUint64(9099) @@ -79,10 +72,7 @@ func NewDeployInvokeTest() (*core.InvokeTransaction, error) { fmt.Println("invoke calldata = ", txCallData) - nonce := new(felt.Felt).SetUint64(3) tx := core.InvokeTransaction{ - Nonce: nonce, - MaxFee: &felt.Zero, Version: new(core.TransactionVersion).SetUint64(1), ContractAddress: contractAddress, EntryPointSelector: utils.GetSelectorFromNameFelt(contractMethod), @@ -95,12 +85,6 @@ func NewDeployInvokeTest() (*core.InvokeTransaction, error) { } func NewDeployCoolOld() (*core.InvokeTransaction, error) { - //InvokeTx := rpc.InvokeTxnV1{ - // Version: rpc.TransactionV1, - // Type: rpc.TransactionType_Invoke, - //} - - // using UniversalDeploy address contractAddress := new(felt.Felt).SetUint64(1) classHash, _ := new(felt.Felt).SetString("0x47f93257c3a6e42fc71162a646b3223dfad27c2d994f97f333492c66e31b8c8") @@ -125,10 +109,7 @@ func NewDeployCoolOld() (*core.InvokeTransaction, error) { fmt.Println("invoke calldata = ", txCallData) - nonce := new(felt.Felt).SetUint64(4) tx := core.InvokeTransaction{ - Nonce: nonce, - MaxFee: &felt.Zero, Version: new(core.TransactionVersion).SetUint64(1), ContractAddress: contractAddress, EntryPointSelector: utils.GetSelectorFromNameFelt(deployContractMethod), @@ -141,13 +122,6 @@ func NewDeployCoolOld() (*core.InvokeTransaction, error) { } func NewDeployInvokeTestCoolOld() (*core.InvokeTransaction, error) { - //InvokeTx := rpc.InvokeTxnV1{ - // Version: rpc.TransactionV1, - // Type: rpc.TransactionType_Invoke, - //} - - // Converting the contractAddress from hex to felt - // contractAddress := new(felt.Felt).SetUint64(2) contractAddress, _ := new(felt.Felt).SetString("0x77fcc62a59a2160f099493fcd0466c526120320c164a62a72c6ac9931db34d9") params := new(felt.Felt).SetUint64(1111) @@ -162,15 +136,11 @@ func NewDeployInvokeTestCoolOld() (*core.InvokeTransaction, error) { fmt.Println("invoke calldata = ", txCallData) - nonce := new(felt.Felt).SetUint64(5) tx := core.InvokeTransaction{ - Nonce: nonce, - MaxFee: &felt.Zero, Version: new(core.TransactionVersion).SetUint64(1), ContractAddress: contractAddress, EntryPointSelector: utils.GetSelectorFromNameFelt(contractMethod), CallData: txCallData, - // CallData: []*felt.Felt{randata}, } return &tx, nil diff --git a/cairoVM/invoke.go b/cairoVM/invoke.go index 0798204..ff862fb 100644 --- a/cairoVM/invoke.go +++ b/cairoVM/invoke.go @@ -29,10 +29,7 @@ func NewInvoke() (*core.InvokeTransaction, error) { fmt.Println("invoke calldata = ", txCallData) - nonce := new(felt.Felt).SetUint64(1) tx := core.InvokeTransaction{ - Nonce: nonce, - MaxFee: &felt.Zero, Version: new(core.TransactionVersion).SetUint64(1), ContractAddress: contractAddress, EntryPointSelector: utils.GetSelectorFromNameFelt(contractMethod), From c5938e810655e62506089d92c079a9a77e76cc87 Mon Sep 17 00:00:00 2001 From: Qiang Zhou Date: Fri, 2 Feb 2024 11:39:11 +0800 Subject: [PATCH 3/3] a little refine Signed-off-by: Qiang Zhou --- cairoVM/deploy.go | 1 - 1 file changed, 1 deletion(-) diff --git a/cairoVM/deploy.go b/cairoVM/deploy.go index 6a5ad40..bdfe5ff 100644 --- a/cairoVM/deploy.go +++ b/cairoVM/deploy.go @@ -114,7 +114,6 @@ func NewDeployCoolOld() (*core.InvokeTransaction, error) { ContractAddress: contractAddress, EntryPointSelector: utils.GetSelectorFromNameFelt(deployContractMethod), CallData: txCallData, - // CallData: []*felt.Felt{randata}, } return &tx, nil