neo-project / neo

NEO Smart Economy
MIT License
3.47k stars 1.03k forks source link

Develop smart contracts on Linux/macOS #58

Closed Lopastvertoleta closed 7 years ago

Lopastvertoleta commented 7 years ago

Is it possible to develop NEO smart contracts using .NET Core instead of .NET Framework? It is stated that NEO supports .NET Core, but the docs are only for Windows and examples do not compile on macOS

erikzhang commented 7 years ago

@chenzhitong Can you look into it?

aljoscha commented 7 years ago

I actually have this working on macOS, the problem is that the different NEO projects have net461 (besides netstandard1.6 and sometimes netcoreapp1.0) as TargetFramework and this doesn't work on macOS. For building on the command-line, you can specify -t netstandard1.6 and the projects build. For getting it to work in Visual Studio on Mac you need to remove net461 from the project files.

Lopastvertoleta commented 7 years ago

@aljoscha Thanks for the answer, now the problem is I can't convert compiled dll to avm for deployment. On Windows this is handled by the plugin, but I couldn't find it for macOS

aljoscha commented 7 years ago

I uploaded the changes to make Neo.Sandbox work on macOS on my fork: https://github.com/aljoscha/Neo.Sandbox. You can look at https://github.com/aljoscha/Neo.Sandbox/blob/master/src/Testbox/Test_HelloWorld.cs and https://github.com/aljoscha/Neo.Sandbox/blob/master/src/Testbox/Utilities/ExecutionHelper.cs. There you see how a dll is converted to AVM and also how it's executed for testing.

Sajjon commented 6 years ago

Is there any guide for developing smart contracts using Kotlin on macOS?

notatestuser commented 6 years ago

@Sajjon I used macOS to develop the contracts for my dApp in Kotlin. You could strip out my code and work from it as a starting point: https://github.com/notatestuser/chainline-contracts-kt

beshogun commented 6 years ago

I just went through the city of Zion https://www.youtube.com/watch?v=2EYK1ogr5i4 guide a few times and keep getting this build error,

Bens-MBP:target ben$ dotnet /Users/ben/neo-compiler/neoj/bin/Release/netcoreapp1.1/neoj.dll /Users/ben/Downloads/neoj_osx/HelloWorld.class Neo.Compiler.JVM console app v2.0.3.0 Convert Error:System.IO.FileNotFoundException: Could not find file '/Users/ben/Downloads/neoj_osx/HelloWorld.class'.

I notice that when the video calls the command - dotnet /Users/ben/neo-compiler/neoj/bin/Release/netcoreapp1.1/neoj.dll /Users/ben/Downloads/neoj_osx/HelloWorld.class

the error message which is inputed later diverges from my message it comes out as /usr/local/share/dotnet/org.neo.smartcontract.framework.jar

Im going round and round with this and can't seem to get it converting, any thoughts appreciated?