From b4fdf8c3c933192d1d638d9a299cc9f23641e312 Mon Sep 17 00:00:00 2001 From: Ekaterina Pavlova Date: Fri, 31 May 2024 18:45:07 +0300 Subject: [PATCH] wallet: do not store deployed contract script inside `Contract` account `Contract` account field should not contain deployed contract script. Close #3348 Signed-off-by: Ekaterina Pavlova --- cli/testdata/wallet1_solo.json | 1 - cli/wallet/wallet.go | 3 ++- pkg/wallet/regenerate_test.go | 1 - 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/cli/testdata/wallet1_solo.json b/cli/testdata/wallet1_solo.json index 28dfffb8a..9b6d6e030 100644 --- a/cli/testdata/wallet1_solo.json +++ b/cli/testdata/wallet1_solo.json @@ -65,7 +65,6 @@ "key": "6PYSATFztBa3CHjSR6sLAKungUEAbQUCVE16KzmaQQ38gLeYGZ9Knd5mGv", "label": "verify", "contract": { - "script": "VwEAEUBXAANA", "parameters": [], "deployed": true }, diff --git a/cli/wallet/wallet.go b/cli/wallet/wallet.go index b3793e2a0..825fa1702 100644 --- a/cli/wallet/wallet.go +++ b/cli/wallet/wallet.go @@ -651,7 +651,8 @@ func importDeployed(ctx *cli.Context) error { return cli.NewExitError("contract has no `verify` method with boolean return", 1) } acc.Address = address.Uint160ToString(cs.Hash) - acc.Contract.Script = cs.NEF.Script + // Explicitly overwrite single signature script of the provided WIF since the contract is known to be deployed. + acc.Contract.Script = nil acc.Contract.Parameters = acc.Contract.Parameters[:0] for _, p := range md.Parameters { acc.Contract.Parameters = append(acc.Contract.Parameters, wallet.ContractParam{ diff --git a/pkg/wallet/regenerate_test.go b/pkg/wallet/regenerate_test.go index 15cdf7fc9..02f07ccbf 100644 --- a/pkg/wallet/regenerate_test.go +++ b/pkg/wallet/regenerate_test.go @@ -278,7 +278,6 @@ func TestRegenerateCLIWallet1_solo(t *testing.T) { hash := state.CreateContractHash(acc3.PrivateKey().GetScriptHash(), nefFile.Checksum, m.Name) acc4.Address = address.Uint160ToString(hash) acc4.Contract = &Contract{ - Script: nefFile.Script, Deployed: true, Parameters: []ContractParam{}, }