8827Ì«Ñô¼¯ÍÅADLab£ºÒÔÌ«·»ÖÇÄܺÏÔ¼¶à¸ö¹¥»÷°¸Àý·ÖÎö
°ä²¼¹¦·ò 2018-08-25Ò»¡¢Ê¹ÓÃOraclize·þÎñµÄºöÂÔ
ΪÁ˽«Çø¿éÁ´¼¼ÊõÀûÓõ½ÏßÏ£¬£¬£¬£¬£¬£¬ÀýÈ罫·É»úÑÓÎóÏÕ¡¢Êý×ÖÇ®±Ò¶Ò»»µÈÒµÎñÉÏÁ´£¬£¬£¬£¬£¬£¬Çø¿éÁ´±ØÒªÓµÓнӼûÁ´±íÊý¾ÝµÄÄÜÁ¦¡£¡£¡£¡£¡£µ«ÊÇÈôÊÇÖÇÄܺÏÔ¼Ö±½Ó´Ó±í²¿·þÎñ»ñÈ¡Êý¾Ý£¬£¬£¬£¬£¬£¬ÓÉÓÚÍøÂçÑÓ³¤£¬£¬£¬£¬£¬£¬½Úµã´¦ÖÃËٶȵȸ÷ÀàÔÒò£¬£¬£¬£¬£¬£¬»áµ¼ÖÂÿ¸ö½áµã»ñÈ¡µÄÊý¾Ý·ÖÆç£¬£¬£¬£¬£¬£¬Ê¹Çø¿éÁ´µÄ¹²Ê¶»úÔìʧЧ¡£¡£¡£¡£¡£
ÏÖÓеĽâ¾ö¹æ»®ÊÇʹÓõÚÈý·½·¢ËÍÇø¿éÁ´µÄÂòÂô£¬£¬£¬£¬£¬£¬ÂòÂô»áͬ²½µ½Ã¿¸ö½Úµã£¬£¬£¬£¬£¬£¬´Ó¶ø±£ÕÏÊý¾ÝµÄÒ»ÖÂÐÔ¡£¡£¡£¡£¡£OraclizeÊÇÒ»¸öÔ¤ÑÔ»ú£¬£¬£¬£¬£¬£¬ÎªÒÔÌ«·»µÈÇø¿éÁ´ÌṩÊý¾Ý·þÎñ£¬£¬£¬£¬£¬£¬Ëü¶ÀÁ¢ÓÚÇø¿éÁ´ÏµÍ³Ö®±í£¬£¬£¬£¬£¬£¬ÊÇÒ»¸öÖÐÐÄ»¯µÄµÚÈý·½¡£¡£¡£¡£¡£OraclizeÄܹ»ÌṩµÄÊý¾Ý½Ó¼û·þÎñÔ̺¬Ëæ»úÊý¡¢URL½Ó¼û¡¢IPFSµÈ¡£¡£¡£¡£¡£OraclizeµÄ¼Ü¹¹ÈçͼËùʾ£º
Oraclize²»ÊÇÁ´ÉÏÖ±½ÓÄܹ»Å²Óõĺ¯Êý£¬£¬£¬£¬£¬£¬¶øÊÇÒ»¸öÁ´±íµÄʵÌå¡£¡£¡£¡£¡£ÎªÁËץȡ±í²¿Êý¾Ý£¬£¬£¬£¬£¬£¬ÒÔÌ«·»ÖÇÄܺÏÔ¼±ØÒª·¢ËÍÒ»¸ö²éÎÊÒªÇó¸øOraclize£¬£¬£¬£¬£¬£¬µ±Oraclize¼àÌýµ½Á´ÉÏÓÐÓйØÒªÇóʱ£¬£¬£¬£¬£¬£¬Á¢¼´¶Ô»¥ÁªÍøÉϵÄ×ÊÔ´ÌáÒé½Ó¼û£¬£¬£¬£¬£¬£¬¶øºóŲÓúÏÔ¼ÖеĻص÷º¯Êý__callback½«²éÎÊÁ˾ַµ»ØÇø¿éÁ´¡£¡£¡£¡£¡£
ÀýÈ磬£¬£¬£¬£¬£¬ÓÃÃÀÔª¶Ò»»ÒÔÌ«±ÒµÄÖÇÄܺÏÔ¼µÄÊý¾Ý²éÎÊÓï¾äÈçÏ£º
¼àÌýµ½ÒªÇóºó£¬£¬£¬£¬£¬£¬Oraclize»á½Ó¼ûURL»ñµÃ²éÎÊÁ˾֣¬£¬£¬£¬£¬£¬¶øºóŲÓÃ__callbackµÄº¯Êý£¬£¬£¬£¬£¬£¬Oraclize·µ»ØµÄÊý¾Ýͨ¹ý__callbackº¯Êý²ÎÊý´«»ØÖÇÄܺÏÔ¼¡£¡£¡£¡£¡£ÉÏͼÖк¯ÊýŲÓõIJÎÊý[3]Öеġ°3334312e3533¡±¼´ÎªÆäʱµÄ»ãÂÊ£º1ETH = $341.53£¬£¬£¬£¬£¬£¬ËæºóÖÇÄܺÏÔ¼»áƾ¾ÝÕâ¸ö²éÎÊÁ˾ֽøÐкóÐøµÄÂß¼´¦Öᣡ£¡£¡£¡£
1¡¢¹¥»÷°¸Àý£ºSIGMA (0x03AF37073258B08FfFF303e9E07E8a0B7bfc4fd9)
SIGMAºÏԼʹÓÃÁËOraclize·þÎñ²éÎÊ»ãÂÊ¡£¡£¡£¡£¡£¸ÃºÏÔ¼µÄ__callback»Øµ÷º¯ÊýÈçÏ£º
ÓÉÓÚ__callbackº¯ÊýÖдæÔÚÕûÊýÒç³ö£¬£¬£¬£¬£¬£¬µ¼ÖÂownerµÄ´ú±ÒÓà¶î±»ÏÂÒç³ÉÒ»¸öºÜ´óµÄÖµ£¬£¬£¬£¬£¬£¬µ¼Ö´ú±ÒÔö·¢¡£¡£¡£¡£¡£´Ó´ú±Ò·Ý¶îÅÅÃûÄܹ»¿´³ö¹¥»÷ÕßµÄÕË»§µØÖ·Îª0x2ef045a75b967054791c23ab93fbc52cc0a35c80£¬£¬£¬£¬£¬£¬¶ø¸ÃµØÖ·²¢²»ÊÇ´´½¨ºÏÔ¼µÄÕË»§µØÖ·(0xC7e92D8997359863a8F15FE87C0812D7A3a8F770)¡£¡£¡£¡£¡£
¸ú×ÙTransactions£¬£¬£¬£¬£¬£¬·¢ÏÖ0xC7e92D8997359863a8F15FE87C0812D7A3a8F770µ÷transfer_ownership½«ºÏÔ¼µÄownerÉèÖÃΪ0x2ef045a75b967054791c23ab93fbc52cc0a35c80¡£¡£¡£¡£¡£
Õë¶ÔÕâ¸ö·ì϶ÊÇ·ñʹÓÃSafeMath¾ÍÄܹ»½â¾öÁËÄØ£¿£¿£¿£¿£¿£¿£¿£¿´ð°¸ÊÇ·ñ¶¨µÄ¡£¡£¡£¡£¡£ÔÚOraclizeŲÓÃ__callback֮ǰ£¬£¬£¬£¬£¬£¬ÓÐЧ»§¶Ô²éÎʺ¯ÊýµÄŲÓ㬣¬£¬£¬£¬£¬²¢ÇÒÕâ¸öŲÓÃÆÆ·ÑÒÔÌ«±Ò¡£¡£¡£¡£¡£
ʹÓÃSafeMathµÄÇé¿öÏ£¬£¬£¬£¬£¬£¬²úÉúÒç³öµÄÊÂÎñ»á»Ø¹ö£¬£¬£¬£¬£¬£¬µ«±¾ÀýÖпÉÄܻعöµÄÖ»ÓÐOraclize¶Ô__callbackº¯ÊýŲÓõÄÊÂÎñ£¬£¬£¬£¬£¬£¬¶øÖ®Ç°Óû§ÆÆ·ÑÒÔÌ«±Ò²úÉúµÄÊÂÎñÔòÎÞ·¨»Ø¹ö¡£¡£¡£¡£¡£Õâ¸ö¾°ÏóµÄµ××ÓÔÒòÊÇOraclizeÊÇÒ»¸ö¶ÀÁ¢µÄʵÌ壬£¬£¬£¬£¬£¬µ¼ÖÂÂß¼ÉÏÓ¦¸ÃÆëÈ«µÄÒ»¸ö²Ù×÷±»Ô׸î³ÉÁËÁ½¸öÊÂÎñ¡£¡£¡£¡£¡£Òò¶ø£¬£¬£¬£¬£¬£¬Í¨¹ýOraclizeÓëÁ´ÏÂÊý¾Ý½»»¥Ê±Ö»ÄÜÔ½·¢Ó×ÐÄ£¬£¬£¬£¬£¬£¬´úÂë±àд±ØÒªÔ½·¢ÉóÉ÷¡£¡£¡£¡£¡£
¶þ¡¢ÅÓÊÏ´ú±ÒºÏÔ¼·ì϶
ÒÔÌ«·»ÖÇÄܺÏÔ¼ÖлìºÏ½øÁ˲»ÉÙÅÓÊÏȦÌ׺ÏÔ¼£¬£¬£¬£¬£¬£¬ËûÃÇÏòͶ×ÊÕß³Ðŵ£¬£¬£¬£¬£¬£¬ÈôÊÇÄãÏòijºÏԼͶ×ÊÒ»±ÊÒÔÌ«·»£¬£¬£¬£¬£¬£¬Ëü¾Í»áÒÔÒ»¸ö¸ß»Ø±¨ÂÊ»ØÔùÄã¸ü¶àµÄÒÔÌ«±Ò£¬£¬£¬£¬£¬£¬È»¶ø¸ß»Ø±¨Ö»ÄÜ´ÓºóÐøµÄͶ×ÊÕßÄÇÀïÔ´Ô´²»Ðݵؼ³È¡×ʽðÒÔ·´À¡¸øÇ°ÃæµÄͶ×ÊÕß¡£¡£¡£¡£¡£
1¡¢¹¥»÷°¸Àý£ºETHX( 0x1c98eea5fe5e15d77feeabc0dfcfad32314fd481)
ETHXÊÇÒ»¸öµäÐ͵ÄÅÓÊÏ´ú±ÒºÏÔ¼¡£¡£¡£¡£¡£¸ÃºÏÔ¼Äܹ»µ±×÷Ðé¹¹±ÒÂòÂôËù£¬£¬£¬£¬£¬£¬µ«Ö»ÓÐETHºÍETHX (ERC20 token)ÂòÂô¶Ô£¬£¬£¬£¬£¬£¬Ã¿´ÎÂòÂô£¬£¬£¬£¬£¬£¬¶¼ÓÐ5%µÄtoken·ÖÅ䏸Õû¸öƽ̨µÄÒÑÓеÄtoken³ÖÓÐÕߣ¬£¬£¬£¬£¬£¬Òò¶øtoken³ÖÓÐÕßÔÚ³Ö±ÒÆÚ¼ä£¬£¬£¬£¬£¬£¬½«»áÖ±½Ó׬ȡвɰìÕߺ;ÉÅ×ÊÛÕßµÄÊÖÐø·Ñ¡£¡£¡£¡£¡£´ÓETHXºÏÔ¼´úÂëÄܹ»¿´³ö£¬£¬£¬£¬£¬£¬¸ÃºÏÔ¼¶ÔtransferFromº¯Êý½øÐÐÁËÀ©´ó£¬£¬£¬£¬£¬£¬transferFromº¯ÊýÊ×ÏȽøÐÐallowanceÏÞ¶îÅж¨£¬£¬£¬£¬£¬£¬¶øºóŲÓÃÁË×Ô½ç˵µÄtransferTokensº¯ÊýÀ´ÊµÏÖתÕË¡£¡£¡£¡£¡£
ÔÚtransferTokensº¯ÊýÖУ¬£¬£¬£¬£¬£¬µ±toÕË»§µØÖ·²»µÅ×ÚºÏÔ¼µØÖ·£¬£¬£¬£¬£¬£¬ÓÉÓÚÊÂÏȶÔfromÕË»§¶î¶È½øÐÐÁ˰²È«²é³£¬£¬£¬£¬£¬£¬Òò¶øºóÃæ¶ÔfromÕË»§µÄbalanceÔËËã²»»á²úÉúÒç³ö¡£¡£¡£¡£¡£
µ±toÕË»§µØÖ·µÅ×ÚºÏÔ¼µØÖ·Ê±£¬£¬£¬£¬£¬£¬ÔòŲÓÃsellº¯Êý£¬£¬£¬£¬£¬£¬sellº¯ÊýÖÐÓÉÓÚ´úÂë±àдʧÎ󣬣¬£¬£¬£¬£¬ÃýÎóµÄ½«fromд³Émsg.sender£¬£¬£¬£¬£¬£¬¶Ômsg.senderµÄ¶î¶È½øÐÐÁ˼õ·¨²Ù×÷£¬£¬£¬£¬£¬£¬¶øÔÚ¼õ·¨²Ù×÷ǰûÓнøÐа²È«²é³£¬£¬£¬£¬£¬£¬Òò¶ø´æÔÚÒç¶Âí½Å¡£¡£¡£¡£¡£
ΪÁËʵÏÖ¶ÔÕâ¸öÒç¶Âí½ÅµÄ¹¥»÷£¬£¬£¬£¬£¬£¬¹¥»÷Õß±ØÒª2¸öÕË»§A¡¢B£¬£¬£¬£¬£¬£¬ÆäÖÐAÕË»§´ú±ÒÓà¶î²»Îª0£¬£¬£¬£¬£¬£¬BÕË»§´ú±ÒΪ0¡£¡£¡£¡£¡£
? AÕË»§Å²ÓÃapprove¸øBÊÚȨһ²¿ÃÅתÕ˶î¶È£¬£¬£¬£¬£¬£¬Èç¹ûÊÚȨ¶î¶ÈΪ1£»£»£»£»£»£»£»£»
? BÕË»§Å²ÓÃtransferFrom£¬£¬£¬£¬£¬£¬´ÓAÕË»§×ª1µ¥Ôª´ú±Òµ½ÖÇÄܺÏÔ¼£»£»£»£»£»£»£»£»transferFromŲÓÃsellº¯Êýʱ´¥·¢ÕûÊýÒç³ö£¬£¬£¬£¬£¬£¬¼´0-1=2^255¡£¡£¡£¡£¡£BÕË»§ÔÚÓà¶îΪ0µÄÇé¿öÏ»ñµÃÁË×î´ó¶î¶ÈµÄtoken¡£¡£¡£¡£¡£
ÔÚETHXºÏÔ¼¹¥»÷Á´ÖУ¬£¬£¬£¬£¬£¬¹¥»÷ÕßʹÓÃÁËÁ½¸öÕË»§µØÖ·£¬£¬£¬£¬£¬£¬±ðÀëΪ£º
0x423b1404f51a2cdae57e597181da0a4ca4492f30
0x17a6e289e16b788505903cc7cf966f5e33dd1b94
Ê×ÏÈ£¬£¬£¬£¬£¬£¬0x17a6e289e16b788505903cc7cf966f5e33dd1b94ŲÓÃapprove¸ø0x423b1404f51a2cdae57e597181da0a4ca4492f30ÊÚȨתÕ˶î¶È£¬£¬£¬£¬£¬£¬²ÎÊývalue=1¡£¡£¡£¡£¡£
¶øºó£¬£¬£¬£¬£¬£¬0x423b1404f51a2cdae57e597181da0a4ca4492f30ŲÓÃtransferFrom²½Ö裬£¬£¬£¬£¬£¬´ÓÕË»§0x17a6e289e16b788505903cc7cf966f5e33dd1b94ÏòETHXºÏÔ¼µØÖ·0x1c98eea5fe5e15d77feeabc0dfcfad32314fd481 ×ªÒÆ1¸öToken¡£¡£¡£¡£¡£
ŲÓÃǰ£¬£¬£¬£¬£¬£¬balance(0x423b1404f51a2cdae57e597181da0a4ca4492f30)=0¡£¡£¡£¡£¡£Å²Óú󣬣¬£¬£¬£¬£¬Òç³öºóbalance(0x423b1404f51a2cdae57e597181da0a4ca4492f30)=2^255¡£¡£¡£¡£¡£
¼à¿ØÆ½Ì¨ÏÔʾÒѾ±»¹¥»÷µÄͬÀà´ú±ÒºÏÔ¼ÈçÏÂ±í£º
Èý¡¢SafeMathʹÓò»µ±
ÒÔÌ«·»Ðé¹¹»úEVM½ç˵ÎÞ·ûºÅÕûÊýΪuint256£¬£¬£¬£¬£¬£¬Äܹ»°µÊ¾Ò»¸ö256λµÄ´óÕûÊý£¬£¬£¬£¬£¬£¬µ«²¢Ã»ÓÐÌṩÒç³öµÄ¼ì²â»úÔì¡£¡£¡£¡£¡£OpenZepplineÊÇÒ»¸öµÚÈý·½ÖÇÄܺÏÔ¼¿â£¬£¬£¬£¬£¬£¬ÊµÏÖÁËÒ»Ì×SafeMath¿âÀ´¼ì²âÒç³ö¡£¡£¡£¡£¡£Æä´úÂëÈçÏ£º
SafeMathʹÓÃÄÚ½¨µÄrequire»òassertÀ´²é³ÔËËãÊÇ·ñ²úÉúÒç³ö£¬£¬£¬£¬£¬£¬ÈôÊDzúÉúÁËÒç³ö£¬£¬£¬£¬£¬£¬requireºÍassertÖÐÔ̺¬µÄ´úÂë»áʹ¸ÃÊÂÎñ»Ø¹ö¡£¡£¡£¡£¡£µ«ÓÐЩ¿ª·¢Õß²»ÄÜÆëÈ«Àí½âSafeMathÄ£°æ´úÂ룬£¬£¬£¬£¬£¬µ¼ÖºÏÔ¼´úÂëÖÐÒÀÈ»´æÔÚ·ì϶¡£¡£¡£¡£¡£
1¡¢¹¥»÷°¸Àý£ºUCN (0x6EF5B9ae723Fe059Cac71aD620495575d19dAc42)
UCN£¨http://www.saveunicoins.com/Unicorn/index.html£©ÊÇÒ»¸öÖÇÄܺÏÔ¼DAppÀûÓᣡ£¡£¡£¡£ºÏÔ¼´úÂëÔÚSafeMath¿âÖÐ×¢½âassertÓï¾ä£¬£¬£¬£¬£¬£¬Òò¶øSafeMathº¯ÊýµÈͬÓÚÖ±½Ó½øÐÐËãÊõÔËË㣬£¬£¬£¬£¬£¬Ã»ÓÐÈκΰ²È«²é³¡£¡£¡£¡£¡£²¢ÇÒÔÚtransferFromº¯ÊýÖУ¬£¬£¬£¬£¬£¬×¢½âÖÐÉêÃ÷subº¯ÊýÊǰ²È«µÄ£¬£¬£¬£¬£¬£¬²»ÖªÂ·ÕâÊÇ¿ª·¢ÈËÔ±µÄºöÂÔ»¹ÊÇÓÐÒâÁôϵĺóÃÅ¡£¡£¡£¡£¡£
ÓÉÓÚsubº¯ÊýµÈͬÓÚËãÊõÔËË㣬£¬£¬£¬£¬£¬balances[_from] = balances[_from].sub(_value);
´æÔÚÕûÊýÏÂÒç·ì϶£¬£¬£¬£¬£¬£¬Äܹ»Ê¹µÃÕË»§Óà¶îÔì³ÉÒ»¸ö¼«´óÖµ¡£¡£¡£¡£¡£
2¡¢¹¥»÷°¸Àý£ºEMVC£¨0xd3F5056D9a112cA81B0e6f9f47F3285AA44c6AAA£©
EMVC£¨http://crypto7.biz/£©ºÏÔ¼´úÂëÔÚSafeMath¿âÖÐʹÓÃÁËÒ»¸ö×Ô½ç˵µÄassertÀ´°ü°ìÄÚ½¨µÄassert¡£¡£¡£¡£¡£ÔÚassertº¯ÊýÖУ¬£¬£¬£¬£¬£¬ÈôÊDzÎÊýassertionΪfalseÔòÖ±½Óreturn£¬£¬£¬£¬£¬£¬²¢Ã»ÓнøÐÐÒì³£´¦Öᣡ£¡£¡£¡£Òò¶øSafeMathº¯ÊýµÈͬÓÚÖ±½Ó½øÐÐËãÊõÔËË㣬£¬£¬£¬£¬£¬Ã»ÓÐÈκΰ²È«²é³¡£¡£¡£¡£¡£
¹¥»÷ÕßÄܹ»Ê¹ÓÃtransferº¯ÊýÉèÖÃËÁÒâÕË»§Óà¶îΪËÁÒâÖµ¡£¡£¡£¡£¡£
ËÄ¡¢×ܽá
µ±ÖÇÄܺÏԼҪʵÏÖ¸ü¶àÖ°ÄÜʱ£¬£¬£¬£¬£¬£¬´úÂë»áÏàÓ¦±äµÃÔ½·¢¸´ÔÓ£¬£¬£¬£¬£¬£¬ÓëERC20³ß¶È´úÂëµÄ²î¾àÒ²Ô½À´Ô½´ó£¬£¬£¬£¬£¬£¬Òò¶øÇ±Ôڵķì϶ÐÎòԽ·¢¶àÑù¡£¡£¡£¡£¡£ÎªÁ˱£ÕÏÖÇÄܺÏÔ¼µÄ°²È«£¬£¬£¬£¬£¬£¬³ý×ñѰ²È«¿ª·¢×¼Ôò¡¢ÒÀÕÕ¡°Check Lists¡±½øÐлùÏß²é³±í£¬£¬£¬£¬£¬£¬»¹±ØÒªÖ´ÐиüÉî¿ÌÏêϸµÄÉ󼯡£¡£¡£¡£¡£


¾©¹«Íø°²±¸11010802024551ºÅ