Skip to content

Commit

Permalink
Fix broken backward compatibility.
Browse files Browse the repository at this point in the history
Added argent 0.4.0 contract.
Fixed review comments
  • Loading branch information
baitcode committed Feb 3, 2025
1 parent fae3dc4 commit 6f1cf28
Show file tree
Hide file tree
Showing 4 changed files with 122,763 additions and 37 deletions.
48 changes: 20 additions & 28 deletions contracts/contracts_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,37 +23,29 @@ import (
//
// none
func TestUnmarshalContractClass(t *testing.T) {
content, err := os.ReadFile("./tests/hello_starknet_compiled.sierra.json")
require.NoError(t, err)
{
content, err := os.ReadFile("./tests/hello_starknet_compiled.sierra.json")
require.NoError(t, err)

var class rpc.ContractClass
err = json.Unmarshal(content, &class)
require.NoError(t, err)
assert.Equal(t, class.SierraProgram[0].String(), "0x1")
assert.Equal(t, class.SierraProgram[1].String(), "0x3")
}
var class rpc.ContractClass
err = json.Unmarshal(content, &class)
require.NoError(t, err)
assert.Equal(t, class.SierraProgram[0].String(), "0x1")
assert.Equal(t, class.SierraProgram[1].String(), "0x3")
}

// TestUnmarshalContractClassWithNonStringAbi is a test function to unmarshal a
// contract class made with compiler >= 2.7.0 version. The difference is that
// ABI is no longer string.
//
// It reads the content of a file and unmarshals it into a ContractClass struct.
// Then it asserts the equality of certain values within the struct.
//
// Parameters:
// - t: The testing.T instance for running the test
// Returns:
//
// none
func TestUnmarshalContractClassWithNonStringAbi(t *testing.T) {
content, err := os.ReadFile("./tests/test_contract.sierra.json")
require.NoError(t, err)
{
// contract class made with compiler >= 2.7.0 version

var class rpc.ContractClass
err = json.Unmarshal(content, &class)
require.NoError(t, err)
assert.Equal(t, class.SierraProgram[0].String(), "0x1")
assert.Equal(t, class.SierraProgram[1].String(), "0x6")
content, err := os.ReadFile("./tests/test_contract.sierra.json")
require.NoError(t, err)

var class rpc.ContractClass
err = json.Unmarshal(content, &class)
require.NoError(t, err)
assert.Equal(t, class.SierraProgram[0].String(), "0x1")
assert.Equal(t, class.SierraProgram[1].String(), "0x6")
}
}

// TestUnmarshalCasmClass tests the UnmarshalCasmClass function.
Expand Down
27 changes: 19 additions & 8 deletions hash/hash_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,15 +89,26 @@ func TestCompiledClassHash(t *testing.T) {
//
// none
func TestCompiledClassHashWithBytecodeSegmentLengths(t *testing.T) {
expectedHash := "0x28e4f13aed1aea3b4c2544bc10b0a2a4f37c71f830d0e3031e95aeb9cef9889"
{
content, err := os.ReadFile("./tests/contract.casm.json")
require.NoError(t, err)

content, err := os.ReadFile("./tests/contract.casm.json")
require.NoError(t, err)
var casmClass contracts.CasmClass
err = json.Unmarshal(content, &casmClass)
require.NoError(t, err)

var casmClass contracts.CasmClass
err = json.Unmarshal(content, &casmClass)
require.NoError(t, err)
hash := hash.CompiledClassHash(casmClass)
require.Equal(t, "0x28e4f13aed1aea3b4c2544bc10b0a2a4f37c71f830d0e3031e95aeb9cef9889", hash.String())
}
{
content, err := os.ReadFile("./tests/argent-0.4.0/ArgentAccount.casm")
require.NoError(t, err)

hash := hash.CompiledClassHash(casmClass)
require.Equal(t, expectedHash, hash.String())
var casmClass contracts.CasmClass
err = json.Unmarshal(content, &casmClass)
require.NoError(t, err)

hash := hash.CompiledClassHash(casmClass)
require.Equal(t, "0x7a663375245780bd307f56fde688e33e5c260ab02b76741a57711c5b60d47f6", hash.String())
}
}
Loading

0 comments on commit 6f1cf28

Please sign in to comment.