{"id":6061,"date":"2018-09-22T05:10:17","date_gmt":"2018-09-21T20:10:17","guid":{"rendered":"http:\/\/blog.jansnap.com\/?p=6061"},"modified":"2021-12-15T01:46:00","modified_gmt":"2021-12-14T16:46:00","slug":"cryptozombies%e3%81%a7%e5%be%97%e3%81%9f%e7%9f%a5%e8%ad%98%e5%be%8c%e5%8d%8a%e8%87%aa%e5%88%86%e7%94%a8%e3%83%a1%e3%83%a2","status":"publish","type":"post","link":"https:\/\/blog.jansnap.com\/?p=6061","title":{"rendered":"CryptoZombies\u3067\u5f97\u305f\u77e5\u8b58(\u5f8c\u534a)(\u81ea\u5206\u7528\u30e1\u30e2)"},"content":{"rendered":"<p><a href=\"https:\/\/cryptozombies.io\/jp\/\" rel=\"nofollow noopener\" target=\"_blank\">CryptoZombies<\/a>\u306e\u7d9a\u304d\u3067\u3059\u3002<\/p>\n\n<h2><span class=\"ez-toc-section\" id=\"%E3%83%AC%E3%83%83%E3%82%B9%E3%83%B34_%E3%82%BE%E3%83%B3%E3%83%93%E3%81%AE%E3%83%90%E3%83%88%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0\"><\/span>\n\u30ec\u30c3\u30b9\u30f34:\u30be\u30f3\u30d3\u306e\u30d0\u30c8\u30eb\u30b7\u30b9\u30c6\u30e0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<h3><span class=\"ez-toc-section\" id=\"payable%E4%BF%AE%E9%A3%BE%E8%A9%9E\"><\/span>\npayable\u4fee\u98fe\u8a5e<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u304c\u304a\u91d1(Ether)\u3092\u53d7\u3051\u53d6\u308c\u308b\u3088\u3046\u306b\u3059\u308b\u3002\n\n<ul>\n<li>\n<code>ether<\/code>\u3068\u3044\u3046\u7d44\u307f\u8fbc\u307f\u5b9a\u6570\u3092\u4f7f\u3048\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u4f8b(Solidity\u5074)<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">contract OnlineStore {\n  function buySomething() external payable {\n    \/\/ Check to make sure 0.001 ether was sent to the function call:\n    require(msg.value == 0.001 ether);\n    \/\/ If so, some logic to transfer the digital item to the caller of the function:\n    transferThing(msg.sender);\n  }<\/code><\/pre>\n\n\n\n<ul>\n<li>\u4f8b(web3.js\uff08DApp\u306eJavaScript\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\uff09\u5074)<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">\/\/ Assuming `OnlineStore` points to your contract on Ethereum:\nOnlineStore.buySomething({from: web3.eth.defaultAccount, value: web3.utils.toWei(0.001)})<\/code><\/pre>\n\n\n\n<h3><span class=\"ez-toc-section\" id=\"transfer%E9%96%A2%E6%95%B0\"><\/span>\ntransfer\u95a2\u6570<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u304b\u3089\u4efb\u610f\u306e\u30a2\u30c9\u30ec\u30b9\u306b\u304a\u91d1(Ether)\u3092\u9001\u308b\u95a2\u6570\u3002<a href=\"https:\/\/solidity.readthedocs.io\/en\/develop\/types.html#members-of-Addresses\" rel=\"nofollow noopener\" target=\"_blank\">Members of address<\/a>\u3092\u53c2\u7167\u3002\n\n<ul>\n<li>\n<code>this.balance<\/code>\u3067\u3001\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u5185\u306e\u6b8b\u9ad8\u3092\u78ba\u8a8d\u3067\u304d\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<li>owner\u306b\u4f5c\u6210\u8005\u306e\u30a2\u30c9\u30ec\u30b9\u304c\u5165\u3063\u3066\u3044\u308b\u5834\u5408\u3001<code>owner.transfer(this.balance);<\/code>\u306e\u3088\u3046\u306b\u66f8\u3051\u3070\u3001\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u5185\u306e\u5168\u984d\u3092owner\u306b\u9001\u91d1\u3067\u304d\u308b\u3002 \n\n<ul>\n<li>\u4f8b\u3048\u3070\u3001\u30a2\u30a4\u30c6\u30e0\u306e\u8cfc\u5165\u6642\u306b\u652f\u6255\u3044\u304c\u591a\u3059\u304e\u305f\u5834\u5408\u3001\u304a\u91e3\u308a\u3092\u8cfc\u5165\u8005\u306b\u8fd4\u91d1\u3059\u308b\u306b\u306f\u3001<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">uint itemFee = 0.001 ether;\nmsg.sender.transfer(msg.value - itemFee);<\/code><\/pre>\n\n\n\n<h3><span class=\"ez-toc-section\" id=\"%E4%B9%B1%E6%95%B0\"><\/span>\n\u4e71\u6570<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\u5b8c\u5168\u306a\u4e71\u6570\u3092\u5f97\u308b\u3053\u3068\u306f\u3067\u304d\u306a\u3044\u3002<\/li>\n<li>keccak256\u30cf\u30c3\u30b7\u30e5\u95a2\u6570\u3092\u4f7f\u3063\u3066\u3001now\u3084msg.sender\u3084\u81ea\u524d\u306enonce\u3092\u4f7f\u3063\u3066\u4e71\u6570\u3092\u5f97\u308b\u3053\u3068\u306f\u3067\u304d\u308b\u304c\u3001\u4e0d\u8aa0\u5b9f\u306a\u30ce\u30fc\u30c9\u304c\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u3092\u767a\u884c\u3057\u3001\u81ea\u5206\u306b\u6709\u5229\u306a\u4e71\u6570\u306b\u306a\u308b\u307e\u3067\u4ed6\u306e\u30ce\u30fc\u30c9\u306b\u4f1d\u642c\u3057\u306a\u3044\u3088\u3046\u306b\u3059\u308c\u3070\u3001\u7d50\u679c\u3092\u64cd\u4f5c\u3067\u304d\u308b\u305f\u3081\u3002<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"%E3%83%AA%E3%83%95%E3%82%A1%E3%82%AF%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0%EF%BC%9A%E3%82%BE%E3%83%B3%E3%83%93%E3%81%AE%E6%8C%81%E3%81%A1%E4%B8%BB%E3%81%A7%E3%81%82%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8Bmodifier\"><\/span>\n\u30ea\u30d5\u30a1\u30af\u30bf\u30ea\u30f3\u30b0\uff1a\u30be\u30f3\u30d3\u306e\u6301\u3061\u4e3b\u3067\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308bmodifier<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\u95a2\u6570\u3092\u547c\u3073\u51fa\u3057\u305f\u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u3001_zombieId\u306e\u30be\u30f3\u30d3\u306e\u30aa\u30fc\u30ca\u30fc\u3067\u3042\u308b\u304b\u306e\u30c1\u30a7\u30c3\u30af\u306f\u983b\u7e41\u306b\u4f7f\u308f\u308c\u308b\u306e\u3067\u3001<code>modifier<\/code>\u306b\u3057\u3066\u307e\u3068\u3081\u308b\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">modifier ownerOf(uint _zombieId) {\n  require(msg.sender == zombieToOwner[_zombieId]);\n  _;\n}<\/code><\/pre>\n\n\n\n<h2><span class=\"ez-toc-section\" id=\"%E3%83%AC%E3%83%83%E3%82%B9%E3%83%B35_ERC721%E3%81%A8%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E5%8F%8E%E9%9B%86%E7%89%A9\"><\/span>\n\u30ec\u30c3\u30b9\u30f35:ERC721\u3068\u30af\u30ea\u30d7\u30c8\u53ce\u96c6\u7269<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<h3><span class=\"ez-toc-section\" id=\"%E3%82%A4%E3%83%BC%E3%82%B5%E3%83%AA%E3%82%A2%E3%83%A0%E4%B8%8A%E3%81%AE%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%81%A8%E3%81%AF\"><\/span>\n(\u30a4\u30fc\u30b5\u30ea\u30a2\u30e0\u4e0a\u306e)\u30c8\u30fc\u30af\u30f3\u3068\u306f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\n<p>\u57fa\u672c\u7684\u306b\u306f\u3001\u4ee5\u4e0b\u306e\uff12\u3064\u3092\u6301\u3064\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u3002<\/p>\n\n<ul>\n<li>\u8ab0\u304c\u30c8\u30fc\u30af\u30f3\u3092\u3069\u308c\u304f\u3089\u3044\u3092\u6240\u6709\u3057\u3066\u3044\u308b\u306e\u304b\u3092\u8a18\u9332\u3059\u308b\u5909\u6570<\/li>\n<li>\u30e6\u30fc\u30b6\u30fc\u304c\u81ea\u5206\u306e\u30c8\u30fc\u30af\u30f3\u3092\u4ed6\u306e\u30a2\u30c9\u30ec\u30b9\u306b\u9001\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u6a5f\u80fd<\/li>\n<\/ul>\n<\/li>\n<li><p>ERC20\u30c8\u30fc\u30af\u30f3\u306f\u3001\u540c\u3058\u540d\u524d\u3067\u540c\u3058\u95a2\u6570\u3092\u6301\u3063\u3066\u3044\u308b\u306e\u3067\u3001ERC20\u306b\u6e96\u62e0\u3057\u305f\u5225\u306a\u7a2e\u985e\u306e\u30c8\u30fc\u30af\u30f3\u3068\u3084\u308a\u3068\u308a\u3067\u304d\u308b\u3002<\/p><\/li>\n<li><p>\u3053\u306e\u3088\u3046\u306b\u3001ERC20\u30c8\u30fc\u30af\u30f3\u306f\u901a\u8ca8\u306e\u3088\u3046\u306b\u4f7f\u3048\u308b\u3002<\/p><\/li>\n<li><p>CryptZombie\u3067\u4f5c\u3063\u305f\u30be\u30f3\u30d3\u306e\u3088\u3046\u306a\u30af\u30ea\u30d7\u30c8\u53ce\u96c6\u7269\uff08\u305d\u308c\u305e\u308c\u304c\u7570\u306a\u3063\u3066\u3044\u3066\u3001\u5206\u5272\u3067\u304d\u306a\u3044\u7269\uff09\u306b\u306f\u3001ERC721\u30c8\u30fc\u30af\u30f3\u304c\u9069\u3057\u3066\u3044\u308b\u3002<\/p><\/li>\n<li><p>\u898f\u683c\u306b\u5f93\u3046\u3053\u3068\u306b\u3088\u308a\u3001\u4ed6\u306e\u8ab0\u304b\u304c\u30aa\u30fc\u30af\u30b7\u30e7\u30f3\u3084\u8ca9\u58f2\u306e\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3092\u4f5c\u308c\u308b\u3002<\/p><\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"%E5%A4%9A%E9%87%8D%E7%B6%99%E6%89%BF\"><\/span>\n\u591a\u91cd\u7d99\u627f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\n<code>contract ZombieOwnership is ZombieAttack, ERC721 {<\/code>\u306e\u3088\u3046\u306b\u3001\u7d99\u627f\u5143\u3092\u30ab\u30f3\u30de\u3067\u533a\u5207\u3063\u3066\u3001\u8907\u6570\u306e\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u3092\u7d99\u627f\u3067\u304d\u308b\u3002<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"ERC721%E3%81%AB%E6%BA%96%E6%8B%A0%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E5%AE%9F%E8%A3%85\"><\/span>\nERC721\u306b\u6e96\u62e0\u3059\u308b\u305f\u3081\u306e\u5b9f\u88c5<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<h2><span class=\"ez-toc-section\" id=\"%E6%AE%8B%E9%AB%98%E9%96%A2%E9%80%A3\"><\/span>\n\u6b8b\u9ad8\u95a2\u9023<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<ul>\n<li>balanceOf\u30fb\u30fb\u30fbaddress\u3092\u53d7\u3051\u53d6\u308a\u3001\u305d\u306e\u30a2\u30c9\u30ec\u30b9\u306e\u30c8\u30fc\u30af\u30f3\u91cf(\u4fdd\u6709\u3059\u308b\u30be\u30f3\u30d3\u306e\u6570)\u3092\u8fd4\u3059\u3002<\/li>\n<li>ownerOf\u30fb\u30fb\u30fb\u30c8\u30fc\u30af\u30f3ID(\u30be\u30f3\u30d3ID)\u3092\u53d7\u3051\u53d6\u308a\u3001\u305d\u306e\u6240\u6709\u8005\u306e\u30a2\u30c9\u30ec\u30b9\u3092\u8fd4\u3059\u3002\n\n<ul>\n<li>\u30ec\u30c3\u30b9\u30f3\u5185\u3067\u306f\u3001\u540c\u3058\u540d\u524d\u306emodifier\u3092\u4f7f\u3063\u3066\u3044\u305f\u306e\u3067\u3001modifier\u306e\u540d\u524d\u3092\u5909\u66f4\u3057\u305f\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n<h2><span class=\"ez-toc-section\" id=\"%E6%89%80%E6%9C%89%E6%A8%A9%E3%81%AE%E7%A7%BB%E8%BB%A2%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B9%E3%83%95%E3%82%A1%E3%83%BC\"><\/span>\n\u6240\u6709\u6a29\u306e\u79fb\u8ee2(\u30c8\u30e9\u30f3\u30b9\u30d5\u30a1\u30fc)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<ul>\n<li>\n<p>ERC721\u3067\u306f2\u3064\u306e\u3084\u308a\u65b9\u304c\u3042\u308b\u3002<\/p>\n\n<ul>\n<li>\u30c8\u30fc\u30af\u30f3\u6240\u6709\u8005\u304c<code>transfer<\/code>\u95a2\u6570\u3092\u4f7f\u3046\u65b9\u6cd5\u3002\u9001\u308a\u5148\u306e\u30a2\u30c9\u30ec\u30b9\u3068\u3001\u9001\u308a\u305f\u3044\u30c8\u30fc\u30af\u30f3ID\u3092\u6307\u5b9a\u3059\u308b\u3002<\/li>\n<li>(1)\u30c8\u30fc\u30af\u30f3\u6240\u6709\u8005\u304c<code>approve<\/code>\u95a2\u6570\u3067\u9001\u308a\u5148\u3068\u9001\u308a\u305f\u3044\u30c8\u30fc\u30af\u30f3ID\u3092\u6307\u5b9a\u3057\u3001\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u304c\u53d7\u3051\u53d6\u308a\u8a31\u53ef\u30ea\u30b9\u30c8\u306b\u8ffd\u52a0\u3059\u308b\u3002(2)\u53d7\u3051\u53d6\u308a\u5074\u304c<code>takeOwnership<\/code>\u3092\u547c\u3073\u51fa\u3057\u3001\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u5074\u3067\u8a31\u53ef\u30ea\u30b9\u30c8\u306b\u3042\u308b\u304b\u30c1\u30a7\u30c3\u30af\u3057\u3066\u304b\u3089\u53d7\u3051\u53d6\u308a\u5074\u306b\u30c8\u30fc\u30af\u30f3\u3092\u79fb\u8ee2\u3059\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<li><p>\u4e0a\u8a18\u306e\u3084\u308a\u65b9\u3067\u8ee2\u9001\u3059\u308b\u969b\u306b\u3001<code>Transfer<\/code>\u30a4\u30d9\u30f3\u30c8\u3082\u767a\u751f\u3055\u305b\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<\/p><\/li>\n<li><p>\u3053\u306e\u30c1\u30e3\u30d7\u30bf\u30fc\u3067\u306f\u3001\u30c8\u30fc\u30af\u30f3\u79fb\u8ee2\u90e8\u5206\u3092_transfer\u95a2\u6570\u3068\u3057\u3066\u5171\u901a\u5316\u3057\u3066\u3044\u308b\u3002<\/p><\/li>\n<li><p>\u540d\u524d\u3092\u5909\u3048\u305fonlyOwnerOf\u30e2\u30c7\u30a3\u30d5\u30a1\u30a4\u30e4\u30fc\u306f\u3001\u30c8\u30fc\u30af\u30f3ID\u3092\u6307\u5b9a\u3057\u3066\u3001\u305d\u306e\u6240\u6709\u8005\u304b\u3069\u3046\u304b\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u95a2\u6570\u3002<\/p><\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"%E3%82%B3%E3%83%B3%E3%83%88%E3%83%A9%E3%82%AF%E3%83%88%E3%81%AE%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E5%BC%B7%E5%8C%96\"><\/span>\n\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<h2><span class=\"ez-toc-section\" id=\"%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC%E3%83%95%E3%83%AD%E3%83%BC%E3%81%A8%E3%82%A2%E3%83%B3%E3%83%80%E3%83%BC%E3%83%95%E3%83%AD%E3%83%BC\"><\/span>\n\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3068\u30a2\u30f3\u30c0\u30fc\u30d5\u30ed\u30fc<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<ul>\n<li>\u4f8b\u3048\u3070\u3001uint8\u306f0-255\u307e\u3067\u306e\u5024\u3057\u304b\u683c\u7d0d\u3067\u304d\u306a\u3044\u306e\u3067\u3001255+1=0(\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc)\u3067\u30010-1=255(\u30a2\u30f3\u30c0\u30fc\u30d5\u30ed\u30fc\uff09<\/li>\n<\/ul>\n\n<h2><span class=\"ez-toc-section\" id=\"OpenZeppelin%E3%81%AESafeMath%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA\"><\/span>\nOpenZeppelin\u306eSafeMath\u30e9\u30a4\u30d6\u30e9\u30ea<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<ul>\n<li>OpenZeppelin\u306eSafeMath\u30e9\u30a4\u30d6\u30e9\u30ea\u306f\u3001\u7121\u610f\u8b58\u306b\u30aa\u30fc\u30d0\u30fc\u30d5\u30ed\u30fc\u3084\u30a2\u30f3\u30c0\u30fc\u30d5\u30ed\u30fc\u304c\u8d77\u304d\u305f\u6642\u306bassert\u304c\u767a\u751f\u3059\u308b\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u3002<\/li>\n<li>safemath\u3092\u4f7f\u3046\u306b\u306f\u3001import\u3057\u3066\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5ba3\u8a00\u3059\u308b\u3002\n\n<ul>\n<li>\u30c7\u30fc\u30bf\u578b\u306b\u5bfe\u3057\u3066\u3001\u30e9\u30a4\u30d6\u30e9\u30ea\u5185\u306e\u95a2\u6570\u3092\u4f7f\u3048\u308b\u3088\u3046\u306b\u3059\u308b\u5ba3\u8a00\u3002<\/li>\n<li>\n<code>uint test=2;  test = test.mul(3);<\/code>\u306e\u3088\u3046\u306b\u4f7f\u3048\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">using safeMath for uint256;<\/code><\/pre>\n\n\n\n<ul>\n<li>\n<code>require<\/code>\u3068<code>assert<\/code>\u306e\u9055\u3044\u306f\u3001<code>require<\/code>\u306f\u507d\u306e\u6642\u306b\u6b8b\u308a\u306egas\u3092\u30e6\u30fc\u30b6\u306b\u8fd4\u5374\u3059\u308b\u304c\u3001<code>assert<\/code>\u306f\u8fd4\u5374\u3057\u306a\u3044\u3002\n\n<ul>\n<li>\u901a\u5e38\u306f<code>require<\/code>\u3092\u4f7f\u3046\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u4e0a\u8a18\u3067\u306f\u3001uint256\u306b\u5bfe\u3057\u3066\u306e\u30c1\u30a7\u30c3\u30af\u306a\u306e\u3067\u3001uint32\u306a\u3069\u306e\u5c0f\u3055\u3044\u578b\u306b\u4f7f\u3046\u3068\u6b63\u3057\u3044\u30c1\u30a7\u30c3\u30af\u306b\u306a\u3089\u306a\u3044\u3002safeMath32\u306e\u3088\u3046\u306b\u3001\u578b\u306b\u5408\u3063\u305f\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u3063\u3066\u3044\u308b\u304b\u6ce8\u610f\u3059\u308b\u3002<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9%E3%81%AE%E8%A6%8F%E5%89%87_natspec%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88\"><\/span>\n\u30b3\u30e1\u30f3\u30c8\u306e\u66f8\u304d\u65b9\u306e\u898f\u5247: natspec\u30d5\u30a9\u30fc\u30de\u30c3\u30c8<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\n<code>@title<\/code>, <code>@author<\/code>\u306f\u3001\u30bf\u30a4\u30c8\u30eb\u3068\u4f5c\u8005\u3002<\/li>\n<li>\n<code>@notice<\/code>\u306f\u3001\u30e6\u30fc\u30b6\u5411\u3051\u306e\u8aac\u660e\u3002\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u3084\u95a2\u6570\u304c\u4f55\u3092\u3059\u308b\u306e\u304b\u8aac\u660e\u3059\u308b\u3002<\/li>\n<li>\n<code>@dev<\/code>\u306f\u3001\u958b\u767a\u8005\u5411\u3051\u306e\u8a73\u7d30\u306a\u8aac\u660e\u3002<\/li>\n<li>\n<code>@param<\/code>, <code>@return<\/code>\u306f\u3001\u5f15\u6570\u30d1\u30e9\u30e1\u30bf\u3068\u623b\u308a\u5024\u3002<\/li>\n<\/ul>\n\n<h2><span class=\"ez-toc-section\" id=\"%E3%83%AC%E3%83%83%E3%82%B9%E3%83%B36_%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AE%E3%83%95%E3%83%AD%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%83%89%E3%81%A8Web3js\"><\/span>\n\u30ec\u30c3\u30b9\u30f36:\u30a2\u30d7\u30ea\u306e\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u3068Web3.js<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<h3><span class=\"ez-toc-section\" id=\"Web3js_%E3%81%A8%E3%81%AF\"><\/span>\nWeb3.js \u3068\u306f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\u300cWeb3.js\u300d\u30fb\u30fb\u30fbEthereum\u306e\u30ce\u30fc\u30c9\u4e0a\u306b\u3042\u308b\u30b9\u30de\u30fc\u30c8\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u3068\u3084\u308a\u53d6\u308a\u3059\u308b\u305f\u3081\u306eJavaScript\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3002<\/li>\n<li>\u300cWeb3\u30d7\u30ed\u30d0\u30a4\u30c0\u300d\u30fb\u30fb\u30fb\u30a4\u30fc\u30b5\u30ea\u30a2\u30e0\u306e\u3069\u306e\u30ce\u30fc\u30c9\u306b\u3064\u306a\u3050\u304b\u306e\u6307\u5b9a\u3002<\/li>\n<li>\u300cInfura\u300d\u30fb\u30fb\u30fbAPI\u7d4c\u7531\u3067\u30ce\u30fc\u30c9\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u4ed8\u304d\u3067\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u3059\u308b\u7121\u6599\u30b5\u30fc\u30d3\u30b9\u3002<\/li>\n<li>Infura\u3092Web3\u30d7\u30ed\u30d0\u30a4\u30c0\u3068\u3057\u3066\u4f7f\u3046\u306b\u306f\u3001<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"javascript\" class=\"language-javascript\">var web3 = new Web3(new Web3.providers.WebsocketProvider(\"wss:\/\/mainnet.infura.io\/ws\"));<\/code><\/pre>\n\n\n\n<h3><span class=\"ez-toc-section\" id=\"Metamask%E3%83%96%E3%83%A9%E3%82%A6%E3%82%B6%E6%8B%A1%E5%BC%B5\"><\/span>\nMetamask(\u30d6\u30e9\u30a6\u30b6\u62e1\u5f35)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>Chrome\u3068Firefox\u306e\u30d6\u30e9\u30a6\u30b6\u62e1\u5f35\u6a5f\u80fd\u3067\u3001\u30a4\u30fc\u30b5\u30ea\u30a2\u30e0\u30fb\u30a2\u30ab\u30a6\u30f3\u30c8\u3068\u79d8\u5bc6\u9375\u3092\u5b89\u5168\u306b\u7ba1\u7406\u3067\u304d\u308b\u3002\u30d6\u30e9\u30a6\u30b6\u304cWeb3\u306b\u5bfe\u5fdc\u3059\u308b\u306e\u3067\u3001\u30d6\u30e9\u30a6\u30b6\u304b\u3089\u30a4\u30fc\u30b5\u30ea\u30a2\u30e0\u3092\u4f7f\u3046\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u3068\u5bfe\u8a71\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308b\u3002\n\n<ul>\n<li>JavaScript\u306e\u30b0\u30ed\u30fc\u30d0\u30eb\u30aa\u30d6\u30b8\u30a7\u30af\u30c8<code>web3<\/code>\u306bweb3\u30d7\u30ed\u30d0\u30a4\u30c0\u3092\u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u3059\u308b\u306e\u3067\u3001Metamask\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f\u304b\u306e\u30c1\u30a7\u30c3\u30af\u306b\u4f7f\u3048\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">window.addEventListener('load', function() {\n\n  \/\/ Web3\u304c\u30d6\u30e9\u30a6\u30b6\u306b\u30a4\u30f3\u30b8\u30a7\u30af\u30c8\u3055\u308c\u3066\u3044\u308b\u304b\u30c1\u30a7\u30c3\u30af (Mist\/MetaMask)\n  if (typeof web3 !== 'undefined') {\n    \/\/ Mist\/MetaMask\u306e\u30d7\u30ed\u30d0\u30a4\u30c0\u306e\u4f7f\u7528\n    web3js = new Web3(web3.currentProvider);\n  } else {\n    \/\/ \u30e6\u30fc\u30b6\u30fc\u304cweb3\u3092\u6301\u305f\u306a\u3044\u5834\u5408\u306e\u5bfe\u51e6\u3002\n    \/\/ \u30a2\u30d7\u30ea\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306bMetamask\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3088\u3046\n    \/\/ \u4f1d\u3048\u308b\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3002\n  }\n\n  \/\/ \u30a2\u30d7\u30ea\u306e\u30b9\u30bf\u30fc\u30c8\uff06Web3.js\u3078\u306e\u81ea\u7531\u306a\u30a2\u30af\u30bb\u30b9\u304c\u53ef\u80fd\u306b:\n  startApp()\n\n})<\/code><\/pre>\n\n\n\n<h3><span class=\"ez-toc-section\" id=\"%E3%82%B3%E3%83%B3%E3%83%88%E3%83%A9%E3%82%AF%E3%83%88%E3%81%B8%E3%81%AE%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9\"><\/span>\n\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u3078\u306e\u30a2\u30af\u30bb\u30b9<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\n<p>Web3.js\u304c\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u3001\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u306e\u30a2\u30c9\u30ec\u30b9\u3068\u3001ABI\u304c\u5fc5\u8981\u3002<\/p>\n\n<ul>\n<li>\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u306e\u30a2\u30c9\u30ec\u30b9\u306f\u3001\u30a4\u30fc\u30b5\u30ea\u30a2\u30e0\u4e0a\u306e\u56fa\u5b9a\u30a2\u30c9\u30ec\u30b9\u3067\u3001\u30c7\u30d7\u30ed\u30a4\u6642\u306b\u6c7a\u307e\u308b\u3002<\/li>\n<li>ABI\u306f\u3001\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092JSON\u5f62\u5f0f\u3067\u8868\u3057\u305f\u3082\u306e\u3002Application Binary Interface\u3002<\/li>\n<\/ul>\n<\/li>\n<li><p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001<code>startApp()<\/code>\u3067\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3059\u308b<\/p><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">function startApp() {\n  var cryptoZombieAddress = \"YOUR_CONTRACT_ADDRESS\";\n  cryptZombies = new web3js.eth.Contract(cryptoZombieABI, cryptoZombieAddress);\n}<\/code><\/pre>\n\n\n\n<h3><span class=\"ez-toc-section\" id=\"%E3%82%B3%E3%83%B3%E3%83%88%E3%83%A9%E3%82%AF%E3%83%88%E3%81%AE%E9%96%A2%E6%95%B0%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97\"><\/span>\n\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u306e\u95a2\u6570\u547c\u3073\u51fa\u3057<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<h2><span class=\"ez-toc-section\" id=\"call\"><\/span>\ncall<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<ul>\n<li>\n<code>call<\/code>\u306f\u3001<code>view<\/code>\u95a2\u6570\u304a\u3088\u3073<code>pure<\/code>\u95a2\u6570\u306b\u4f7f\u3046\u3002\u3064\u307e\u308a\u30d6\u30ed\u30c3\u30af\u30c1\u30a7\u30fc\u30f3\u3078\u306e\u66f8\u304d\u8fbc\u307f\u304c\u7121\u3044\u306e\u3067\u3001\u30ed\u30fc\u30ab\u30eb\u306e\u30ce\u30fc\u30c9\u306e\u307f\u3067\u5b8c\u7d50\u3059\u308b\u3002<\/li>\n<\/ul>\n\n<h2><span class=\"ez-toc-section\" id=\"send\"><\/span>\nsend<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<ul>\n<li>\n<code>send<\/code>\u306f\u3001\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u3092\u751f\u6210\u3057\u3001\u30d6\u30ed\u30c3\u30af\u30c1\u30a7\u30fc\u30f3\u4e0a\u306e\u30c7\u30fc\u30bf\u3092\u5909\u66f4\u3059\u308b\u5834\u5408\u306b\u4f7f\u3046\u3002gas\u4ee3\u304c\u304b\u304b\u308b\u3002<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">myContract.methods.myMethod1(123).call()\nmyContract.methods.myMethod2(456).send()<\/code><\/pre>\n\n\n\n<ul>\n<li>\u66f8\u304d\u65b9\u306f\u3001<code>\u30b3\u30f3\u30c8\u30e9\u30af\u30c8.methods.\u30e1\u30bd\u30c3\u30c9\u540d(\u5f15\u6570).call()<\/code>\n<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"Web3js%E3%81%AE%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B310%E3%81%A7%E3%80%81%E6%9B%B8%E3%81%8D%E6%96%B9%E3%81%8C%E5%A4%A7%E3%81%8D%E3%81%8F%E5%A4%89%E3%82%8F%E3%81%A3%E3%81%9F\"><\/span>\nWeb3.js\u306e\u30d0\u30fc\u30b8\u30e7\u30f31.0\u3067\u3001\u66f8\u304d\u65b9\u304c\u5927\u304d\u304f\u5909\u308f\u3063\u305f<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\u300c\u30b3\u30fc\u30eb\u30d0\u30c3\u30af\u306e\u4ee3\u308f\u308a\u306bPromise\u3092\u4f7f\u3046\u300d\n\n<ul>\n<li>Promise\u30fb\u30fb\u30fb\u7279\u5b9a\u306e\u30b3\u30fc\u30c9\u306e\u5b9f\u884c\u3092\u5f85\u3063\u3066\u304b\u3089\u3001\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u4ed5\u7d44\u307f\u3002<\/li>\n<li>\n<code>then<\/code>\u3092\u4f7f\u3063\u3066\u3001\u3044\u304f\u3064\u3082\u306e\u975e\u540c\u671f\u64cd\u4f5c\u3092\u30c1\u30a7\u30a4\u30f3\u3067\u304d\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"Metamask%E3%81%A7%E3%83%A6%E3%83%BC%E3%82%B6%E3%82%92%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88%E3%81%9F%E6%99%82%E3%81%AE%E5%AF%BE%E5%87%A6\"><\/span>\nMetamask\u3067\u30e6\u30fc\u30b6\u3092\u5207\u308a\u66ff\u3048\u305f\u6642\u306e\u5bfe\u51e6<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>Metamask\u306f\u8907\u6570\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u4f7f\u7528\u3067\u304d\u308b\u3002<\/li>\n<li>\u73fe\u5728\u3069\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u304c\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u304b\u306f\u3001web3\u4e0a\u306e\u5909\u6570\u3067\u78ba\u8a8d\u3067\u304d\u308b\u3002\n\n<ul>\n<li><code>var userAccount = web3.eth.accounts[0]<\/code><\/li>\n<\/ul>\n<\/li>\n<li>\u30e6\u30fc\u30b6\u306e\u30da\u30fc\u30b8\u3092\u8868\u793a\u3057\u3066\u3044\u308b\u6642\u306b\u3001Metamask\u306e\u30a2\u30ab\u30a6\u30f3\u30c8\u3092\u5207\u308a\u66ff\u3048\u305f\u3089\u3001\u6240\u6709\u3057\u3066\u3044\u308b\u30be\u30f3\u30d3\u3082\u5207\u308a\u66ff\u3048\u305f\u3044\u3002\n\n<ul>\n<li>JavaScript\u306e<code>setInterval<\/code>\u3067\u4e00\u5b9a\u9593\u9694\u3054\u3068\u306b\u76e3\u8996\u3057\u3001\u5207\u308a\u66ff\u308f\u3063\u3066\u3044\u305f\u3089\u8868\u793a\u3092\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3059\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"%E3%82%BE%E3%83%B3%E3%83%93%E8%BB%8D%E5%9B%A3%E3%81%AE%E8%A1%A8%E7%A4%BA\"><\/span>\n\u30be\u30f3\u30d3\u8ecd\u56e3\u306e\u8868\u793a<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>jQuery\u3067\u8868\u793a\u3059\u308b<\/li>\n<li>index.html\u306b\u306f\u3001\u300c<code><div id=\"zombies\"><\/div><\/code>\u300d\u304c\u66f8\u304b\u308c\u3066\u3044\u308b\u3002<\/li>\n<li>\u30be\u30f3\u30d3ID\u304c\u914d\u5217\u3067\u6e21\u3055\u308c\u308b\u306e\u3067\u3001\n\n<ul>\n<li>#zombies div\u306e\u4e2d\u8eab\u3092\u6d88\u3059<\/li>\n<li>\u5404\u30be\u30f3\u30d3ID\u3054\u3068\u306b\u3001<code>getZombieDetails(id)<\/code>\u3067\u30be\u30f3\u30d3\u306e\u60c5\u5831\u3092\u547c\u3073\u51fa\u3057\u3001HTML\u306b\u6574\u5f62\u3057\u3066\u3001#zombies div\u306b\u8ffd\u52a0\u3059\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%80%81%E4%BF%A1\"><\/span>\n\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u306e\u9001\u4fe1<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\u30b3\u30f3\u30c8\u30e9\u30af\u30c8\u4e0a\u306e\u30c7\u30fc\u30bf\u3092\u5909\u66f4\u3059\u308b\u306e\u3067\u3001<code>send<\/code>\u95a2\u6570\u3092\u4f7f\u3046\u3002<\/li>\n<li>\u95a2\u6570\u3092\u547c\u3073\u51fa\u3059\u30e6\u30fc\u30b6\u306e\u30a2\u30c9\u30ec\u30b9\u304c\u5fc5\u8981\u3002<\/li>\n<li>gas\u4ee3\u304c\u304b\u304b\u308b\u3002<\/li>\n<li>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u3092send\u3057\u3066\u304b\u3089\u3001\u30d6\u30ed\u30c3\u30af\u30c1\u30a7\u30fc\u30f3\u72b6\u3067\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308b\u306b\u306f\u3001\u9045\u308c\u304c\u3042\u308b\u3002\n\n<ul>\n<li>\u30d6\u30ed\u30c3\u30af\u306b\u53d6\u308a\u8fbc\u307e\u308c\u308b\u307e\u3067\u306b\u6642\u9593\u304c\u3042\u308b\u304b\u3089\u3002<\/li>\n<li>\u305d\u306e\u305f\u3081\u3001\u975e\u540c\u671f\u51e6\u7406\u304c\u5fc5\u8981\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u304c\u30d6\u30ed\u30c3\u30af\u306b\u53d6\u308a\u8fbc\u307e\u308c\u308b\u3068\u3001<code>receipt<\/code>\u304c\u8fd4\u3063\u3066\u304f\u308b\u3002\n\n<ul>\n<li>\n<code>.on(\"receipt\", function(receipt) {<\/code>\u306e\u3088\u3046\u306b\u3001\u7d50\u679c\u3092\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u3059\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<li>gas\u4e0d\u8db3\u306a\u3069\u3067\u3001\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u304c\u30d6\u30ed\u30c3\u30af\u306b\u53d6\u308a\u8fbc\u307e\u308c\u306a\u3044\u5834\u5408\u306f\u3001<code>error<\/code>\u304c\u8fd4\u3063\u3066\u304f\u308b\u3002\n\n<ul>\n<li>\n<code>.on(\"error\"), function(error) {<\/code>\u306e\u3088\u3046\u306b\u3001\u30a8\u30e9\u30fc\u3082\u30cf\u30f3\u30c9\u30ea\u30f3\u30b0\u3059\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n<h3><span class=\"ez-toc-section\" id=\"payable%E9%96%A2%E6%95%B0%E3%81%AE%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97\"><\/span>\npayable\u95a2\u6570\u306e\u547c\u3073\u51fa\u3057<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>JavaScript\u304b\u3089\u3044\u304f\u3089\u9001\u4fe1\u3059\u308b\u304b\u3092\u3001Ether\u3067\u306f\u306a\u304fwei\u3067\u6307\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002\n\n<ul>\n<li>wei\u3068\u306fEther\u306e\u6700\u5c0f\u5358\u4f4d\u3067\u30011 ether\u306b\u306f10^18 wei\u304c\u3042\u308b\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">\/\/ \u3053\u308c\u304c1 ETH\u3092Wei\u306b\u5909\u63db\u3057\u3066\u304f\u308c\u308b\nweb3js.utils.toWei(\"1\", \"ether\");<\/code><\/pre>\n\n\n\n<h3><span class=\"ez-toc-section\" id=\"%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%81%AE%E3%82%B5%E3%83%96%E3%82%B9%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%96%E3%83%AA%E3%83%83%E3%82%B9%E3%83%B3%E3%81%97%E3%81%A6consolelog%E3%82%92%E8%A1%A8%E7%A4%BA\"><\/span>\n\u30a4\u30d9\u30f3\u30c8\u306e\u30b5\u30d6\u30b9\u30af\u30e9\u30a4\u30d6(\u30ea\u30c3\u30b9\u30f3\u3057\u3066console.log\u3092\u8868\u793a)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n<ul>\n<li>\u4f8b<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"text\" class=\"language-text\">cryptoZombies.event.NewZombie()\n.on(\"data\", function(event) {\n  let zombie = event.returnValues;\n  console.log(\"A new zombie was born!\");\n})\n.on(\"error\", console.error);<\/code><\/pre>\n\n\n","protected":false},"excerpt":{"rendered":"<p><a href=\"https:\/\/cryptozombies.io\/jp\/\" rel=\"nofollow noopener\" target=\"_blank\">CryptoZombies<\/a>\u306e\u7d9a\u304d\u3067\u3059\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4223,4222],"tags":[4221,4220],"class_list":["post-6061","post","type-post","status-publish","format-standard","hentry","category-cryptozombies","category-solidity","tag-cryptozombies","tag-solidity"],"_links":{"self":[{"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=\/wp\/v2\/posts\/6061","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6061"}],"version-history":[{"count":0,"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=\/wp\/v2\/posts\/6061\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jansnap.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}