牛骨文教育服务平台(让学习变的简单)
博文笔记

以太坊开发文档09 - javascriptApi

创建时间:2017-12-14 投稿人: 浏览次数:4256

为了让您的应用程序能够在以太坊上工作,您可以使用web3.js库web3提供的对象。在底层,它通过RPC调用与本地节点通信。web3.js与任何暴露RPC层的以太坊节点一起工作。

web3包含eth对象 - web3.eth(专门用于以太坊区块链交互)和shh对象 - web3.shh(用于Whisper交互)。随着时间的推移,我们将介绍其他web3协议的其他对象。工作 示例可以在这里找到。

如果您想使用web3.js查看一些更复杂的示例,请查看这些有用的应用程序模式。

使用回调

由于此API旨在与本地RPC节点一起工作,并且其所有功能默认情况下都使用同步HTTP requests.con

如果你想做异步请求,你可以传递一个可选的回调函数作为最后一个参数。所有的回调函数都使用错误的第一个回调风格:

web3.eth.getBlock(48, function(error, result){
    if(!error)
        console.log(result)
    else
        console.error(error);
})

批量请求

批量请求允许排队请求并一次处理它们。

var batch = web3.createBatch();
batch.add(web3.eth.getBalance.request("0x0000000000000000000000000000000000000000", "latest", callback));
batch.add(web3.eth.contract(abi).at(address).balance.request(address, callback2));
batch.execute();

关于web3.js中大数字的说明

您将始终得到一个平衡值的BigNumber对象,因为JavaScript无法正确处理大数字。看下面的例子:

"101010100324325345346456456456456456456"
// "101010100324325345346456456456456456456"
101010100324325345346456456456456456456
// 1.0101010032432535e+38

web3.js依赖于BigNumber库并自动添加它。

var balance = new BigNumber("131242344353464564564574574567456");
// or var balance = web3.eth.getBalance(someAddress);

balance.plus(21).toString(10); // toString(10) converts it to a number string
// "131242344353464564564574574567477"

下一个例子是行不通的,因为我们有超过20个浮动点,因此建议,让你在总平衡伟,只把它转换为其他单位呈现给用户的时候:

var balance = new BigNumber("13124.234435346456466666457455567456");

balance.plus(21).toString(10); // toString(10) converts it to a number string, but can only show max 20 floating points 
// "13145.23443534645646666646" // you number would be cut after the 20 floating point

Web3 JavascriptÐappAPI参考

  • WEB3
      • API
      • 客户
      • 网络
      • 复仇
      • 耳语
    • 已连接()
    • setProvider(供应商)
    • currentProvider
    • 重启()
    • 沙三段(串)
    • toHex(stringOrNumber)
    • toascii将(十六进制串)
    • fromAscii(textString,[padding])
    • toDecimal(十六进制串)
    • fromDecimal(数字)
    • fromWei(numberStringOrBigNumber,unit)
    • toWei(numberStringOrBigNumber,单位)
    • toBigNumber(numberOrHexString)
    • isAddress(十六进制串)
      • 听/ getListening
      • peerCount / getPeerCount
    • ETH
      • defaultAccount
      • defaultBlock
      • 同步/ getSyncing
      • isSyncing
      • coinbase / getCoinbase
      • hashrate / getHashrate
      • gasPrice / getGasPrice
      • 账户/ getAccounts
      • 采矿/ getMining
      • blockNumber / getBlockNumber
      • 寄存器(hexString)(尚未实现)
      • unRegister(hexString)(尚未实现)
      • 为getBalance(地址)
      • getStorageAt(地址,位置)
      • 引用代码(地址)
      • getBlock(散列/数)
      • getBlockTransactionCount(散列/数)
      • getUncle(散列/数)
      • getBlockUncleCount(散列/数)
      • getTransaction(散)
      • getTransactionFromBlock(hashOrNumber,indexNumber)
      • getTransactionReceipt(散)
      • getTransactionCount(地址)
      • sendTransaction(对象)
      • 呼叫(对象)
      • estimateGas(对象)
      • filter(array(,options))
        • 手表(回调)
        • stopWatching(回调)
        • 得到()
      • 合同(abiArray)
      • contract.myMethod()
      • contract.myEvent()
      • contract.allEvents()
      • getCompilers()
      • compile.lll(串)
      • compile.solidity(串)
      • compile.serpent(串)
      • namereg
      • sendIBANTransaction
      • IBAN
        • FROMADDRESS
        • fromBban
        • createIndirect
        • 已验证
        • isDirect
        • isIndirect
        • 校验
        • 机构
        • 客户
        • 地址
    • D b
      • putString(名称,键,值)
      • getString(名称,键)
      • putHex(名称,键值)
      • getHex(名称,键)
      • 后(postObject)
      • newIdentity()
      • hasIdentity(十六进制串)
      • newGroup(_id,_who)
      • addToGroup(_id,_who)
      • 过滤器(对象/串)
        • 手表(回调)
        • stopWatching(回调)
        • 得到(回调)

用法

WEB3

web3对象提供了所有的方法。

var Web3 = require("web3");
// create an instance of web3 using the HTTP provider.
// NOTE in mist web3 is already available, so check first if its available before instantiating
var web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));

web3.version.api

web3.version.api
// or async
web3.version.getApi(callback(error, result){ ... })
返回

String - 以太坊js api版本。

var version = web3.version.api;
console.log(version); // "0.2.0"

web3.version.client

web3.version.client
// or async
web3.version.getClient(callback(error, result){ ... })
返回

String - 客户机/节点版本。

var version = web3.version.client;
console.log(version); // "Mist/v0.9.3/darwin/go1.4.1"

web3.version.network

web3.version.network
// or async
web3.version.getNetwork(callback(error, result){ ... })
返回

String - 网络协议版本。

var version = web3.version.network;
console.log(version); // 54

web3.version.ethereum

web3.version.ethereum
// or async
web3.version.getEthereum(callback(error, result){ ... })
返回

String - 以太坊协议版本。

var version = web3.version.ethereum;
console.log(version); // 60

web3.version.whisper

web3.version.whisper
// or async
web3.version.getWhisper(callback(error, result){ ... })
返回

String - 耳语协议版本。

var version = web3.version.whisper;
console.log(version); // 20

web3.isConnected

web3.isConnected()

应该被调用来检查一个节点的连接是否存在

参数

没有

返回

Boolean

if(!web3.isConnected()) {

   // show some dialog to ask the user to start a node

} else {

   // start web3 filters, calls, etc

}

web3.setProvider

web3.setProvider(provider)

应该被称为设置提供者。

参数

没有

返回

undefined

web3.setProvider(new web3.providers.HttpProvider("http://localhost:8545")); // 8080 for cpp/AZ, 8545 for go/mist

web3.currentProvider

web3.currentProvider

将包含当前的提供者,如果有的话。这可以用来检查是否雾等已经提供商。

返回

Object- 提供者设置或null;

// Check if mist etc. already set a provider
if(!web3.currentProvider)
    web3.setProvider(new web3.providers.HttpProvider("http://localhost:8545"));

web3.reset

web3.reset(keepIsSyncing)

应该调用重置web3的状态。重设除经理之外的所有事物 卸载所有过滤器。停止轮询。

参数
  1. Boolean- 如果true它将卸载所有的过滤器,但将保持web3.eth.isSyncing()民意调查
返回

undefined

web3.reset();

web3.sha3

web3.sha3(string [, callback])
参数
  1. String - 使用SHA3算法进行散列的字符串
  2. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

String - 给定数据的SHA3。

var str = web3.sha3("Some ASCII string to be hashed");
console.log(str); // "0x536f6d6520415343494920737472696e6720746f20626520686173686564"

var hash = web3.sha3(str);
console.log(hash); // "0xb21dbc7a5eb6042d91f8f584af266f1a512ac89520f43562c6c1e37eab6eb0c4"

web3.toHex

web3.toHex(mixed);

将任何值转换为HEX。

参数
  1. String|Number|Object|Array|BigNumber - 解析为HEX的值。如果它是一个对象或数组,它将是JSON.stringify第一个。如果它是一个BigNumber,它将使它成为一个数字的HEX值。
返回

String- 十六进制字符串mixed

var str = web3.toHex({test: "test"});
console.log(str); // "0x7b2274657374223a2274657374227d"

web3.toAscii

web3.toAscii(hexString);

将HEX字符串转换为ASCII字符串。

参数
  1. String - 要转换为ASCII码的HEX字符串。
返回

String- 由给定的ASCII字符串组成hexString

var str = web3.toAscii("0x657468657265756d000000000000000000000000000000000000000000000000");
console.log(str); // "ethereum"

web3.fromAscii

web3.fromAscii(string [, padding]);

将任何ASCII字符串转换为HEX字符串。

参数
  1. String - 要转换为HEX的ASCII字符串。
  2. Number - 返回的HEX字符串应该有的字节数。
返回

String - 转换后的HEX字符串。

var str = web3.fromAscii("ethereum");
console.log(str); // "0x657468657265756d"

var str2 = web3.fromAscii("ethereum", 32);
console.log(str2); // "0x657468657265756d000000000000000000000000000000000000000000000000"

web3.toDecimal

web3.toDecimal(hexString);

将HEX字符串转换为其数字表示形式。

参数
  1. String - 要转换为数字的HEX字符串。
返回

Number- 代表数据的数字hexString

var number = web3.toDecimal("0x15");
console.log(number); // 21

web3.fromDecimal

web3.fromDecimal(number);

将数字或数字字符串转换为HEX表示形式。

参数
  1. Number|String - 要转换为HEX字符串的数字。
返回

String- 表示给定的HEX字符串number

var value = web3.fromDecimal("21");
console.log(value); // "0x15"

web3.fromWei

web3.fromWei(number, unit)

将一些wei转换成以下的ethereum单元:

  • kwei/ada
  • mwei/babbage
  • gwei/shannon
  • szabo
  • finney
  • ether
  • kethergrand/einstein
  • mether
  • gether
  • tether
参数
  1. Number|String|BigNumber - 一个数字或BigNumber实例。
  2. String - 以上以太单位之一。
返回

String|BigNumber- 数字字符串或BigNumber实例,具体取决于给定的number参数。

var value = web3.fromWei("21000000000000", "finney");
console.log(value); // "0.021"

web3.toWei

web3.toWei(number, unit)

将以太坊单位转换为wei。可能的单位是:

  • kwei/ada
  • mwei/babbage
  • gwei/shannon
  • szabo
  • finney
  • ether
  • kethergrand/einstein
  • mether
  • gether
  • tether
参数
  1. Number|String|BigNumber - 一个数字或BigNumber实例。
  2. String - 以上以太单位之一。
返回

String|BigNumber- 数字字符串或BigNumber实例,具体取决于给定的number参数。

var value = web3.toWei("1", "ether");
console.log(value); // "1000000000000000000"

web3.toBigNumber

web3.toBigNumber(numberOrHexString);

将给定的数字转换为BigNumber实例。

请参阅BigNumber上的注释。

参数
  1. Number|String - 数字的数字,字符串或HEX字符串。
返回

BigNumber - 表示给定值的BigNumber实例。

var value = web3.toBigNumber("200000000000000000000001");
console.log(value); // instanceOf BigNumber
console.log(value.toNumber()); // 2.0000000000000002e+23
console.log(value.toString(10)); // "200000000000000000000001"

web3.net

web3.net.listening

web3.net.listening
// or async
web3.net.getListening(callback(error, result){ ... })

该属性是只读的,说明节点是否正在主动侦听网络连接。

返回

Booleantrue如果客户端正在主动侦听网络连接,否则false

var listening = web3.net.listening;
console.log(listening); // true of false

web3.net.peerCount

web3.net.peerCount
// or async
web3.net.getPeerCount(callback(error, result){ ... })

该属性是只读的,并返回连接的对等体的数量。

返回

Number - 当前连接到客户端的对等点的数量。

var peerCount = web3.net.peerCount;
console.log(peerCount); // 4

web3.eth

包含以太坊区块链相关的方法。

var eth = web3.eth;

web3.eth.defaultAccount

web3.eth.defaultAccount

这个默认地址用于以下方法(可以通过指定from属性来选择覆盖它):

  • web3.eth.sendTransaction()
  • web3.eth.call()

String,20字节 - 您拥有的任何地址,或者您拥有私钥的地址。

默认是 undefined

返回

String,20字节 - 当前设置的默认地址。

var defaultAccount = web3.eth.defaultAccount;
console.log(defaultAccount); // ""

// set the default block
web3.eth.defaultAccount = "0x8888f1f195afa192cfee860698584c030f4c9db1";

web3.eth.defaultBlock

web3.eth.defaultBlock

这个默认块用于以下方法(可选地,您可以通过将defaultBlock作为最后一个参数来覆盖defaultBlock):

  • web3.eth.getBalance()
  • web3.eth.getCode()
  • web3.eth.getTransactionCount()
  • web3.eth.getStorageAt()
  • web3.eth.call()

默认块参数可以是以下之一:

  • Number - 一个块号码
  • String"earliest"genisis块
  • String"latest",最新的区块(当前区块链头)
  • String"pending",目前开采的区块(包括待交易)

默认是 latest

返回

Number|String - 查询状态时使用的默认块编号。

var defaultBlock = web3.eth.defaultBlock;
console.log(defaultBlock); // "latest"

// set the default block
web3.eth.defaultBlock = 231;

web3.eth.syncing

web3.eth.syncing
// or async
web3.eth.getSyncing(callback(error, result){ ... })

此属性是只读的,并在节点正在同步时返回同步对象false

返回

Object|Boolean- 同步对象如下所示,当节点当前正在同步或false

  • startingBlockNumber- 同步开始的块号。
  • currentBlockNumber- 节点当前同步到的块的块号。
  • highestBlockNumber- 要同步到的估计块号码。
var sync = web3.eth.syncing;
console.log(sync);
/*
{
   startingBlock: 300,
   currentBlock: 312,
   highestBlock: 512
}
*/

web3.eth.isSyncing

web3.eth.isSyncing(callback);

这个便利函数调用callback每次同步开始,更新和停止。

返回

Object - 具有以下方法的isSyncing对象:

  • syncing.addCallback():添加另一个回调,当节点启动或停止同步时将调用该回调。
  • syncing.stopWatching():停止同步回调。
回调返回值
  • Booleantrue当同步开始和false停止时,回调将被触发。
  • Object - 同步时,将返回同步对象:
    • startingBlockNumber- 同步开始的块号。
    • currentBlockNumber- 节点当前同步到的块的块号。
    • highestBlockNumber- 要同步到的估计块号码。
web3.eth.isSyncing(function(error, sync){
    if(!error) {
        // stop all app activity
        if(sync === true) {
           // we use `true`, so it stops all filters, but not the web3.eth.syncing polling
           web3.reset(true);

        // show sync info
        } else if(sync) {
           console.log(sync.currentBlock);

        // re-gain app operation
        } else {
            // run your app init function...
        }
    }
});

web3.eth.coinbase

web3.eth.coinbase
// or async
web3.eth.getCoinbase(callback(error, result){ ... })

这个属性是只读的,并返回采矿奖励去的coinbase地址。

返回

String - 客户的coinbase地址。

var coinbase = web3.eth.coinbase;
console.log(coinbase); // "0x407d73d8a49eeb85d32cf465507dd71d507100c1"

web3.eth.mining

web3.eth.mining
// or async
web3.eth.getMining(callback(error, result){ ... })

该属性是只读的,表示节点是否正在挖掘。

返回

Booleantrue如果客户正在挖矿,否则false

var mining = web3.eth.mining;
console.log(mining); // true or false

web3.eth.hashrate

web3.eth.hashrate
// or async
web3.eth.getHashrate(callback(error, result){ ... })

此属性是只读的,并返回节点正在挖掘的每秒散列数。

返回

Number - 每秒的哈希数。

var hashrate = web3.eth.hashrate;
console.log(hashrate); // 493736

web3.eth.gasPrice

web3.eth.gasPrice
// or async
web3.eth.getGasPrice(callback(error, result){ ... })

此属性是只读的,并返回当前的天然气价格。天然气价格是由x最新块中位数天然气价格决定的。

返回

BigNumber - 当前天然气价格的一个BigNumber实例。

请参阅BigNumber上的注释。

var gasPrice = web3.eth.gasPrice;
console.log(gasPrice.toString(10)); // "10000000000000"

web3.eth.accounts

web3.eth.accounts
// or async
web3.eth.getAccounts(callback(error, result){ ... })

该属性是只读的,并返回节点控制的帐户列表。

返回

Array - 由客户端控制的地址数组。

var accounts = web3.eth.accounts;
console.log(accounts); // ["0x407d73d8a49eeb85d32cf465507dd71d507100c1"]

web3.eth.blockNumber

web3.eth.blockNumber
// or async
web3.eth.getBlockNumber(callback(error, result){ ... })

此属性是只读的,并返回当前的块号。

返回

Number - 最近的块的数量。

var number = web3.eth.blockNumber;
console.log(number); // 2744

web3.eth.register

web3.eth.register(addressHexString [, callback])

(尚未实施)注册包含的给定地址web3.eth.accounts。这允许将非私钥拥有的账户关联为一个拥有的账户(例如,合同钱包)。

参数
  1. String - 要注册的地址
  2. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

web3.eth.register("0x407d73d8a49eeb85d32cf465507dd71d507100ca")

web3.eth.unRegister

 web3.eth.unRegister(addressHexString [, callback])

(尚未执行)取消注册给定的地址。

参数
  1. String - 取消注册的地址。
  2. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

web3.eth.unregister("0x407d73d8a49eeb85d32cf465507dd71d507100ca")

web3.eth.getBalance

web3.eth.getBalance(addressHexString [, defaultBlock] [, callback])

获取给定块的地址余额。

参数
  1. String - 获得余额的地址。
  2. Number|String- (可选)如果你传递这个参数,它将不使用web3.eth.defaultBlock设置的默认块。
  3. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

String - wei中给定地址的当前余额的BigNumber实例。

请参阅BigNumber上的注释。

var balance = web3.eth.getBalance("0x407d73d8a49eeb85d32cf465507dd71d507100c1");
console.log(balance); // instanceof BigNumber
console.log(balance.toString(10)); // "1000000000000"
console.log(balance.toNumber()); // 1000000000000

web3.eth.getStorageAt

web3.eth.getStorageAt(addressHexString, position [, defaultBlock] [, callback])

获取存储在地址的特定位置。

参数
  1. String - 从中​​获取存储的地址。
  2. Number - 存储的索引位置。
  3. Number|String- (可选)如果你传递这个参数,它将不使用web3.eth.defaultBlock设置的默认块。
  4. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

String - 给定位置的存储值。

var state = web3.eth.getStorageAt("0x407d73d8a49eeb85d32cf465507dd71d507100c1", 0);
console.log(state); // "0x03"

web3.eth.getCode

web3.eth.getCode(addressHexString [, defaultBlock] [, callback])

获取特定地址的代码。

参数
  1. String - 从中​​获取代码的地址。
  2. Number|String- (可选)如果你传递这个参数,它将不使用web3.eth.defaultBlock设置的默认块。
  3. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

String- 给定地址的数据addressHexString

var code = web3.eth.getCode("0xd5677cf67b5aa051bb40496e68ad359eb97cfbf8");
console.log(code); // "0x600160008035811a818181146012578301005b601b6001356025565b8060005260206000f25b600060078202905091905056"

web3.eth.getBlock

 web3.eth.getBlock(blockHashOrBlockNumber [, returnTransactionObjects] [, callback])

返回与块编号或块散列匹配的块。

参数
  1. String|Number - 块号或散列。或者是字符串"earliest""latest"或者"pending"像默认的block参数那样。
  2. Boolean- (可选,默认false)如果true返回的块将包含所有事务作为对象,如果false它只包含事务散列。
  3. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

Object - 块对象:

  • numberNumber- 块号。null当其挂起的块。
  • hashString,32字节 - 块的散列。null当其挂起的块。
  • parentHashString,32字节 - 父块的散列。
  • nonceString,8字节 - 生成的工作量证明的散列值。null当其挂起的块。
  • sha3UnclesString,32个字节 - 块中的数据。
  • logsBloomString,256字节 - 块的日志的布隆过滤器。null当其挂起的块。
  • transactionsRootString,32字节 - 块的事务树的根
  • stateRootString,32字节 - 块的最终状态树的根。
  • minerString,20 Bytes - 给予采矿奖励的受益人的地址。
  • difficultyBigNumber- 这个块的难度的整数。
  • totalDifficultyBigNumber- 直到这个块的链条总难度的整数。
  • extraDataString- 该块的“额外数据”字段。
  • sizeNumber- 以字节为单位整数该块的大小。
  • gasLimitNumber- 在这个区块允许的最大的气体。
  • gasUsedNumber- 此区块内所有交易使用的天然气总量。
  • timestampNumber- 块整理时的unix时间戳。
  • transactionsArray- 根据最后给定的参数,事务对象数组或32字节事务散列。
  • unclesArray- 一些叔叔哈希。
var info = web3.eth.block(3150);
console.log(info);
/*
{
  "number": 3,
  "hash": "0xef95f2f1ed3ca60b048b4bf67cde2195961e0bba6f70bcbea9a2c4e133e34b46",
  "parentHash": "0x2302e1c0b972d00932deb5dab9eb2982f570597d9d42504c05d9c2147eaf9c88",
  "nonce": "0xfb6e1a62d119228b",
  "sha3Uncles": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
  "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  "transactionsRoot": "0x3a1b03875115b79539e5bd33fb00d8f7b7cd61929d5a3c574f507b8acf415bee",
  "stateRoot": "0xf1133199d44695dfa8fd1bcfe424d82854b5cebef75bddd7e40ea94cda515bcb",
  "miner": "0x8888f1f195afa192cfee860698584c030f4c9db1",
  "difficulty": BigNumber,
  "totalDifficulty": BigNumber,
  "size": 616,
  "extraData": "0x",
  "gasLimit": 3141592,
  "gasUsed": 21662,
  "timestamp": 1429287689,
  "transactions": [
    "0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8b"
  ],
  "uncles": []
}
*/

web3.eth.getBlockTransactionCount

web3.eth.getBlockTransactionCount(hashStringOrBlockNumber [, callback])

返回给定块中的事务数。

参数
  1. String|Number - 块号或散列。或者是字符串"earliest""latest"或者"pending"像默认的block参数那样。
  2. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

Number - 给定块中的事务数量。

var number = web3.eth.getBlockTransactionCount("0x407d73d8a49eeb85d32cf465507dd71d507100c1");
console.log(number); // 1

web3.eth.getUncle

web3.eth.getUncle(blockHashStringOrNumber, uncleNumber [, returnTransactionObjects] [, callback])

通过给定的叔叔索引位置返回一个块叔叔。

参数
  1. String|Number - 块号或散列。或者是字符串"earliest""latest"或者"pending"像默认的block参数那样。
  2. Number - 叔叔的指标位置。
  3. Boolean- (可选,默认false)如果true返回的块将包含所有事务作为对象,如果false它只包含事务散列。
  4. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

Object - 回国的叔叔。有关返回值,请参阅web3.eth.getBlock()。

注:叔叔不包含个人交易。

var uncle = web3.eth.getUncle(500, 0);
console.log(uncle); // see web3.eth.getBlock

web3.eth.getTransaction
web3.eth.getTransaction(transactionHash [, callback])

返回匹配给定事务哈希的事务。

参数
  1. String - 交易哈希。
  2. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

Object- 一个交易对象的哈希值transactionHash

  • hashString,32字节 - 交易的散列。
  • nonceNumber- 发件人在此之前进行的交易次数。
  • blockHashString,32字节 - 当这个事务处于null挂起状态时,这个事务所在的块的散列。
  • blockNumberNumber- 该交易所在null的区号。
  • transactionIndexNumber- 块中交易指标位置的整数。null当它待定。
  • fromString,20字节 - 发件人的地址。
  • toString,20字节 - 接收器的地址。null当其创建合同交易时。
  • valueBigNumber- 在魏的价值转移。
  • gasPriceBigNumber- 魏先生提供的天然气价格。
  • gasNumber- 发件人提供的气体。
  • inputString- 与交易一起发送的数据。
var blockNumber = 668;
var indexOfTransaction = 0

var transaction = web3.eth.getTransaction(blockNumber, indexOfTransaction);
console.log(transaction);
/*
{
  "hash": "0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8b",
  "nonce": 2,
  "blockHash": "0xef95f2f1ed3ca60b048b4bf67cde2195961e0bba6f70bcbea9a2c4e133e34b46",
  "blockNumber": 3,
  "transactionIndex": 0,
  "from": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
  "to": "0x6295ee1b4f6dd65047762f924ecd367c17eabf8f",
  "value": BigNumber,
  "gas": 314159,
  "gasPrice": BigNumber,
  "input": "0x57cb2fc4"
}
*/

web3.eth.getTransactionFromBlock

getTransactionFromBlock(hashStringOrNumber, indexNumber [, callback])

根据块散列或数字以及交易索引位置返回交易。

参数
  1. String - 一个块号或散列。或者是字符串"earliest""latest"或者"pending"像默认的block参数那样。
  2. Number - 交易指标头寸。
  3. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

Object- 一个事务对象,请参阅web3.eth.getTransaction:

var transaction = web3.eth.getTransactionFromBlock("0x4534534534", 2);
console.log(transaction); // see web3.eth.getTransaction

web3.eth.getTransactionReceipt

web3.eth.getTransactionReceipt(hashString [, callback])

按事务散列返回事务的接收。

请注意,收据不可用于未完成的交易。

参数
  1. String - 交易哈希。
  2. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

Object- 交易收据对象,或未null找到收据时:

  • blockHashString,32字节 - 此事务所在块的散列。
  • blockNumberNumber- 此交易所在的区号。
  • transactionHashString,32字节 - 交易的散列。
  • transactionIndexNumber- 块中交易指标位置的整数。
  • fromString,20字节 - 发件人的地址。
  • toString,20字节 - 接收器的地址。null当其创建合同交易时。
  • cumulativeGasUsedNumber- 该交易在区块中执行时使用的天然气总量。
  • gasUsedNumber- 这一特定交易单独使用的天然气量。
  • contractAddressString- 20字节 - 创建合同地址(如果交易是创建合同),否则null
  • logs: Array- 该事务生成的日志对象数组。
var receipt = web3.eth.getTransactionReceipt("0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8b");
console.log(receipt);
{
  "transactionHash": "0x9fc76417374aa880d4449a1f7f31ec597f00b1f6f3dd2d66f4c9c6c445836d8b",
  "transactionIndex": 0,
  "blockHash": "0xef95f2f1ed3ca60b048b4bf67cde2195961e0bba6f70bcbea9a2c4e133e34b46",
  "blockNumber": 3,
  "contractAddress": "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
  "cumulativeGasUsed": 314159,
  "gasUsed": 30234,
  "logs": [{
         // logs as returned by getFilterLogs, etc.
     }, ...]
}

web3.eth.getTransactionCount

web3.eth.getTransactionCount(addressHexString [, defaultBlock] [, callback])

获取从该地址发送的交易数量。

参数
  1. String - 从中​​获取交易数量的地址。
  2. Number|String- (可选)如果你传递这个参数,它将不使用web3.eth.defaultBlock设置的默认块。
  3. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

Number - 从给定地址发送的交易数量。

var number = web3.eth.getTransactionCount("0x407d73d8a49eeb85d32cf465507dd71d507100c1");
console.log(number); // 1

web3.eth.sendTransaction

web3.eth.sendTransaction(transactionObject [, callback])

发送一个事务到网络。

参数
  1. Object - 要发送的交易对象:
    • fromString- 发送帐户的地址。如果未指定,请使用web3.eth.defaultAccount属性。
    • toString- (可选)消息的目标地址,对于创建合同的事务没有定义。
    • valueNumber|String|BigNumber- (可选)魏为交易而转让的价值,如果是合同创造交易,则也为捐赠。
    • gasNumber|String|BigNumber- (可选,默认:待定)交易使用的天然气量(未使用的天然气可退还)。
    • gasPriceNumber|String|BigNumber- (可选,默认:待定)wei中此次交易的天然气价格,默认为平均网络天然气价格。
    • dataString- (可选)包含消息关联数据的字节字符串,或者创建合同的事务中的初始化代码。
    • nonceNumber - (可选)一个随机数的整数。这允许覆盖使用相同的随机数的您自己的未决事务。
  2. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

String - 32字节的事务散列为HEX字符串。

如果事务是创建合同,则使用web3.eth.getTransactionReceipt()获取合同地址。


// compiled solidity source code using https://chriseth.github.io/cpp-ethereum/
var code = "603d80600c6000396000f3007c01000000000000000000000000000000000000000000000000000000006000350463c6888fa18114602d57005b600760043502
8060005260206000f3";

web3.eth.sendTransaction({data: code}, function(err, address) {
  if (!err)
    console.log(address); // "0x7f9fade1c0d57a7af66ab4ead7c2eb7b11a91385"
});

web3.eth.call

web3.eth.call(callObject [, defaultBlock] [, callback])

执行消息调用事务,该消息调用事务在节点的VM中直接执行,但不会开发到区块链中。

参数
  1. Object- 一个事务对象见web3.eth.sendTransaction,不同之处在于调用该from属性也是可选的。
  2. Number|String- (可选)如果你传递这个参数,它将不使用web3.eth.defaultBlock设置的默认块。
  3. Function - (可选)如果传递一个回调,HTTP请求将变为异步。详情请参阅此说明。
返回

String - 呼叫的返回数据,例如一个代码函数的返回值。

var result = web3.eth.call({
    to: "0xc4abd0339eb8d57087278718986382264244252f", 
    data: "0xc6888fa10000000000000000000000000000000000000000000000000000000000000003"
});
console.log(result); // "0x0000000000000000000000000000000000000000000000000000000000000015"

web3.eth.estimateGas

web3.eth.estimateGas(callObject [, defaultBlock] [, callback])

执行消息调用或事务,该消息调用或事务在节点的VM中直接执行,但从未开采到区块链中并返回所使用的气体量。

参数

请参阅web3.eth.sendTransaction,期望所有属性都是可选的。

返回

Number - 用于模拟呼叫/交易的废气。

var result = web3.eth.estimateGas({
    to: "0xc4abd0339eb8d57087278718986382264244252f", 
    data: "0xc6888fa10000000000000000000000000000000000000000000000000000000000000003"
});
console.log(result); // "0x0000000000000000000000000000000000000000000000000000000000000015"

web3.eth.filter

// can be "latest" or "pending"
var filter = web3.eth.filter(filterString);
// OR object are log filter options
var filter = web3.eth.filter(options);

// watch for changes
filter.watch(function(error, result){
  if (!error)
    console.log(result);
});

// Additionally you can start watching right away, by passing a callback:
web3.eth.filter(options, function(error, result){
  if (!error)
    console.log(result);
});
参数
  1. String|Object- 字符串"latest""pending"分别监视最新块或未决事务中的更改。或者如下所示的过滤器选项对象:
    • fromBlockNumber|String- 最早的块的数量(latest可以表示最近的和pending当前的挖掘块)。默认情况下latest
    • toBlockNumber|String- 最新块的编号(latest可以表示最近的和pending当前正在挖掘的块)。默认情况下latest
    • addressString- 一个地址或一个地址列表,只能从特定账户获取日志。
    • topicsArray of Strings- 必须分别出现在日志条目中的值数组。顺序是重要的,如果你想离开话题使用null,例如[null, "0x00..."]
返回

Object - 具有以下方法的过滤器对象:

  • filter.get(callback):返回所有符合过滤器的日志条目。
  • filter.watch(callback):监视适合过滤器的状态更改并调用回调。详情请参阅此说明。
  • filter.stopWatching():停止监视并卸载节点中的过滤器。一旦完成,应该总是被调用。
观看回调返回值
  • String- 使用"latest"参数时,它返回最后一个传入块的块散列。
  • String- 使用"pending"参数时,它返回最后一个添加挂起事务的事务散列。
  • Object - 使用手动筛选器选项时,它将按如下方式返回一个日志对象:
    • logIndexNumber- 块中日志索引位置的整数。null当其挂起的日志。
    • transactionIndexNumber- 整数交易指标头寸日志是从中创建的。null当其挂起的日志。
    • transactionHashString,32字节 - 创建此日志的事务的散列值。null当其挂起的日志。
    • blockHashString,32字节 - 这个日志所在的块的哈希nullnull当其挂起的日志。
    • blockNumberNumbernull当其挂起时,该日志所在的块号。null当其挂起的日志。
    • addressString,32字节 - 这个日志起源的地址。
    • dataString- 包含日志的一个或多个32字节的非索引参数。
    • topicsArray of StringsDATA索引日志参数0到4 32字节的数组。(稳固性:第一个主题是事件签名的散列(例如Deposit(address,bytes32,uint256)),除了用说明anonymous符声明事件)。

注意事件过滤器返回值请参阅合同事件

var filter = web3.eth.filter("pending
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。