hoony's web study

728x90
반응형

 

제 local 에 있는 ganache 를 이용해서 transaction을 한번 flutter 로 해서 구현을 해 보았습니다. 
간단하게 floating button을 이용해서 화면을 생성했구요. 
Debug 창에서 값이 찍히는 것을 확인하면서 간단하게 원리만 알도록 해보았습니다.

유튜브에 있는 것을 가지고 구현을 하는데 github에 소스도 없고 해서 계속 에러가 나서 그 소스를 참고해서 만들어 보았습니다.
 이 예제를 실행하기 위해서는 3개의 package가 필요합니다.
pubspec.yaml 에 아래의 package를 추가하시고 간단히 구현을 해보면 transaction이 일어납니다. 

web3dart: ^2.3.3
http: ^0.13.4
web_socket_channel: ^2.1.0

간단한 함수에 소스를 구성을 했습니다.
물론 실전에서는 rpc주소와 websocket 의 주소는 db 에서 관리를 해서 받아서 처리를 해야하지만 
먼저 web3dart를 이용해서 간단하게 보내는 것만 이렇게 정리해 보았습니다. 

String rpcUrl = "http://127.0.0.1:7545";
  String wcUrl = "http://127.0.0.1:7545/";

  String strCenter = "송금 Data";



  void  sendToken() async{
    Web3Client client = Web3Client(rpcUrl, Client(), socketConnector: (){
      return IOWebSocketChannel.connect(wcUrl).cast<String>();
    });


    //개인키 : ganache 복사해서
    String privateKey = "0a55cf8fe88a5b36e74aa1354cb3d8c498f2282d51c7b9dbcfa00e0be22ba8ad";

    Credentials credentials = await client.credentialsFromPrivateKey(privateKey);

    //이더리움 개인 hex address 를 가지고 온다.(보내는 사람의 주소) 
    EthereumAddress ownAddress = await credentials.extractAddress();

    //받을 사람의 hexa address 
    EthereumAddress receiverAddress = EthereumAddress.fromHex("0xdCBB475f6Ffd263c91DB1A8461B7F149bCDbd673");

    client.sendTransaction(credentials, Transaction(from: ownAddress, to: receiverAddress, value: EtherAmount.fromUnitAndValue(EtherUnit.ether, 5)));




    print('ownAddress :  '+ ownAddress.toString());
    // print(await client.getBalance(ownAddress));



  }

아, 겨우 이거 만드는데 생각 보다 힘드네요. 
소스는 github에 올리고 다시 링크를 올려드릴께요 

반응형


https://github.com/jonathanLee/flutterdappsample#flutterdappsample

 

GitHub - jonathanLee/flutterdappsample: flutter Dapp send Ethereum example

flutter Dapp send Ethereum example. Contribute to jonathanLee/flutterdappsample development by creating an account on GitHub.

github.com


위의 소스를 가지고 ganache와 연동된 youtube 영상이다. 

 

728x90

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading