Нараян Прасти



Download 9,22 Mb.
Pdf ko'rish
bet43/47
Sana26.02.2022
Hajmi9,22 Mb.
#472912
1   ...   39   40   41   42   43   44   45   46   47
Bog'liq
Прасти Н. - Блокчейн. Разработка приложений - 2018


Глава 4 
____________________________________ 
[ 106 ] 
___________________________________ 
Здесь мы вызываем метод 
sendTransaction()
. Объект, переданный этому мето- 
ду, имеет такие же параметры, как и объект, передаваемый методу 
web3.eth.sendTransaction()
, за исключением того, что игнорируются параметры 
data
и 
to

Если вы хотите вызывать некий метод непосредственно на своем узле, вместо того, 
чтобы создавать и транслировать транзакцию, то вместо 
sendTransaction()
исполь-
зуйте 
call()
, например: 
var returnValue = 
proof.get.call("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"); 
Иногда необходимо узнать, какое количество газа потребуется для вызова метода, 
чтобы принять решение, стоит ли вообще вызывать этот метод. Для решения такой 
оценочной задачи можно использовать 
web3.eth.estimateGas()
. Однако прямое ис-
пользование этого метода вынуждает вас генерировать данные для транзакции. 
Следовательно, мы можем воспользоваться методом 
estimateGas()
нашего объекта, 
например: 
var estimatedGas = 
proof.get.estimateGas("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852
b855"); 
Если вы хотите просто перевести несколько эфиров на контракт без вызова ка-
ких-либо методов, то можете напрямую воспользоваться методом
web3.eth.sendTransaction

Отслеживание событий контракта 
Сейчас мы узнаем, как отслеживать события, которые генерирует контракт. Отсле-
живание событий имеет большое значение, потому что результаты вызова методов 
обычно возвращаются путем переключения триггеров событий.
Прежде, чем приступить к изучению отслеживания событий, нам следует узнать,
что такое 
индексированные параметры событий
. Иметь атрибут 
indexed
могут
не более трех параметров события. Этот атрибут применяется для уведомления
узла о том, что клиентское приложение может искать события по совпадению
возвращаемых значений. Если вы не используете атрибут 
indexed
, вам придется
запрашивать все события узла и отфильтровывать нужные. Например, вы може-
те описать событие 
logFileAddedStatus
таким образом: 
event logFileAddedStatus(bool indexed status, uint indexed timestamp, 
string owner, string indexed fileHash);
Пример, приведенный в листинге 4.1, демонстрирует, как прослушивать события 
контракта. 


Учимся работать с web3.js 
____________________________________ 
[ 107 ] 
___________________________________ 
Листинг 4.1. Прослушивание событий контракта 
var event = proof.logFileAddedStatus(null, { 
fromBlock: 0, 
toBlock: "latest" 
}); 
event.get(function(error, result){ 
if(!error) 

console.log(result); 

else 

console.log(error); 

}) 
event.watch(function(error, result){ 
if(!error) 

console.log(result.args.status); 

else 

console.log(error); 

}) 
setTimeout(function(){ 
event.stopWatching(); 
}, 60000) 
var events = proof.allEvents({ 
fromBlock: 0, 
toBlock: "latest" 
}); 
events.get(function(error, result){ 
if(!error) 

console.log(result); 

else 

console.log(error); 

}) 


Download 9,22 Mb.

Do'stlaringiz bilan baham:
1   ...   39   40   41   42   43   44   45   46   47




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish