Web3.js API 中文文档(4)web3.db


#1

web3.eth.compile.solidity

web3.eth.compile.solidity(sourceString [, callback])

编译Solidity源代码。

参数:

  • String - Solidity源代码。
  • Function -(可选)回调函数,用于支持异步的方式执行[async]。

返回值:

Object - 合约和编译信息。

示例:

var source = "" + 
    "contract test {\n" +
    "   function multiply(uint a) returns(uint d) {\n" +
    "       return a * 7;\n" +
    "   }\n" +
    "}\n";
var compiled = web3.eth.compile.solidity(source);
console.log(compiled); 
// {
  "test": {
    "code": "0x605280600c6000396000f3006000357c010000000000000000000000000000000000000000000000000000000090048063c6888fa114602e57005b60376004356041565b8060005260206000f35b6000600782029050604d565b91905056",
    "info": {
      "source": "contract test {\n\tfunction multiply(uint a) returns(uint d) {\n\t\treturn a * 7;\n\t}\n}\n",
      "language": "Solidity",
      "languageVersion": "0",
      "compilerVersion": "0.8.2",
      "abiDefinition": [
        {
          "constant": false,
          "inputs": [
            {
              "name": "a",
              "type": "uint256"
            }
          ],
          "name": "multiply",
          "outputs": [
            {
              "name": "d",
              "type": "uint256"
            }
          ],
          "type": "function"
        }
      ],
      "userDoc": {
        "methods": {}
      },
      "developerDoc": {
        "methods": {}
      }
    }
  }
}

web3.eth.compile.lll

web3. eth.compile.lll(sourceString [, callback])

编译LLL源代码。

参数:

  • String - LLL源代码。
  • Function -(可选)回调函数,用于支持异步的方式执行[async]。

返回值:

String - 十六进制格式编译后的LLL编码。

示例:

var source = "...";

var code = web3.eth.compile.lll(source);
console.log(code); // "0x603880600c6000396000f3006001600060e060020a600035048063c6888fa114601857005b6021600435602b565b8060005260206000f35b600081600702905091905056"

web3.eth.compile.serpent

web3.eth.compile.serpent(sourceString [, callback])

编译serpent源代码。

参数:

  • String - serpent源代码。
  • Function -(可选)回调函数,用于支持异步的方式执行[async]。

返回值:

String - 十六进制格式的编译后的serpent编码。

web3.eth.namereg

web3.eth.namereg

返回一个全球注意的对象。

使用方式:

查看这里的例子:https://github.com/ethereum/web3.js/blob/master/example/namereg.html

web3.db

web3.db.putString

web3.db.putString(db, key, value)

这个方法应当在我们打算以一个本地数据库的级别存储一个字符串时使用。

参数:

  • String - 存储使用的数据库。
  • String - 存储的键。
  • String - 存储的值。

返回值:

Boolean - true 表示成功,否则返回 false

示例:

web3.db.putString('testDB', 'key', 'myString') // true

web3.db.getString

web3.db.getString(db, key)

从本地的leveldb数据库中返回一个字符串。

参数:

  • String - 存储使用的数据库。
  • String - 存储的键。

返回值:

String - 存储的值。

示例:

var value = web3.db.getString('testDB', 'key');
console.log(value); // "myString"

web3.db.putHex

web3.db.putHex(db, key, value)

在本地的leveldb中存储二进制数据。

参数:

  • String - 存储使用的数据库。
  • String - 存储的键。
  • String - 十六进制格式的二进制。

返回值:

Boolean - 成功返回 true ,失败返回 false

示例:

web3.db.putHex('testDB', 'key', '0x4f554b443'); // true

web3.db.getHex

web3.db.getHex(db, key)

返回本地的leveldb中的二进制数据。

参数:

  • String - 存储使用的数据库。
  • String - 存储的键。

返回值:

String - 存储的十六进制值。

示例:

var value = web3.db.getHex('testDB', 'key');
console.log(value); // "0x4f554b443"
  1. https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify (http://web3.tryblockchain.org/Web3.js-api-refrence.html#fnref1)
  2. Big Number 文档链接: https://github.com/MikeMcl/bignumber.js
    (http://web3.tryblockchain.org/Web3.js-api-refrence.html#fnref2)
  3. ASCII码表 http://baike.baidu.com/link?url=fz4Ytl_tjpUhsPbUb4fa3hyXHKJDMcRB5M3K1p0VStnminbvLX4-UmwPCovk1pZUOIemosGv2hRT-r0flGMtEGk3ON8sQctG4-KU67G3fBiOJX6r1CHoKTi-K6BlEEa6egHulQju1p1n1ce1axyeBK :leftwards_arrow_with_hook:
  4. 工作正在进行中? https://github.com/ethereum/web3.js/pull/375
    (http://web3.tryblockchain.org/Web3.js-api-refrence.html#fnref4)
  5. Web3 Javascript Ðapp API
    (http://web3.tryblockchain.org/Web3.js-api-refrence.html#fnref5)
  6. http://baike.baidu.com/link?url=9QLxfeXVf7pRpSTSugt2I9ylZA9_vh3sbqs8S8J-dVaZJg9AeADF4P0HlwyOjHOsENJKQS8z7cb0YFSDVMmsYf-xgtODmMXdQNovqRqE2B7 (http://web3.tryblockchain.org/Web3.js-api-refrence.html#fnref6)
  7. 参见Web3.js API 基本中的 使用callback 的章节。
    (http://web3.tryblockchain.org/Web3.js-api-refrence.html#fnref7)
  8. 关于 getStroageAt 的说明来源: http://ethereum.stackexchange.com/questions/5865/how-does-web3-eth-getstorageat-work
    (http://web3.tryblockchain.org/Web3.js-api-refrence.html#fnref8)
  9. https://zh.wikipedia.org/wiki/布隆过滤器
    http://web3.tryblockchain.org/Web3.js-api-refrence.html#fnref9)
  10. http://ethereum.stackexchange.com/questions/3346/what-is-and-how-to-calculate-cumulative-gas-use[^cumulative]: http://ethereum.stackexchange.com/questions/3346/what-is-and-how-to-calculate-cumulative-gas-used :leftwards_arrow_with_hook:
  11. http://zeltsinger.com/2016/11/07/neat-ethereum-tricks-the-transaction-nonce/
    (http://web3.tryblockchain.org/Web3.js-api-refrence.html#fnref11)
  12. https://zh.wikipedia.org/wiki/椭圆曲线密码学
    (http://web3.tryblockchain.org/Web3.js-api-refrence.html#fnref12)
  13. 这里整理了一个文章,使用web3.js加密,再使用Solidity的ecrecover校验签名的完整过程。 http://me.tryblockchain.org/web3js-sign-ecrecover-decode.html
    (http://web3.tryblockchain.org/Web3.js-api-refrence.html#fnref13)
  14. https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign