Scikit Web

솔라나 solang 이더리움 솔리디티 컴파일러 사용하기 본문

NFT/Solana(솔라나)

솔라나 solang 이더리움 솔리디티 컴파일러 사용하기

Keun0 2022. 6. 15. 21:21
728x90
반응형

 

https://solang.readthedocs.io/en/latest/

 

Solang Solidity Compiler — Solang Solidity Compiler v0.1.12 documentation

 

solang.readthedocs.io

 

솔라나 스마트컨트랙트를 만드는 권장되는 방법은 Rust 프로그래밍 언어를 사용하는 방법이다.

 

하지만 솔라나 스마트컨트랙트를 만들기 위해.. Rust까지 공부하는것은 쉽지 않다. 이러한 문제를 해결하기 위함이었는지는 모르겠으나

 

solang 이라고 하는 Ethereum EVM Solidity compiler 가 있다

 

MAC M1에서 solang을 사용한 결과 입니다.

 

Solang을 사용하는 방법은

1. release binaries 사용

2. 도커 이미지를 다운로드 받고 사용

 

MAC Arm 용 바이너리를 받아서 실행 해봤지만..

sudo: ./solang-mac-arm: command not found 라며..실패..

 

도커로 만들어진 이미지를 받고 빌드 후 사용

git clone https://github.com/hyperledger-labs/solang
cd solang
docker image build .

문제없이 빌드가 됐는지 확인한다

docker run --rm -it ghcr.io/hyperledger-labs/solang --version

솔리디티 파일을 컴파일할 폴더를 만들고 해당 폴더에 @openzeppelin/contracts 를 설치한다

https://www.npmjs.com/package/@openzeppelin/contracts

 

현재 로컬 path를 :/ <- 실제 문제없는 경로와 연결하고 도커안에서 빌드한 solang 바이너리를 실행 한다

docker run --rm -it -v /Download/sol:/sources ghcr.io/hyperledger-labs/solang --importmap @openzeppelin=/node_modules/@openzeppelin --target solana -o /sources /sources/flipper.sol

 

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract MyToken is ERC20 {
    constructor() ERC20("MyToken", "MTK") {}
}
728x90
반응형
Comments