From 222047b0dc3233bc4415877c48c15ea4ff51e479 Mon Sep 17 00:00:00 2001 From: Volodymyr-Kuchinskyi Date: Tue, 4 Feb 2025 21:37:28 +0100 Subject: [PATCH 1/2] fix: Fixed IsWriteAccount method --- types/transform.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/transform.go b/types/transform.go index 8164826..4e0b971 100644 --- a/types/transform.go +++ b/types/transform.go @@ -79,7 +79,7 @@ func (t *TransformKind) ParseAsWriteTransfer() (*WriteTransfer, error) { } func (t *TransformKind) IsWriteAccount() bool { - return strings.Contains(string(*t), "Write") && strings.Contains(string(*t), "Account") + return strings.Contains(string(*t), "WriteAccount") || strings.Contains(string(*t), `"Write"`) && strings.Contains(string(*t), `"Account"`) } const ZeroAccountHash = "account-hash-0000000000000000000000000000000000000000000000000000000000000000" From 01dca8b4e641bf881f1ccc96da236bb24c0d5b42 Mon Sep 17 00:00:00 2001 From: Volodymyr-Kuchinskyi Date: Wed, 5 Feb 2025 11:17:15 +0100 Subject: [PATCH 2/2] chore: Add test to cover corner case for IsWriteAccount --- tests/data/transform/write_clvalue_v1.json | 48 ++++++++++++++++++++++ tests/types/transform_test.go | 8 ++++ 2 files changed, 56 insertions(+) create mode 100644 tests/data/transform/write_clvalue_v1.json diff --git a/tests/data/transform/write_clvalue_v1.json b/tests/data/transform/write_clvalue_v1.json new file mode 100644 index 0000000..9f12954 --- /dev/null +++ b/tests/data/transform/write_clvalue_v1.json @@ -0,0 +1,48 @@ +{ + "key": "uref-9ddb77fd2ce708ef8d6b42b8fc287cd443bb10a5bc0f86cfaa569293bdc5171f-000", + "transform": { + "WriteCLValue": { + "bytes": "0800000009000000616d6f756e7430496e0a000000313030303030303030300a000000616d6f756e74304f7574010000003009000000616d6f756e7431496e01000000300a000000616d6f756e74314f757405000000313632343915000000636f6e74726163745f7061636b6167655f6861736840000000433630453745643144356632383962466333364434374438376634344230356166323463323032356333416131353735433638363036643230446243376165380a0000006576656e745f7479706504000000737761700600000073656e6465724b0000004b65793a3a4861736828343630303138423561364136466136303436443130323161376634343134666434354535653530364536363034623436353666653636633930623636316536622902000000746f4e0000004b65793a3a4163636f756e74283265436134383241323366616241314431343046443944643663444530363964303938394132323642623842364244633832633641363963343846374643454529", + "parsed": [ + { + "key": "amount0In", + "value": "1000000000" + }, + { + "key": "amount0Out", + "value": "0" + }, + { + "key": "amount1In", + "value": "0" + }, + { + "key": "amount1Out", + "value": "16249" + }, + { + "key": "contract_package_hash", + "value": "C60E7Ed1D5f289bFc36D47D87f44B05af24c2025c3Aa1575C68606d20DbC7ae8" + }, + { + "key": "event_type", + "value": "swap" + }, + { + "key": "sender", + "value": "Key::Hash(460018B5a6A6Fa6046D1021a7f4414fd45E5e506E6604b4656fe66c90b661e6b)" + }, + { + "key": "to", + "value": "Key::Account(2eCa482A23fabA1D140FD9Dd6cDE069d0989A226Bb8B6BDc82c6A69c48F7FCEE)" + } + ], + "cl_type": { + "Map": { + "key": "String", + "value": "String" + } + } + } + } +} \ No newline at end of file diff --git a/tests/types/transform_test.go b/tests/types/transform_test.go index 762bad0..86c09dd 100644 --- a/tests/types/transform_test.go +++ b/tests/types/transform_test.go @@ -243,6 +243,14 @@ func Test_Transform_WriteDeployInfo(t *testing.T) { } func Test_Transform_WriteAccountV1(t *testing.T) { + invalidFixture, err := os.ReadFile("../data/transform/write_clvalue_v1.json") + require.NoError(t, err) + + var invalidTransform types.TransformKey + err = json.Unmarshal(invalidFixture, &invalidTransform) + require.NoError(t, err) + assert.False(t, invalidTransform.Transform.IsWriteAccount()) + fixture, err := os.ReadFile("../data/transform/write_account_v1.json") require.NoError(t, err) var transform types.TransformKey