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



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


Глава 4 
____________________________________ 
[ 102 ] 
___________________________________ 

"transactionHash": 
"0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8b ", 
"transactionIndex": 0, 
"blockHash": 
"0xef95f2f1ed3ca60b048b4bf67cde2195961e0bba6f70bcbea9a2c4e133e34b46", 
"blockNumber": 3, 
"contractAddress": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b", 
"cumulativeGasUsed": 314159, 
"gasUsed": 30234 

Рассмотрим подробнее, как работает приведенный здесь метод: 
web3.eth.gasPrice()
— возвращает цену газа, как медианное значение цены для 
x
последних блоков; 
web3.ethgetBalance()
— возвращает баланс указанного счета (адреса). Все хеши 
должны быть отправлены в API web3.js как шестнадцатеричные строки, а не ше-
стнадцатеричные литералы. Входные значения для типа 
address
в Solidity тоже 
должны быть шестнадцатеричными строками; 
web3.eth.getTransactionReceipt()
— применяется для получения информации о 
транзакции (квитанции) с использованием хеша. Он возвращает объект квитан-
ции, если транзакция была найдена в блокчейне. В противном случае метод воз-
вращает 
null
. Объект квитанции содержит следующие свойства: 

blockHash
— хеш блока, в который помещена транзакция; 

blockNumber
— номер блока, в который помещена транзакция; 

transactionHash
— хеш транзакции; 

transactionIndex
— целое число, индекс позиции в блоке; 

from
— адрес отправителя; 

to
— адрес получателя, 
null
— если это транзакция создания блока; 

cumulativeGasUsed
— совокупное количество газа, которое расходуется при 
выполнении этой транзакции в блоке; 

gasUsed
— количество газа, расходуемое при выполнении данной одиночной 
транзакции; 

contractAddress
— адрес контракта, созданного транзакцией, если это была 
транзакция, создающая контракт. В противном случае 
null


logs
— массив объектов лога, который сгенерировала данная транзакция. 


Учимся работать с web3.js 
____________________________________ 
[ 103 ] 
___________________________________ 
Отправка эфира 
Давайте научимся отправлять эфир на любой адрес. Для перевода эфира вам потре-
буется метод 
web3.eth.sendTransaction()
. Этот метод можно использовать для от-
правки любых транзакций, но в основном его применяют для перевода эфира, по-
тому что развертывание контракта или вызов метода контракта при помощи этого 
метода являются громоздкими и требуют самостоятельной генерации данных тран-
закции вместо автоматического создания. Метод принимает объект транзакции, 
который обладает следующими свойствами: 
from
— адрес счета отправителя. Если не указан, по умолчанию используется 
свойство 
web3.eth.defaultAccount

to
— необязательное свойство. Остается неопределенным для транзакций созда-
ния контракта; 
value
— необязательное свойство. Сумма перевода в Wei либо сумма вознаграж-
дения при создании контракта; 
gas
— необязательное свойство. Количество газа, расходуемого на транзакцию 
(неиспользованный газ возвращается). Если не указано, задается автоматически; 
gasPrice
— необязательное свойство. Цена газа для данной транзакции в Wei, 
которая определяется по значению цены газа в сети; 
data
— необязательное свойство. Это либо байтовая строка, содержащая при-
соединенное сообщение, либо — в случае создания контракта — код инициали-
зации; 
nonce
— необязательное свойство. Каждая транзакция имеет связанное с ней це-
лое число 
nonce
. Это счетчик, который показывает число транзакций, передан-
ных отправителем транзакции. Если свойство не определено, то задается авто-
матически. Это свойство позволяет предотвратить атаку массовыми транзак-
циями. Напомним, что данное свойство 
nonce
— это вовсе не число 
nonce

которое имеет отношение к майнингу блока. Если мы используем значение 
nonce
, которое больше, чем должна была бы иметь транзакция, то эта транзакция 
встает в очередь, пока не поступят другие транзакции. Например, если свойство 
nonce
следующей транзакции должно иметь значение 
4
, а мы установили значе-
ние 
10
, то Geth будет ждать шесть промежуточных транзакций, прежде чем 
транслировать данную транзакцию. Поэтому наша транзакция, у которой 
nonce
равно десяти, называется 
отложенной транзакцией
(queued transaction), и не 
является 
транзакцией в обработке
(pending transaction). 
Вот простой пример того, как отправляют эфир по заданному адресу: 
var txnHash = web3.eth.sendTransaction({ 
from: web3.eth.accounts[0], 
to: web3.eth.accounts[1], 
value: web3.toWei("1", "ether") 
}); 


Download 9,22 Mb.

Do'stlaringiz bilan baham:
1   ...   37   38   39   40   41   42   43   44   ...   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