2017-11-09 12 views
1

에테 리엄 계약의 상태/저장을 볼 수 있기를 원하며, 어떤 조건이 충족되면 예를 들어 알 수 있습니다. 예를 들어, 하나의 계정 값이 200보다 크고 다른지도가 30 개 이상의 키를 가지고 있습니다.엣지 럼 계약 상태보기

무엇을 사용할 수 있습니까? 이 목적으로 사용할 수있는 SaaS 플랫폼이 있습니까?

편집 : 나는 계약의 소유자가 아닙니다. 나는 단순히 누군가의 계약을보고 싶다.

답변

0

이벤트가이 용도로 지원됩니다.

Event Documentation

예 :

당신은

const someContract = web3.eth.contract(abi).at(address); 

myContract.events.AccountValueChange({ 
    filter: {//Optional event filters}, 
    fromBlock: 0 
}, function(error, event){ console.log(event); }) 
.on('data', function(event){ 
    console.log(event); 
}) 
.on('error', console.error); 

편집 클라이언트에서 이벤트를 수신 할 수 있습니다

contract SomeContract { 
    struct AccountData { 
    address account; 
    uint value; 
    } 

    ... 
    event AccountValueChange(address account, uint value, bytes msg); 
    ... 

    function someAction() { 
    AccountData accountData; 

    // some activity with accountData... 

    if (accountData.value > 200) { 
     AccountValueChange(accountData.address, accountData.value, "Some message"); 
    } 
    } 
} 

: 대신 단일 해고의 모든 이벤트를 수신하도록 업데이트 클라이언트 코드 행사.

+0

감사합니다. 원래 게시물에 일부 수정 사항을 추가했습니다. 나는 계약의 소유자가 아니라는 것을 잊었다. 제 3자가 배포 한 것을보고 싶습니다. – Klaus

+0

이벤트를 청취하기 위해 계약 소유자 일 필요는 없습니다. 필요한 것은 ABI, 계약 주소 및 이벤트 이름뿐입니다. 필터링을 위해 필터링하려는 데이터가 계약 소유자에 의해 색인 된 것으로 표시된 경우 필터 매개 변수를 지정할 수 있습니다. 그렇지 않은 경우 모든 이벤트를 듣고 자신을 걸러 내야합니다. –

0

간단히 대답하면 EVM을 직접 조사하여 모니터링 할 수있는 자체 노드를 실행해야한다는 것입니다. 내가 할 수있는 공개 프로젝트가 없으며 RPC API는이를 수행 할 수있는 방법을 제공하지 않습니다. 필자는 조건이 충족 될 때 전자 메일을 보내도록 메일 필터링 및 코드 된 사용자 지정 트랜잭션 필터가있는 수정 된 Geth 바이너리를 사용했습니다.

이벤트는 생성시 계약서에 이벤트가 포함되어야하므로 이벤트가 문제를 해결하지 못합니다.