From 5d578fdd95cce7208beeda34f3caac358b1b6e7d Mon Sep 17 00:00:00 2001 From: Anna Shaleva Date: Tue, 27 Sep 2022 14:35:13 +0300 Subject: [PATCH 1/5] compiler: consider inlined types info on "append" handling We need to search for "append" argument type info not only inside local package type info map, but also inside the inlined type info map. Close #2696. --- pkg/compiler/codegen.go | 2 +- pkg/compiler/inline_test.go | 11 +++++++++++ pkg/compiler/testdata/inline/inline.go | 5 +++++ 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/pkg/compiler/codegen.go b/pkg/compiler/codegen.go index 1d56a2e2c..70e7592da 100644 --- a/pkg/compiler/codegen.go +++ b/pkg/compiler/codegen.go @@ -1819,7 +1819,7 @@ func (c *codegen) convertBuiltin(expr *ast.CallExpr) { emit.Opcodes(c.prog.BinWriter, opcode.DROP, opcode.PUSH0) case "append": arg := expr.Args[0] - typ := c.typeInfo.Types[arg].Type + typ := c.typeOf(arg) ast.Walk(c, arg) emit.Opcodes(c.prog.BinWriter, opcode.DUP, opcode.ISNULL) if isByteSlice(typ) { diff --git a/pkg/compiler/inline_test.go b/pkg/compiler/inline_test.go index 9b217fa44..8a9dfdf24 100644 --- a/pkg/compiler/inline_test.go +++ b/pkg/compiler/inline_test.go @@ -432,3 +432,14 @@ func TestInlineDoubleConditionalReturn(t *testing.T) { }) } } + +func TestInlineAppendStatement(t *testing.T) { + src := `package foo + import "github.com/nspcc-dev/neo-go/pkg/compiler/testdata/inline" + + func Main() []byte { + val := []byte{4, 5, 6} + return inline.AppendInsideInline(val) + }` + eval(t, src, []byte{1, 2, 3, 4, 5, 6}) +} diff --git a/pkg/compiler/testdata/inline/inline.go b/pkg/compiler/testdata/inline/inline.go index 80a7041d9..4f56faa23 100644 --- a/pkg/compiler/testdata/inline/inline.go +++ b/pkg/compiler/testdata/inline/inline.go @@ -64,3 +64,8 @@ func NewT() T { func (t T) GetN() int { return t.N } + +func AppendInsideInline(val []byte) []byte { + inlinedType := []byte{1, 2, 3} + return append(inlinedType, val...) +} From 24c107e3a262297354909705f85a52d3ae588b9a Mon Sep 17 00:00:00 2001 From: Anna Shaleva Date: Tue, 27 Sep 2022 13:41:41 +0300 Subject: [PATCH 2/5] interop: refactor address.FromHash160 code Make it more simple. --- pkg/interop/lib/address/address.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/interop/lib/address/address.go b/pkg/interop/lib/address/address.go index d501220b5..1f4435473 100644 --- a/pkg/interop/lib/address/address.go +++ b/pkg/interop/lib/address/address.go @@ -29,8 +29,6 @@ func FromHash160(hash interop.Hash160) string { if len(hash) != interop.Hash160Len { panic("invalid Hash160 length") } - var res = make([]byte, interop.Hash160Len+1) - res[0] = byte(runtime.GetAddressVersion()) - copy(res[1:], hash) // @fixme #2696 + res := append([]byte{byte(runtime.GetAddressVersion())}, hash...) return std.Base58CheckEncode(res) } From 08e251167661ba0f69190d8cb44a59954f23442b Mon Sep 17 00:00:00 2001 From: Anna Shaleva Date: Tue, 27 Sep 2022 14:51:13 +0300 Subject: [PATCH 3/5] *: update interop dependency --- examples/engine/go.mod | 2 +- examples/engine/go.sum | 4 ++-- examples/events/go.mod | 2 +- examples/events/go.sum | 4 ++-- examples/iterator/go.mod | 2 +- examples/iterator/go.sum | 4 ++-- examples/nft-d/go.mod | 2 +- examples/nft-d/go.sum | 4 ++-- examples/nft-nd-nns/go.mod | 2 +- examples/nft-nd-nns/go.sum | 6 ++---- examples/nft-nd/go.mod | 2 +- examples/nft-nd/go.sum | 4 ++-- examples/oracle/go.mod | 2 +- examples/oracle/go.sum | 4 ++-- examples/runtime/go.mod | 2 +- examples/runtime/go.sum | 4 ++-- examples/storage/go.mod | 2 +- examples/storage/go.sum | 4 ++-- examples/timer/go.mod | 2 +- examples/timer/go.sum | 4 ++-- examples/token/go.mod | 2 +- examples/token/go.sum | 4 ++-- go.mod | 2 +- go.sum | 4 ++-- internal/contracts/oracle_contract/go.mod | 2 +- internal/contracts/oracle_contract/go.sum | 4 ++-- 26 files changed, 39 insertions(+), 41 deletions(-) diff --git a/examples/engine/go.mod b/examples/engine/go.mod index fc22944f9..3bb36784a 100644 --- a/examples/engine/go.mod +++ b/examples/engine/go.mod @@ -2,4 +2,4 @@ module github.com/nspcc-dev/neo-go/examples/engine go 1.17 -require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 +require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 diff --git a/examples/engine/go.sum b/examples/engine/go.sum index c1dd39629..3d1cedae2 100644 --- a/examples/engine/go.sum +++ b/examples/engine/go.sum @@ -1,2 +1,2 @@ -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= diff --git a/examples/events/go.mod b/examples/events/go.mod index 9f219a75e..ae3c09756 100644 --- a/examples/events/go.mod +++ b/examples/events/go.mod @@ -2,4 +2,4 @@ module github.com/nspcc-dev/neo-go/examples/events go 1.17 -require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 +require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 diff --git a/examples/events/go.sum b/examples/events/go.sum index c1dd39629..3d1cedae2 100644 --- a/examples/events/go.sum +++ b/examples/events/go.sum @@ -1,2 +1,2 @@ -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= diff --git a/examples/iterator/go.mod b/examples/iterator/go.mod index 70f97cda3..8c4dca87a 100644 --- a/examples/iterator/go.mod +++ b/examples/iterator/go.mod @@ -2,4 +2,4 @@ module github.com/nspcc-dev/neo-go/examples/iterator go 1.17 -require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 +require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 diff --git a/examples/iterator/go.sum b/examples/iterator/go.sum index c1dd39629..3d1cedae2 100644 --- a/examples/iterator/go.sum +++ b/examples/iterator/go.sum @@ -1,2 +1,2 @@ -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= diff --git a/examples/nft-d/go.mod b/examples/nft-d/go.mod index 6cf64f876..fae01ba28 100644 --- a/examples/nft-d/go.mod +++ b/examples/nft-d/go.mod @@ -2,4 +2,4 @@ module github.com/nspcc-dev/neo-go/examples/nft go 1.17 -require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 +require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 diff --git a/examples/nft-d/go.sum b/examples/nft-d/go.sum index c1dd39629..3d1cedae2 100644 --- a/examples/nft-d/go.sum +++ b/examples/nft-d/go.sum @@ -1,2 +1,2 @@ -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= diff --git a/examples/nft-nd-nns/go.mod b/examples/nft-nd-nns/go.mod index b2f459b25..5df025f2c 100644 --- a/examples/nft-nd-nns/go.mod +++ b/examples/nft-nd-nns/go.mod @@ -4,7 +4,7 @@ go 1.17 require ( github.com/nspcc-dev/neo-go v0.99.4-0.20220923055855-ae511447f9d4 - github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 + github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 github.com/stretchr/testify v1.7.0 ) diff --git a/examples/nft-nd-nns/go.sum b/examples/nft-nd-nns/go.sum index 0abeff93c..47c7a8e4d 100644 --- a/examples/nft-nd-nns/go.sum +++ b/examples/nft-nd-nns/go.sum @@ -198,12 +198,10 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nspcc-dev/go-ordered-json v0.0.0-20220111165707-25110be27d22 h1:n4ZaFCKt1pQJd7PXoMJabZWK9ejjbLOVrkl/lOUmshg= github.com/nspcc-dev/go-ordered-json v0.0.0-20220111165707-25110be27d22/go.mod h1:79bEUDEviBHJMFV6Iq6in57FEOCMcRhfQnfaf0ETA5U= -github.com/nspcc-dev/neo-go v0.99.4-0.20220921144034-25667914faf5 h1:Ws7+4nbejBl6tpknmAOtaHQDY0DSmtkdjhsTHnbfosY= -github.com/nspcc-dev/neo-go v0.99.4-0.20220921144034-25667914faf5/go.mod h1:NraCCLE6Ky5F3zjuAiv45gaN08AZtDvs41cYofXTibA= github.com/nspcc-dev/neo-go v0.99.4-0.20220923055855-ae511447f9d4 h1:ATYpJWLn+eoUKLJDIo1oKvcbirLVF+QNm3r3HnaRCwc= github.com/nspcc-dev/neo-go v0.99.4-0.20220923055855-ae511447f9d4/go.mod h1:/Uzv7wyW4840Iv/v5bt7gOqsJnL3NmpJZwFuNG/qWV0= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= github.com/nspcc-dev/rfc6979 v0.2.0 h1:3e1WNxrN60/6N0DW7+UYisLeZJyfqZTNOjeV/toYvOE= github.com/nspcc-dev/rfc6979 v0.2.0/go.mod h1:exhIh1PdpDC5vQmyEsGvc4YDM/lyQp/452QxGq/UEso= github.com/nxadm/tail v1.4.4 h1:DQuhQpB1tVlglWS2hLQ5OV6B5r8aGxSrPc5Qo6uTN78= diff --git a/examples/nft-nd/go.mod b/examples/nft-nd/go.mod index be0dbe4e7..7f5e9eec6 100644 --- a/examples/nft-nd/go.mod +++ b/examples/nft-nd/go.mod @@ -2,4 +2,4 @@ module github.com/nspcc-dev/neo-go/examples/nft-nd go 1.17 -require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 +require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 diff --git a/examples/nft-nd/go.sum b/examples/nft-nd/go.sum index c1dd39629..3d1cedae2 100644 --- a/examples/nft-nd/go.sum +++ b/examples/nft-nd/go.sum @@ -1,2 +1,2 @@ -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= diff --git a/examples/oracle/go.mod b/examples/oracle/go.mod index bcaccaf1c..a98f80f55 100644 --- a/examples/oracle/go.mod +++ b/examples/oracle/go.mod @@ -2,4 +2,4 @@ module github.com/nspcc-dev/neo-go/examples/oracle go 1.17 -require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 +require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 diff --git a/examples/oracle/go.sum b/examples/oracle/go.sum index c1dd39629..3d1cedae2 100644 --- a/examples/oracle/go.sum +++ b/examples/oracle/go.sum @@ -1,2 +1,2 @@ -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= diff --git a/examples/runtime/go.mod b/examples/runtime/go.mod index 1f41d7e92..b5b148116 100644 --- a/examples/runtime/go.mod +++ b/examples/runtime/go.mod @@ -2,4 +2,4 @@ module github.com/nspcc-dev/neo-go/examples/runtime go 1.17 -require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 +require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 diff --git a/examples/runtime/go.sum b/examples/runtime/go.sum index c1dd39629..3d1cedae2 100644 --- a/examples/runtime/go.sum +++ b/examples/runtime/go.sum @@ -1,2 +1,2 @@ -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= diff --git a/examples/storage/go.mod b/examples/storage/go.mod index 47c44deed..0257db99f 100644 --- a/examples/storage/go.mod +++ b/examples/storage/go.mod @@ -2,4 +2,4 @@ module github.com/nspcc-dev/neo-go/examples/storage go 1.17 -require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 +require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 diff --git a/examples/storage/go.sum b/examples/storage/go.sum index c1dd39629..3d1cedae2 100644 --- a/examples/storage/go.sum +++ b/examples/storage/go.sum @@ -1,2 +1,2 @@ -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= diff --git a/examples/timer/go.mod b/examples/timer/go.mod index 518907094..534838018 100644 --- a/examples/timer/go.mod +++ b/examples/timer/go.mod @@ -2,4 +2,4 @@ module github.com/nspcc-dev/neo-go/examples/timer go 1.17 -require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 +require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 diff --git a/examples/timer/go.sum b/examples/timer/go.sum index c1dd39629..3d1cedae2 100644 --- a/examples/timer/go.sum +++ b/examples/timer/go.sum @@ -1,2 +1,2 @@ -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= diff --git a/examples/token/go.mod b/examples/token/go.mod index 661a3c8db..a4db60fdc 100644 --- a/examples/token/go.mod +++ b/examples/token/go.mod @@ -2,4 +2,4 @@ module github.com/nspcc-dev/neo-go/examples/token go 1.17 -require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 +require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 diff --git a/examples/token/go.sum b/examples/token/go.sum index c1dd39629..3d1cedae2 100644 --- a/examples/token/go.sum +++ b/examples/token/go.sum @@ -1,2 +1,2 @@ -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= diff --git a/go.mod b/go.mod index e71bdbc1a..0a314e51d 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/mr-tron/base58 v1.2.0 github.com/nspcc-dev/dbft v0.0.0-20220902113116-58a5e763e647 github.com/nspcc-dev/go-ordered-json v0.0.0-20220111165707-25110be27d22 - github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 + github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 github.com/nspcc-dev/neofs-sdk-go v0.0.0-20220113123743-7f3162110659 github.com/nspcc-dev/rfc6979 v0.2.0 github.com/pierrec/lz4 v2.6.1+incompatible diff --git a/go.sum b/go.sum index 10764a988..189513264 100644 --- a/go.sum +++ b/go.sum @@ -260,8 +260,8 @@ github.com/nspcc-dev/hrw v1.0.9 h1:17VcAuTtrstmFppBjfRiia4K2wA/ukXZhLFS8Y8rz5Y= github.com/nspcc-dev/hrw v1.0.9/go.mod h1:l/W2vx83vMQo6aStyx2AuZrJ+07lGv2JQGlVkPG06MU= github.com/nspcc-dev/neo-go v0.73.1-pre.0.20200303142215-f5a1b928ce09/go.mod h1:pPYwPZ2ks+uMnlRLUyXOpLieaDQSEaf4NM3zHVbRjmg= github.com/nspcc-dev/neo-go v0.98.0/go.mod h1:E3cc1x6RXSXrJb2nDWXTXjnXk3rIqVN8YdFyWv+FrqM= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= github.com/nspcc-dev/neofs-api-go/v2 v2.11.0-pre.0.20211201134523-3604d96f3fe1/go.mod h1:oS8dycEh8PPf2Jjp6+8dlwWyEv2Dy77h/XhhcdxYEFs= github.com/nspcc-dev/neofs-api-go/v2 v2.11.1 h1:SVqc523pZsSaS9vnPS1mm3VV6b6xY0gvdA0uYJ/GWZQ= github.com/nspcc-dev/neofs-api-go/v2 v2.11.1/go.mod h1:oS8dycEh8PPf2Jjp6+8dlwWyEv2Dy77h/XhhcdxYEFs= diff --git a/internal/contracts/oracle_contract/go.mod b/internal/contracts/oracle_contract/go.mod index bcaccaf1c..a98f80f55 100644 --- a/internal/contracts/oracle_contract/go.mod +++ b/internal/contracts/oracle_contract/go.mod @@ -2,4 +2,4 @@ module github.com/nspcc-dev/neo-go/examples/oracle go 1.17 -require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 +require github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 diff --git a/internal/contracts/oracle_contract/go.sum b/internal/contracts/oracle_contract/go.sum index c1dd39629..3d1cedae2 100644 --- a/internal/contracts/oracle_contract/go.sum +++ b/internal/contracts/oracle_contract/go.sum @@ -1,2 +1,2 @@ -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9 h1:IGfqrLp2BR1jMpOL+uFzPRO5PrUPD5vCdkC42atMMFI= -github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220921145301-29564bdda2e9/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= +github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= From 9ee05d324131d44f827d6228c0dbc7a2783f1b81 Mon Sep 17 00:00:00 2001 From: Anna Shaleva Date: Tue, 27 Sep 2022 15:35:15 +0300 Subject: [PATCH 4/5] examples: update neo-go dependency --- examples/nft-nd-nns/go.mod | 2 +- examples/nft-nd-nns/go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/nft-nd-nns/go.mod b/examples/nft-nd-nns/go.mod index 5df025f2c..5a5f9c6ca 100644 --- a/examples/nft-nd-nns/go.mod +++ b/examples/nft-nd-nns/go.mod @@ -3,7 +3,7 @@ module github.com/nspcc-dev/neo-go/examples/nft-nd-nns go 1.17 require ( - github.com/nspcc-dev/neo-go v0.99.4-0.20220923055855-ae511447f9d4 + github.com/nspcc-dev/neo-go v0.99.4-0.20220927123420-08e251167661 github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 github.com/stretchr/testify v1.7.0 ) diff --git a/examples/nft-nd-nns/go.sum b/examples/nft-nd-nns/go.sum index 47c7a8e4d..baf08f71c 100644 --- a/examples/nft-nd-nns/go.sum +++ b/examples/nft-nd-nns/go.sum @@ -198,8 +198,8 @@ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRW github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nspcc-dev/go-ordered-json v0.0.0-20220111165707-25110be27d22 h1:n4ZaFCKt1pQJd7PXoMJabZWK9ejjbLOVrkl/lOUmshg= github.com/nspcc-dev/go-ordered-json v0.0.0-20220111165707-25110be27d22/go.mod h1:79bEUDEviBHJMFV6Iq6in57FEOCMcRhfQnfaf0ETA5U= -github.com/nspcc-dev/neo-go v0.99.4-0.20220923055855-ae511447f9d4 h1:ATYpJWLn+eoUKLJDIo1oKvcbirLVF+QNm3r3HnaRCwc= -github.com/nspcc-dev/neo-go v0.99.4-0.20220923055855-ae511447f9d4/go.mod h1:/Uzv7wyW4840Iv/v5bt7gOqsJnL3NmpJZwFuNG/qWV0= +github.com/nspcc-dev/neo-go v0.99.4-0.20220927123420-08e251167661 h1:0MonpxeHx2pf7n/y/YEILdSbRfebAhylqjYLQX7FerQ= +github.com/nspcc-dev/neo-go v0.99.4-0.20220927123420-08e251167661/go.mod h1:mKTolfRUfKjFso5HPvGSQtUZc70n0VKBMs16eGuC5gA= github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262 h1:UTmSLZw5OpD/JPE1B5Vf98GF0zu2/Hsqq1lGLtStTUE= github.com/nspcc-dev/neo-go/pkg/interop v0.0.0-20220927123257-24c107e3a262/go.mod h1:23bBw0v6pBYcrWs8CBEEDIEDJNbcFoIh8pGGcf2Vv8s= github.com/nspcc-dev/rfc6979 v0.2.0 h1:3e1WNxrN60/6N0DW7+UYisLeZJyfqZTNOjeV/toYvOE= From 1828e79412da864b0a02dfad2928150ed0750d1b Mon Sep 17 00:00:00 2001 From: Anna Shaleva Date: Tue, 27 Sep 2022 15:36:06 +0300 Subject: [PATCH 5/5] compiler: add test for foreign function inlining --- pkg/compiler/inline_test.go | 10 ++++++++++ pkg/compiler/testdata/inline/inline.go | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/pkg/compiler/inline_test.go b/pkg/compiler/inline_test.go index 8a9dfdf24..b3c21bcfb 100644 --- a/pkg/compiler/inline_test.go +++ b/pkg/compiler/inline_test.go @@ -443,3 +443,13 @@ func TestInlineAppendStatement(t *testing.T) { }` eval(t, src, []byte{1, 2, 3, 4, 5, 6}) } + +func TestInlineForeignType(t *testing.T) { + src := `package foo + import "github.com/nspcc-dev/neo-go/pkg/compiler/testdata/inline" + + func Main() int { + return inline.ForeignTypeInsideInline() + }` + eval(t, src, big.NewInt(29)) +} diff --git a/pkg/compiler/testdata/inline/inline.go b/pkg/compiler/testdata/inline/inline.go index 4f56faa23..ba9cd2acd 100644 --- a/pkg/compiler/testdata/inline/inline.go +++ b/pkg/compiler/testdata/inline/inline.go @@ -69,3 +69,7 @@ func AppendInsideInline(val []byte) []byte { inlinedType := []byte{1, 2, 3} return append(inlinedType, val...) } + +func ForeignTypeInsideInline() int { + return a.GetA() +}