Compare commits
	
		
			732 Commits
		
	
	
		
			@0x/sra-sp
			...
			monorepo@3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 397496aff0 | ||
|  | 7458fe0d81 | ||
|  | 453c81f634 | ||
|  | eebce4b54d | ||
|  | f7976e18f1 | ||
|  | d951fe9988 | ||
|  | fd4da78075 | ||
|  | a025ae3f54 | ||
|  | a75ba0d903 | ||
|  | 99318ae2ba | ||
|  | 8369bcb605 | ||
|  | 338cc69034 | ||
|  | 4526c52fe8 | ||
|  | 81f9bda502 | ||
|  | 46bc5463ca | ||
|  | bb346537ba | ||
|  | 3b5f0d5c30 | ||
|  | 808ce969d9 | ||
|  | 16f8339f3c | ||
|  | 25d68c3904 | ||
|  | 77ad8e1a80 | ||
|  | 9e8c18075a | ||
|  | 4278cdfd29 | ||
|  | 142c2bd0f0 | ||
|  | 13ee8686bb | ||
|  | 5c06df2635 | ||
|  | d69bf76341 | ||
|  | d0d1b295b4 | ||
|  | e450191548 | ||
|  | 3aee83f3d8 | ||
|  | 3610a2bc8d | ||
|  | ab559d4620 | ||
|  | 15d308d4c5 | ||
|  | e7ea66afb5 | ||
|  | d9a1d8bde6 | ||
|  | 9ac4486403 | ||
|  | 428afabaa3 | ||
|  | 9162189fa6 | ||
|  | 154ca9b760 | ||
|  | 9fcead3973 | ||
|  | 2fd9d0359c | ||
|  | 4cf9e030a2 | ||
|  | 5570d14179 | ||
|  | fd3c546994 | ||
|  | e81ae05df9 | ||
|  | cb394f3a1c | ||
|  | 03ed057ff6 | ||
|  | 807290ff38 | ||
|  | 40a4b4fa7a | ||
|  | b7d2ad3651 | ||
|  | faac286f70 | ||
|  | c6c7f6f907 | ||
|  | ccd0da58cb | ||
|  | 500e5f1b5d | ||
|  | ebb6177271 | ||
|  | 951c256980 | ||
|  | a134ef03dd | ||
|  | f21a9d16d0 | ||
|  | 42c3bb00ec | ||
|  | 0d0fcfe49a | ||
|  | 3f0db92be6 | ||
|  | ec24c79da1 | ||
|  | f5fffbea04 | ||
|  | fb0a2ef248 | ||
|  | 240f482e8e | ||
|  | 885031d3ce | ||
|  | eb212de70e | ||
|  | 68323d6def | ||
|  | 7c492071f1 | ||
|  | 8fbdef2a1d | ||
|  | 8f64784781 | ||
|  | 1bd6095c60 | ||
|  | e133a5f0f3 | ||
|  | b47886416e | ||
|  | c522d611d1 | ||
|  | f6d9b6b7aa | ||
|  | 1de6bca12d | ||
|  | 2de9b862d8 | ||
|  | 3c649df3df | ||
|  | 9bf38d9e4d | ||
|  | dee40f038d | ||
|  | d0aa907418 | ||
|  | 8dbdffc9b4 | ||
|  | f409780455 | ||
|  | bebcd99b3b | ||
|  | 99aeaddf42 | ||
|  | 793398216f | ||
|  | b353ed3157 | ||
|  | 8637212a17 | ||
|  | c42ce38e1c | ||
|  | 76d228a603 | ||
|  | 5cb52faa10 | ||
|  | e67e822845 | ||
|  | a52686ca3b | ||
|  | 7a1e6cccfd | ||
|  | 1166b6c2fb | ||
|  | 7a6693694c | ||
|  | 6ed423d1af | ||
|  | 8b69444602 | ||
|  | 7de5e8d9c8 | ||
|  | 844e3d1934 | ||
|  | 9eafbbc0ae | ||
|  | 74677e3d54 | ||
|  | 57f4638742 | ||
|  | c7a32f2d56 | ||
|  | d2dc64aa2d | ||
|  | edb2a34c51 | ||
|  | dbd9b1c5c4 | ||
|  | c3b758845d | ||
|  | 4d770549fc | ||
|  | a67674bae1 | ||
|  | 462a61da73 | ||
|  | ae8a7f6320 | ||
|  | a23c6a0996 | ||
|  | e6594cecce | ||
|  | 85ed5d27f5 | ||
|  | 6ac9e11245 | ||
|  | 9fbd809344 | ||
|  | 63a098d757 | ||
|  | b68d9ed672 | ||
|  | 5934eb0559 | ||
|  | b998d719a6 | ||
|  | 33832244cf | ||
|  | df8ea3b65c | ||
|  | 7067d4a499 | ||
|  | 3e764eafd9 | ||
|  | 4169a41eda | ||
|  | 379eab19ad | ||
|  | 6cba1f3b61 | ||
|  | 5dad2404d3 | ||
|  | a1b20eea2c | ||
|  | af075e7b8b | ||
|  | ef0a699919 | ||
|  | 8279ef0e05 | ||
|  | c1cee8e951 | ||
|  | 4c17373311 | ||
|  | c20972de3f | ||
|  | 64401f1031 | ||
|  | 1f895d0f27 | ||
|  | 5aa8ea10c3 | ||
|  | cf65d4a909 | ||
|  | 079f627b34 | ||
|  | f6c6cbc343 | ||
|  | c6cdea77b6 | ||
|  | b1fd3429ae | ||
|  | dc161ef08d | ||
|  | 9502e789b3 | ||
|  | a71aed0233 | ||
|  | eda8dc278b | ||
|  | 23a7ffb167 | ||
|  | ab11aaa694 | ||
|  | 83b5a2709d | ||
|  | f67f94fd6b | ||
|  | 4e8ae037bb | ||
|  | 04d8f46ff3 | ||
|  | 3191de68b8 | ||
|  | 047de370d6 | ||
|  | e21dc5f026 | ||
|  | f3da56773e | ||
|  | 5197758579 | ||
|  | d48af7c4c2 | ||
|  | bbafe0fc46 | ||
|  | 9a91f917e0 | ||
|  | 1f681f02ae | ||
|  | 778a86e7eb | ||
|  | 78da033441 | ||
|  | 6eb923d22f | ||
|  | e602afcd5f | ||
|  | bf1115d417 | ||
|  | b51038b9e7 | ||
|  | 44e0b58c66 | ||
|  | 3f7d5274a2 | ||
|  | c8f5f6045e | ||
|  | 6bcc2064a2 | ||
|  | 3f9872d8b3 | ||
|  | 5814cd5fae | ||
|  | 44f8c7c548 | ||
|  | c2549308fe | ||
|  | cf1a3bf4e7 | ||
|  | f5d668af31 | ||
|  | b7bd4e5c51 | ||
|  | 62373f969c | ||
|  | ceb651fdd1 | ||
|  | 8fa0f4a232 | ||
|  | 30f2e3b606 | ||
|  | 7d3d997083 | ||
|  | 3955e2c84a | ||
|  | 6a6c41df26 | ||
|  | 1dfd2aec50 | ||
|  | 8885f543ae | ||
|  | 8804e6c2ca | ||
|  | 88b7c214f7 | ||
|  | 297f3da5db | ||
|  | ec4d634677 | ||
|  | 0ddec99704 | ||
|  | 64cec1de3b | ||
|  | fdaf5d1fc8 | ||
|  | 6baf71dca5 | ||
|  | 9d75a72a02 | ||
|  | 4bf66d6a63 | ||
|  | 8d9a550107 | ||
|  | a076278026 | ||
|  | 998dac44ee | ||
|  | 871e81bd71 | ||
|  | d892d16b51 | ||
|  | 4cbf2781e5 | ||
|  | 69653b1c7c | ||
|  | 39390865da | ||
|  | 4952cd5afb | ||
|  | e86df96bfe | ||
|  | ef5195db90 | ||
|  | bc7e62db9f | ||
|  | 9a7ccc20e8 | ||
|  | 154e7a6a8a | ||
|  | ba56019f2d | ||
|  | 31d289c504 | ||
|  | a42b22966a | ||
|  | 17db62d463 | ||
|  | d6d40ea839 | ||
|  | eca8410dbb | ||
|  | eb3a530e6c | ||
|  | 26e17074c2 | ||
|  | 6b775628d5 | ||
|  | 13eb9103a7 | ||
|  | 1fa82c1077 | ||
|  | 426190181b | ||
|  | 1232a9a03d | ||
|  | e643c13292 | ||
|  | 522736e367 | ||
|  | 12fd9c29f0 | ||
|  | 0c871b67ca | ||
|  | 379e828fc1 | ||
|  | fe1e8575ea | ||
|  | 8f14099adc | ||
|  | 852c1396ae | ||
|  | b0f9195b57 | ||
|  | 98236736e0 | ||
|  | 8b93a2816c | ||
|  | 76d8a991c0 | ||
|  | 9186af1433 | ||
|  | 6a473f4c57 | ||
|  | 42224ab534 | ||
|  | 20bcf09459 | ||
|  | 5d1dd536e9 | ||
|  | 169b8807f7 | ||
|  | 5acdab849e | ||
|  | 2417084145 | ||
|  | c16e62b5bf | ||
|  | 6fa7d90f1f | ||
|  | 1a3fd0227d | ||
|  | 2259b7dfcf | ||
|  | 33fd70d0e1 | ||
|  | fc906bcaae | ||
|  | 184e111e39 | ||
|  | ab62f50f5c | ||
|  | 3eac854356 | ||
|  | f7892cd86b | ||
|  | 6e0260385c | ||
|  | 44300dabb0 | ||
|  | 580c3038c8 | ||
|  | 2a9175e964 | ||
|  | 5db20bbbe8 | ||
|  | ae144dff39 | ||
|  | 9f533efc92 | ||
|  | 76e15c4166 | ||
|  | 62bb2daf16 | ||
|  | 59e292030a | ||
|  | 533fc7e444 | ||
|  | e5c5338eb6 | ||
|  | 9463acb131 | ||
|  | e69749350b | ||
|  | 42749187ff | ||
|  | d5c2038d58 | ||
|  | 5843a61c9f | ||
|  | ecde2c9d7f | ||
|  | abd597c7a6 | ||
|  | b35e1d350b | ||
|  | 918399458d | ||
|  | 72d9b7028b | ||
|  | ed9790c840 | ||
|  | fd04bc4820 | ||
|  | 58a213b7f9 | ||
|  | 7f8bbfb4bd | ||
|  | 8a3e64b3cd | ||
|  | 572de86d06 | ||
|  | 88c33fa4d4 | ||
|  | ee1c6a1ce1 | ||
|  | 09e90bea8b | ||
|  | bf758412c1 | ||
|  | 0bbbf5b431 | ||
|  | 87b2236cfb | ||
|  | 855d2bb87f | ||
|  | 13b54a3b4d | ||
|  | 5d24ef4849 | ||
|  | b2da451e8d | ||
|  | 139b66fa76 | ||
|  | 390ed5d7f1 | ||
|  | 16b5fb6b56 | ||
|  | 6205d6c885 | ||
|  | e5ea65da82 | ||
|  | 9caa5feff5 | ||
|  | 7f616356d2 | ||
|  | 155b5dd42f | ||
|  | 41aaf428bf | ||
|  | a17cdf33ea | ||
|  | 3d5e879d5f | ||
|  | 1a73ad3a32 | ||
|  | abb5e7cd39 | ||
|  | cdae6de52e | ||
|  | 910fe77ca3 | ||
|  | b9a93c82d7 | ||
|  | 1c040bd616 | ||
|  | 166c537938 | ||
|  | 79c8de5fd0 | ||
|  | 7e6d2102a5 | ||
|  | 4f7d6132fc | ||
|  | b7fcc70cd9 | ||
|  | 43ad27931c | ||
|  | 68dc3f75eb | ||
|  | e67eb6d5b4 | ||
|  | 2e060bc85f | ||
|  | 22f80e4b19 | ||
|  | 1ef434f95e | ||
|  | 5676702da6 | ||
|  | 2fe0539600 | ||
|  | 13df5adecd | ||
|  | f33f808dc7 | ||
|  | 82ed9ef25e | ||
|  | 0aa26d791d | ||
|  | 255f278f5e | ||
|  | 1c76f9a0ff | ||
|  | 9a308e25a3 | ||
|  | 4b52f8c823 | ||
|  | 8f7145f80a | ||
|  | eb17f053f7 | ||
|  | 304e714331 | ||
|  | 525685f942 | ||
|  | e2477b66c6 | ||
|  | 58d51e039c | ||
|  | cb5b5167fc | ||
|  | 7d68378c3c | ||
|  | 87da6a947d | ||
|  | 0e644da6ac | ||
|  | d61a7c360e | ||
|  | ab286d851d | ||
|  | e8b60ab292 | ||
|  | 1cb7e70b42 | ||
|  | 25b9c22845 | ||
|  | 47166104fa | ||
|  | d0e0622058 | ||
|  | 87c75a1e43 | ||
|  | d1cc08f1d9 | ||
|  | 6619626486 | ||
|  | 1681ba090c | ||
|  | c36e1ad056 | ||
|  | d79c7f70be | ||
|  | b7eb2e4746 | ||
|  | 4db9b8b0e3 | ||
|  | f3a537d5c2 | ||
|  | 6a704b8a77 | ||
|  | df896877f8 | ||
|  | 3cb2d3dfff | ||
|  | d5f5e79661 | ||
|  | 82dffe9d0e | ||
|  | d7825dd7db | ||
|  | c0a2f429b6 | ||
|  | e909faa3ef | ||
|  | 28d9fdf798 | ||
|  | e9bfc44b90 | ||
|  | 2a772b71f1 | ||
|  | 233869ed80 | ||
|  | a9aaae7f97 | ||
|  | 500b4940a3 | ||
|  | 6d0dc47157 | ||
|  | 56e7e7d644 | ||
|  | 93c128ee21 | ||
|  | c72e3667b8 | ||
|  | 6406126ae3 | ||
|  | 6bde77bb57 | ||
|  | 831a628379 | ||
|  | 3d2babd059 | ||
|  | d9c4c74a56 | ||
|  | 5a231fb057 | ||
|  | 63f41df327 | ||
|  | 171618d32b | ||
|  | f7b58e7f64 | ||
|  | 436d87da98 | ||
|  | 896874fb99 | ||
|  | a9f8e80b1c | ||
|  | f93cd1bb48 | ||
|  | 8fc3a6b828 | ||
|  | 100840b743 | ||
|  | 8c8cab9309 | ||
|  | 629a8d6328 | ||
|  | ffdaec9f9f | ||
|  | c794153221 | ||
|  | d01837f42c | ||
|  | 7ad4cb0078 | ||
|  | ffd8349889 | ||
|  | f3716fd813 | ||
|  | 1170cf1896 | ||
|  | b9ee9d2bd5 | ||
|  | 21c3f75efc | ||
|  | eb5f7e36e9 | ||
|  | 4079563f5d | ||
|  | 6dabed5938 | ||
|  | 3939d516e6 | ||
|  | 5aba9d698b | ||
|  | 3dd652e7cf | ||
|  | f003298ce4 | ||
|  | 5f5ee0041f | ||
|  | 88497ddc52 | ||
|  | e921d5ec13 | ||
|  | c55974a485 | ||
|  | 2ff0f545f5 | ||
|  | 7f2a011c3e | ||
|  | 8af9a38c8e | ||
|  | b54bafe1c5 | ||
|  | 7a9ff3846e | ||
|  | 53fe08a348 | ||
|  | f118e86cfe | ||
|  | 2e60d5341e | ||
|  | 2ef3af0003 | ||
|  | 2b7699c26a | ||
|  | d567c58d3b | ||
|  | bede3d7e29 | ||
|  | 64d6dae672 | ||
|  | b001fe2b08 | ||
|  | c20285dd36 | ||
|  | 7e19c944b9 | ||
|  | fd4d3cff88 | ||
|  | 5ff646ca8e | ||
|  | 88432a5e67 | ||
|  | 7519d60fb7 | ||
|  | de23428069 | ||
|  | 9089bf2c5f | ||
|  | 2a344e26cc | ||
|  | af26403a86 | ||
|  | 3af6c8fe1d | ||
|  | b883b183a6 | ||
|  | ac58ace8cf | ||
|  | a50eefc44e | ||
|  | dbb3c5e32b | ||
|  | 265df31750 | ||
|  | 9bbe56df0b | ||
|  | 879c795fc4 | ||
|  | 8b5bb97537 | ||
|  | 3d7a635543 | ||
|  | b3ae9e6e25 | ||
|  | 023ea5b3a1 | ||
|  | 2ad6bd3945 | ||
|  | 2326dcdb12 | ||
|  | d95af455f1 | ||
|  | 8de955f3d8 | ||
|  | b5eb47f609 | ||
|  | af4ed0f39c | ||
|  | eac254f925 | ||
|  | 8246dec843 | ||
|  | 4514da0646 | ||
|  | 9abd6f5695 | ||
|  | a394967268 | ||
|  | c7c4cb9bc6 | ||
|  | 1ada679663 | ||
|  | 9552676783 | ||
|  | 69c7c03fb3 | ||
|  | 224a58bdf2 | ||
|  | 98427b715d | ||
|  | a8078aa151 | ||
|  | 7b583cecb2 | ||
|  | f3d9520db2 | ||
|  | 9de4bf1225 | ||
|  | 3cb6744369 | ||
|  | e021460f03 | ||
|  | 0a93f3346f | ||
|  | 332cc14dcd | ||
|  | 52e287fc7d | ||
|  | 7885b2e3f8 | ||
|  | e6683e46cc | ||
|  | 2447c72a5c | ||
|  | 4febabd3e7 | ||
|  | 4b4bfee1bc | ||
|  | d7c9d73349 | ||
|  | 09a5b6e7a3 | ||
|  | 703aa38a17 | ||
|  | b2f35057a5 | ||
|  | a3198b7df8 | ||
|  | db900d180c | ||
|  | 3d2ed57c08 | ||
|  | d0b0c4a917 | ||
|  | a1bf5e8261 | ||
|  | 74293d5bc8 | ||
|  | 59f48d6d57 | ||
|  | 50cad8d260 | ||
|  | 52f22aad81 | ||
|  | c03e24e10b | ||
|  | 995a2ef8a0 | ||
|  | 4d75681357 | ||
|  | 1a88eac9c7 | ||
|  | 47357ddec8 | ||
|  | 129ae3a737 | ||
|  | 31d1390039 | ||
|  | 6943bbcacb | ||
|  | 1d3fff32a2 | ||
|  | 069c9fd4a6 | ||
|  | 4f3cab4213 | ||
|  | 42c13ecafa | ||
|  | 70158c3a99 | ||
|  | ae8d2ae2cb | ||
|  | 79adf5cec6 | ||
|  | 26d44a5392 | ||
|  | 149f8bc9b3 | ||
|  | 78bdc2d6b4 | ||
|  | c9facdf825 | ||
|  | 4986a2f940 | ||
|  | 9fd372da51 | ||
|  | 68194fde0a | ||
|  | 155e73dc70 | ||
|  | 76a1ff7c40 | ||
|  | da357f7599 | ||
|  | 4efe941937 | ||
|  | 612d2dbde1 | ||
|  | 0c9369bf04 | ||
|  | 94043380bb | ||
|  | 96e880d170 | ||
|  | 3d8caa4694 | ||
|  | 4996ae8d9d | ||
|  | 7b4a0d4f8a | ||
|  | c2ad95fd94 | ||
|  | 5ad2e9d6b6 | ||
|  | 8bac655dc1 | ||
|  | e29f130285 | ||
|  | f9d4afd713 | ||
|  | d6b6f1e7d9 | ||
|  | ea5e78b217 | ||
|  | c9a7ef18dc | ||
|  | e23f90e41c | ||
|  | e1244648e0 | ||
|  | 8d72e253c8 | ||
|  | 33ed6a7c06 | ||
|  | c82a4a5760 | ||
|  | 445a629016 | ||
|  | be7daae91a | ||
|  | ba645692b0 | ||
|  | 08f541535b | ||
|  | 3520d2584e | ||
|  | 141ac0ca0b | ||
|  | 0c12128f64 | ||
|  | 1e939591ae | ||
|  | 25e42c0ad4 | ||
|  | 1c032a103d | ||
|  | e0022cd98c | ||
|  | 68dbf8b2a7 | ||
|  | a9ca1f3174 | ||
|  | bcff25c996 | ||
|  | e272f8e1d9 | ||
|  | 5b06595a6b | ||
|  | 44aafe4d78 | ||
|  | 92cbff67d1 | ||
|  | 2166f57750 | ||
|  | 726a52f3ee | ||
|  | 64424deb41 | ||
|  | 69025da2dc | ||
|  | 09cb3b7d50 | ||
|  | 8566bb551b | ||
|  | f631c2da06 | ||
|  | 19064f8cbb | ||
|  | de36670bdc | ||
|  | e8d68dc07f | ||
|  | f81149ac2b | ||
|  | ef928aff31 | ||
|  | 6f090a2fda | ||
|  | c690364ec6 | ||
|  | cc48433575 | ||
|  | fe1ef930ad | ||
|  | 8ce885089e | ||
|  | 3e910c0e03 | ||
|  | 7c47c52fac | ||
|  | 744fa22f01 | ||
|  | b3f996595f | ||
|  | 148f12a753 | ||
|  | aedd6503d1 | ||
|  | c3ecbd3063 | ||
|  | 3297b5ea34 | ||
|  | 19f929761b | ||
|  | d8890a03bb | ||
|  | 4a6bdfae23 | ||
|  | 7015fc4dbc | ||
|  | ab4d4a69ec | ||
|  | efbfd08aa0 | ||
|  | f9c29c3e74 | ||
|  | 0758f231e2 | ||
|  | 9fa8619590 | ||
|  | 174daa97c3 | ||
|  | 43de20930b | ||
|  | 4a4c26a2e3 | ||
|  | e2fe907de0 | ||
|  | f9986a6342 | ||
|  | 8d367a09fe | ||
|  | 7e60138e9d | ||
|  | e5c4390489 | ||
|  | dabcd2cf47 | ||
|  | 61910f264c | ||
|  | ddb0e29253 | ||
|  | 9d9ab2f1ee | ||
|  | ce65ac0c1c | ||
|  | 98203bcc8c | ||
|  | bee48d1d43 | ||
|  | ebbb4df227 | ||
|  | da7c969eeb | ||
|  | 310d981990 | ||
|  | 6275b7ba3b | ||
|  | b22a6b4e09 | ||
|  | b5fd3c72a0 | ||
|  | bf65332763 | ||
|  | 3973dec994 | ||
|  | c8212f1d4d | ||
|  | e6fe728bcb | ||
|  | bef30e4209 | ||
|  | 6c7f4c13fa | ||
|  | 662049914a | ||
|  | d7a5190d52 | ||
|  | 2b64661c61 | ||
|  | 9c29eecc30 | ||
|  | 25b58108bc | ||
|  | fbde36d27b | ||
|  | 02b7a43909 | ||
|  | e1e531a2a4 | ||
|  | f6edf27856 | ||
|  | 277e09d061 | ||
|  | 1c9fb5f65f | ||
|  | c29539aaf2 | ||
|  | 4143baa27a | ||
|  | 5816279d68 | ||
|  | 0d877a8076 | ||
|  | 7b266bc762 | ||
|  | 0e6aea856f | ||
|  | e31d17ef79 | ||
|  | 7b2a9ba698 | ||
|  | 87d08b0af6 | ||
|  | e68c5d5517 | ||
|  | c09825660c | ||
|  | 293e937291 | ||
|  | fe2f97dabd | ||
|  | 0b23aaca26 | ||
|  | d92dc47df8 | ||
|  | 8b69d918a9 | ||
|  | 3b79754b7a | ||
|  | 92ec4f5772 | ||
|  | 8528660f50 | ||
|  | edd4370cdb | ||
|  | 69aa1c2e91 | ||
|  | fcdd0de9ee | ||
|  | 4c5bde1b54 | ||
|  | 83f77a2d56 | ||
|  | cdac2d210e | ||
|  | 737941e8c7 | ||
|  | a873872cc7 | ||
|  | 56b8fd2074 | ||
|  | b2ea4f6aaf | ||
|  | ca5b024e03 | ||
|  | 92f5ad4f15 | ||
|  | ff8250cd35 | ||
|  | 466ec6b22a | ||
|  | beaf0a4a8a | ||
|  | 6871f36dad | ||
|  | a587718443 | ||
|  | 444250520a | ||
|  | bd5850f390 | ||
|  | ce1c2eeab7 | ||
|  | b08d6c3b4d | ||
|  | f269bc28cf | ||
|  | af63934d2c | ||
|  | 39816bef8f | ||
|  | 600b44c962 | ||
|  | 7a2b312d64 | ||
|  | 7d166dc7da | ||
|  | 0720b8487c | ||
|  | 4404f92b38 | ||
|  | 0a27979464 | ||
|  | a3cb722469 | ||
|  | 2cca2d70d7 | ||
|  | 17f313658d | ||
|  | d304c062eb | ||
|  | 3eef888e25 | ||
|  | 20eab4257a | ||
|  | 665dd0813e | ||
|  | e84232cce8 | ||
|  | de78d6a8ad | ||
|  | a085654aba | ||
|  | 61c88455f4 | ||
|  | a084bbbed8 | ||
|  | eb393f0a66 | ||
|  | c3afc13dd6 | ||
|  | 08b865d25b | ||
|  | 9932240a4d | ||
|  | 7c37d10d1f | ||
|  | ae147e615a | ||
|  | 91b57793c2 | ||
|  | affd617054 | ||
|  | 84163517c6 | ||
|  | 8a8a5332d7 | ||
|  | 8d3bbb8213 | ||
|  | a5e7ce9e1a | ||
|  | 64a78149aa | ||
|  | dbaed69d77 | ||
|  | faee751395 | ||
|  | 742e5e039d | ||
|  | 98579300c1 | ||
|  | 96ff5eef64 | ||
|  | 7f5a2c972b | ||
|  | dad6404c7f | ||
|  | 6dcf40f570 | ||
|  | 43b0422804 | ||
|  | 55ce0d9d17 | ||
|  | 895460aea3 | ||
|  | 7956127b29 | ||
|  | 6fb2721294 | ||
|  | ebb10e6604 | ||
|  | db878f4a7b | ||
|  | 1192314510 | ||
|  | 583e690b7a | ||
|  | a516b00a03 | ||
|  | 841ad8757c | ||
|  | 127bd4bf9d | ||
|  | a8c3b4126e | ||
|  | 2360b8282f | ||
|  | 0dade8624c | ||
|  | a9fad77eb4 | ||
|  | dc20429bca | ||
|  | 241be6de30 | ||
|  | 589b535b91 | ||
|  | eb6b07e804 | 
| @@ -16,7 +16,8 @@ jobs: | |||||||
|                   command: sudo npm install --global yarn@1.9.4 |                   command: sudo npm install --global yarn@1.9.4 | ||||||
|             - run: |             - run: | ||||||
|                   name: yarn |                   name: yarn | ||||||
|                   command: yarn --frozen-lockfile --ignore-engines install |                   command: yarn --frozen-lockfile --ignore-engines install || yarn --frozen-lockfile --ignore-engines install | ||||||
|  |             - setup_remote_docker | ||||||
|             - run: yarn build:ci:no_website |             - run: yarn build:ci:no_website | ||||||
|             - run: yarn build:ts |             - run: yarn build:ts | ||||||
|             - save_cache: |             - save_cache: | ||||||
| @@ -43,10 +44,14 @@ jobs: | |||||||
|                       - repo-{{ .Environment.CIRCLE_SHA1 }} |                       - repo-{{ .Environment.CIRCLE_SHA1 }} | ||||||
|             - run: yarn wsrun test:circleci @0x/contracts-multisig |             - run: yarn wsrun test:circleci @0x/contracts-multisig | ||||||
|             - run: yarn wsrun test:circleci @0x/contracts-utils |             - run: yarn wsrun test:circleci @0x/contracts-utils | ||||||
|             - run: yarn wsrun test:circleci @0x/contracts-libs |             - run: yarn wsrun test:circleci @0x/contracts-exchange-libs | ||||||
|             - run: yarn wsrun test:circleci @0x/contracts-tokens |             - run: yarn wsrun test:circleci @0x/contracts-erc20 | ||||||
|  |             - run: yarn wsrun test:circleci @0x/contracts-erc721 | ||||||
|             - run: yarn wsrun test:circleci @0x/contracts-extensions |             - run: yarn wsrun test:circleci @0x/contracts-extensions | ||||||
|             - run: yarn wsrun test:circleci @0x/contracts-protocol |             - run: yarn wsrun test:circleci @0x/contracts-asset-proxy | ||||||
|  |             - run: yarn wsrun test:circleci @0x/contracts-exchange | ||||||
|  |             - run: yarn wsrun test:circleci @0x/contracts-exchange-forwarder | ||||||
|  |             - run: yarn wsrun test:circleci @0x/contracts-tec | ||||||
|     test-contracts-geth: |     test-contracts-geth: | ||||||
|         docker: |         docker: | ||||||
|             - image: circleci/node:9-browsers |             - image: circleci/node:9-browsers | ||||||
| @@ -59,11 +64,15 @@ jobs: | |||||||
|             # HACK(albrow): we need to sleep 10 seconds to ensure the devnet is |             # HACK(albrow): we need to sleep 10 seconds to ensure the devnet is | ||||||
|             # initialized |             # initialized | ||||||
|             - run: sleep 10 && TEST_PROVIDER=geth yarn wsrun test @0x/contracts-multisig |             - run: sleep 10 && TEST_PROVIDER=geth yarn wsrun test @0x/contracts-multisig | ||||||
|             - run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-utils |             - run: TEST_PROVIDER=geth yarn wsrun test:circleci @0x/contracts-utils | ||||||
|             - run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-libs |             - run: TEST_PROVIDER=geth yarn wsrun test:circleci @0x/contracts-exchange-libs | ||||||
|             - run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-tokens |             - run: TEST_PROVIDER=geth yarn wsrun test:circleci @0x/contracts-erc20 | ||||||
|             - run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-extensions |             - run: TEST_PROVIDER=geth yarn wsrun test:circleci @0x/contracts-erc721 | ||||||
|             - run: TEST_PROVIDER=geth yarn wsrun test @0x/contracts-protocol |             - run: TEST_PROVIDER=geth yarn wsrun test:circleci @0x/contracts-extensions | ||||||
|  |             - run: TEST_PROVIDER=geth yarn wsrun test:circleci @0x/contracts-asset-proxy | ||||||
|  |             - run: TEST_PROVIDER=geth yarn wsrun test:circleci @0x/contracts-exchange | ||||||
|  |             - run: TEST_PROVIDER=geth yarn wsrun test:circleci @0x/contracts-exchange-forwarder | ||||||
|  |             - run: TEST_PROVIDER=geth yarn wsrun test:circleci @0x/contracts-tec | ||||||
|     test-publish: |     test-publish: | ||||||
|         resource_class: medium+ |         resource_class: medium+ | ||||||
|         docker: |         docker: | ||||||
| @@ -195,7 +204,7 @@ jobs: | |||||||
|         steps: |         steps: | ||||||
|             - checkout |             - checkout | ||||||
|             - run: sudo chown -R circleci:circleci /usr/local/bin |             - run: sudo chown -R circleci:circleci /usr/local/bin | ||||||
|             - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages |             - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7 | ||||||
|             - restore_cache: |             - restore_cache: | ||||||
|                   key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }} |                   key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }} | ||||||
|             - run: |             - run: | ||||||
| @@ -243,7 +252,7 @@ jobs: | |||||||
|         steps: |         steps: | ||||||
|             - checkout |             - checkout | ||||||
|             - run: sudo chown -R circleci:circleci /usr/local/bin |             - run: sudo chown -R circleci:circleci /usr/local/bin | ||||||
|             - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages |             - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7 | ||||||
|             - restore_cache: |             - restore_cache: | ||||||
|                   key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }} |                   key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }} | ||||||
|             - run: |             - run: | ||||||
| @@ -271,7 +280,7 @@ jobs: | |||||||
|         steps: |         steps: | ||||||
|             - checkout |             - checkout | ||||||
|             - run: sudo chown -R circleci:circleci /usr/local/bin |             - run: sudo chown -R circleci:circleci /usr/local/bin | ||||||
|             - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages |             - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7 | ||||||
|             - restore_cache: |             - restore_cache: | ||||||
|                   key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }} |                   key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }} | ||||||
|             - run: |             - run: | ||||||
| @@ -290,6 +299,7 @@ jobs: | |||||||
|                       - repo-{{ .Environment.CIRCLE_SHA1 }} |                       - repo-{{ .Environment.CIRCLE_SHA1 }} | ||||||
|             - run: yarn lerna run lint |             - run: yarn lerna run lint | ||||||
|             - run: yarn prettier:ci |             - run: yarn prettier:ci | ||||||
|  |             - run: yarn deps_versions:ci | ||||||
|             - run: cd packages/0x.js && yarn build:umd:prod |             - run: cd packages/0x.js && yarn build:umd:prod | ||||||
|             - run: yarn bundlewatch |             - run: yarn bundlewatch | ||||||
|     submit-coverage: |     submit-coverage: | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								.github/autolabeler.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/autolabeler.yml
									
									
									
									
										vendored
									
									
								
							| @@ -2,6 +2,7 @@ python: ['python-packages'] | |||||||
| contracts: ['contracts'] | contracts: ['contracts'] | ||||||
| sol-doc: ['packages/sol-doc'] | sol-doc: ['packages/sol-doc'] | ||||||
| sol-resolver: ['packages/sol-resolver'] | sol-resolver: ['packages/sol-resolver'] | ||||||
|  | contracts-gen: ['packages/contracts-gen'] | ||||||
| sra-spec: ['packages/sra-spec'] | sra-spec: ['packages/sra-spec'] | ||||||
| subproviders: ['packages/subproviders'] | subproviders: ['packages/subproviders'] | ||||||
| contract-addresses: ['packages/contract-addresses'] | contract-addresses: ['packages/contract-addresses'] | ||||||
|   | |||||||
							
								
								
									
										24
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										24
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -83,27 +83,31 @@ packages/react-docs/example/public/bundle* | |||||||
| packages/testnet-faucets/server/ | packages/testnet-faucets/server/ | ||||||
|  |  | ||||||
| # generated contract artifacts/ | # generated contract artifacts/ | ||||||
| contracts/protocol/generated-artifacts/ | contracts/tec/generated-artifacts/ | ||||||
|  | contracts/exchange/generated-artifacts/ | ||||||
|  | contracts/asset-proxy/generated-artifacts/ | ||||||
| contracts/multisig/generated-artifacts/ | contracts/multisig/generated-artifacts/ | ||||||
| contracts/utils/generated-artifacts/ | contracts/utils/generated-artifacts/ | ||||||
| contracts/libs/generated-artifacts/ | contracts/exchange-libs/generated-artifacts/ | ||||||
| contracts/interfaces/generated-artifacts/ | contracts/erc20/generated-artifacts/ | ||||||
| contracts/tokens/generated-artifacts/ | contracts/erc721/generated-artifacts/ | ||||||
| contracts/examples/generated-artifacts/ |  | ||||||
| contracts/extensions/generated-artifacts/ | contracts/extensions/generated-artifacts/ | ||||||
|  | contracts/exchange-forwarder/generated-artifacts/ | ||||||
| packages/sol-tracing-utils/test/fixtures/artifacts/ | packages/sol-tracing-utils/test/fixtures/artifacts/ | ||||||
| packages/metacoin/artifacts/ | packages/metacoin/artifacts/ | ||||||
|  |  | ||||||
| # generated contract wrappers | # generated contract wrappers | ||||||
| packages/abi-gen-wrappers/wrappers | packages/abi-gen-wrappers/wrappers | ||||||
| contracts/protocol/generated-wrappers/ | contracts/tec/generated-wrappers/ | ||||||
|  | contracts/exchange/generated-wrappers/ | ||||||
|  | contracts/asset-proxy/generated-wrappers/ | ||||||
| contracts/multisig/generated-wrappers/ | contracts/multisig/generated-wrappers/ | ||||||
| contracts/utils/generated-wrappers/ | contracts/utils/generated-wrappers/ | ||||||
| contracts/libs/generated-wrappers/ | contracts/exchange-libs/generated-wrappers/ | ||||||
| contracts/interfaces/generated-wrappers/ | contracts/erc20/generated-wrappers/ | ||||||
| contracts/tokens/generated-wrappers/ | contracts/erc721/generated-wrappers/ | ||||||
| contracts/examples/generated-wrappers/ |  | ||||||
| contracts/extensions/generated-wrappers/ | contracts/extensions/generated-wrappers/ | ||||||
|  | contracts/exchange-forwarder/generated-wrappers/ | ||||||
| packages/metacoin/src/contract_wrappers | packages/metacoin/src/contract_wrappers | ||||||
|  |  | ||||||
| # solc-bin in sol-compiler | # solc-bin in sol-compiler | ||||||
|   | |||||||
| @@ -1,21 +1,25 @@ | |||||||
| lib | lib | ||||||
| .nyc_output | .nyc_output | ||||||
| /contracts/protocol/generated-wrappers | /contracts/tec/generated-wrappers | ||||||
| /contracts/protocol/generated-artifacts | /contracts/tec/generated-artifacts | ||||||
|  | /contracts/exchange/generated-wrappers | ||||||
|  | /contracts/exchange/generated-artifacts | ||||||
|  | /contracts/asset-proxy/generated-wrappers | ||||||
|  | /contracts/asset-proxy/generated-artifacts | ||||||
| /contracts/multisig/generated-wrappers | /contracts/multisig/generated-wrappers | ||||||
| /contracts/multisig/generated-artifacts | /contracts/multisig/generated-artifacts | ||||||
| /contracts/utils/generated-wrappers | /contracts/utils/generated-wrappers | ||||||
| /contracts/utils/generated-artifacts | /contracts/utils/generated-artifacts | ||||||
| /contracts/libs/generated-wrappers | /contracts/exchange-libs/generated-wrappers | ||||||
| /contracts/libs/generated-artifacts | /contracts/exchange-libs/generated-artifacts | ||||||
| /contracts/interfaces/generated-wrappers | /contracts/erc20/generated-wrappers | ||||||
| /contracts/interfaces/generated-artifacts | /contracts/erc20/generated-artifacts | ||||||
| /contracts/tokens/generated-wrappers | /contracts/erc721/generated-wrappers | ||||||
| /contracts/tokens/generated-artifacts | /contracts/erc721/generated-artifacts | ||||||
| /contracts/examples/generated-wrappers |  | ||||||
| /contracts/examples/generated-artifacts |  | ||||||
| /contracts/extensions/generated-wrappers | /contracts/extensions/generated-wrappers | ||||||
| /contracts/extensions/generated-artifacts | /contracts/extensions/generated-artifacts | ||||||
|  | /contracts/exchange-forwarder/generated-wrappers | ||||||
|  | /contracts/exchange-forwarder/generated-artifacts | ||||||
| /packages/abi-gen-wrappers/src/generated-wrappers | /packages/abi-gen-wrappers/src/generated-wrappers | ||||||
| /packages/contract-artifacts/artifacts | /packages/contract-artifacts/artifacts | ||||||
| /python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts | /python-packages/contract_artifacts/src/zero_ex/contract_artifacts/artifacts | ||||||
|   | |||||||
							
								
								
									
										29
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								README.md
									
									
									
									
									
								
							| @@ -32,6 +32,22 @@ Visit our [developer portal](https://0xproject.com/docs/order-utils) for a compr | |||||||
| | [`0x-order-utils`](/python-packages/order_utils)               | [](https://pypi.org/project/0x-order-utils/)               | A set of utilities for generating, parsing, signing and validating 0x orders                      | | | [`0x-order-utils`](/python-packages/order_utils)               | [](https://pypi.org/project/0x-order-utils/)               | A set of utilities for generating, parsing, signing and validating 0x orders                      | | ||||||
| | [`0x-sra-client`](/python-packages/sra_client)                 | [](https://pypi.org/project/0x-sra-client/)                 | A Python client for interacting with servers conforming to the Standard Relayer API specification | | | [`0x-sra-client`](/python-packages/sra_client)                 | [](https://pypi.org/project/0x-sra-client/)                 | A Python client for interacting with servers conforming to the Standard Relayer API specification | | ||||||
|  |  | ||||||
|  | ### Solidity Packages | ||||||
|  |  | ||||||
|  | | Package                                                             | Version                                                                                                                                     | Description                                                                                                                                                                                                                                           | | ||||||
|  | | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||||||
|  | | [`@0x/contracts-asset-proxy`](/contracts/asset-proxy)               | [](https://www.npmjs.com/package/@0x/contracts-asset-proxy)               | [`AssetProxy`](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#assetproxy) contracts used within the protocol                                                                                               | | ||||||
|  | | [`@0x/contracts-erc20`](/contracts/erc20)                           | [](https://www.npmjs.com/package/@0x/contracts-erc20)                           | Implementations of various ERC20 tokens                                                                                                                                                                                                               | | ||||||
|  | | [`@0x/contracts-erc721`](/contracts/erc721)                         | [](https://www.npmjs.com/package/@0x/contracts-erc721)                         | Implementations of various ERC721 tokens                                                                                                                                                                                                              | | ||||||
|  | | [`@0x/contracts-exchange`](/contracts/exchange)                     | [](https://www.npmjs.com/package/@0x/contracts-exchange)                     | The [`Exchange`](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#exchange) contract used for settling trades within the protocol                                                                            | | ||||||
|  | | [`@0x/contracts-exchange-forwarder`](/contracts/exchange-forwarder) | [](https://www.npmjs.com/package/@0x/contracts-exchange-forwarder) | A [`Forwarder`](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/forwarder-specification.md) contract used to simplify UX for interacting with the protocol                                                                      | | ||||||
|  | | [`@0x/contracts-exchange-libs`](/contracts/exchange-libs)           | [](https://www.npmjs.com/package/@0x/contracts-exchange-libs)           | Protocol specific libraries used within the [`Exchange`](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#exchange) contract                                                                                 | | ||||||
|  | | [`@0x/contracts-extensions`](/contracts/extensions)                 | [](https://www.npmjs.com/package/@0x/contracts-extensions)                 | Contracts that interact with and extend the functionality of the core protocol                                                                                                                                                                        | | ||||||
|  | | [`@0x/contracts-multisig`](/contracts/multisig)                     | [](https://www.npmjs.com/package/@0x/contracts-multisig)                     | Various implementations of multisignature wallets, including the [`AssetProxyOwner`](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#assetproxyowner) contract that has permissions to upgrade the protocol | | ||||||
|  | | [`@0x/contracts-test-utils`](/contracts/test-utils)                 | [](https://www.npmjs.com/package/@0x/contracts-test-utils)                 | Typescript/Javascript shared utilities used for testing contracts                                                                                                                                                                                     | | ||||||
|  | | [`@0x/contracts-utils`](/contracts/utils)                           | [](https://www.npmjs.com/package/@0x/contracts-utils)                           | Generic libraries and utilities used throughout all of the contracts                                                                                                                                                                                  | | ||||||
|  | | [`@0x/contracts-tec`](/contracts/tec)                               | [](https://www.npmjs.com/package/@0x/contracts-tec)                               | A contract that allows users to execute 0x transactions with permission from a TEC (Trade Execution Coordinator)                                                                                                                                      | | ||||||
|  |  | ||||||
| ### Typescript/Javascript Packages | ### Typescript/Javascript Packages | ||||||
|  |  | ||||||
| #### 0x-specific packages | #### 0x-specific packages | ||||||
| @@ -84,7 +100,6 @@ Visit our [developer portal](https://0xproject.com/docs/order-utils) for a compr | |||||||
|  |  | ||||||
| | Package                                            | Description                                                                      | | | Package                                            | Description                                                                      | | ||||||
| | -------------------------------------------------- | -------------------------------------------------------------------------------- | | | -------------------------------------------------- | -------------------------------------------------------------------------------- | | ||||||
| | [`@0x/contracts`](/contracts/core)                 | 0x protocol solidity smart contracts & tests                                     | |  | ||||||
| | [`@0x/instant`](/packages/instant)                 | A free and flexible way to offer simple crypto purchasing in any app or website. | | | [`@0x/instant`](/packages/instant)                 | A free and flexible way to offer simple crypto purchasing in any app or website. | | ||||||
| | [`@0x/testnet-faucets`](/packages/testnet-faucets) | A faucet micro-service that dispenses test ERC20 tokens or Ether                 | | | [`@0x/testnet-faucets`](/packages/testnet-faucets) | A faucet micro-service that dispenses test ERC20 tokens or Ether                 | | ||||||
| | [`@0x/website`](/packages/website)                 | 0x website                                                                       | | | [`@0x/website`](/packages/website)                 | 0x website                                                                       | | ||||||
| @@ -134,6 +149,12 @@ To build a specific package: | |||||||
| PKG=@0x/web3-wrapper yarn build | PKG=@0x/web3-wrapper yarn build | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | To build all contracts packages: | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | yarn build:contracts | ||||||
|  | ``` | ||||||
|  |  | ||||||
| ### Watch | ### Watch | ||||||
|  |  | ||||||
| To re-build all packages on change: | To re-build all packages on change: | ||||||
| @@ -206,3 +227,9 @@ Run a specific package's test: | |||||||
| ```bash | ```bash | ||||||
| PKG=@0x/web3-wrapper yarn test | PKG=@0x/web3-wrapper yarn test | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | Run all contracts packages tests: | ||||||
|  |  | ||||||
|  | ```bash | ||||||
|  | yarn test:contracts | ||||||
|  | ``` | ||||||
|   | |||||||
							
								
								
									
										92
									
								
								contracts/asset-proxy/CHANGELOG.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								contracts/asset-proxy/CHANGELOG.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | |||||||
|  | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551479279, | ||||||
|  |         "version": "1.0.9", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551299797, | ||||||
|  |         "version": "1.0.8", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551220833, | ||||||
|  |         "version": "1.0.7", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551130135, | ||||||
|  |         "version": "1.0.6", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549733923, | ||||||
|  |         "version": "1.0.5", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.4", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1549547375 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.3", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Fake publish to enable pinning" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1549504360 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549452781, | ||||||
|  |         "version": "1.0.2", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549373905, | ||||||
|  |         "version": "1.0.1", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Move all AssetProxy contracts out of contracts-protocol to new package", | ||||||
|  |                 "pr": 1539 | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     } | ||||||
|  | ] | ||||||
							
								
								
									
										46
									
								
								contracts/asset-proxy/CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								contracts/asset-proxy/CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | |||||||
|  | <!-- | ||||||
|  | changelogUtils.file is auto-generated using the monorepo-scripts package. Don't edit directly. | ||||||
|  | Edit the package's CHANGELOG.json file only. | ||||||
|  | --> | ||||||
|  |  | ||||||
|  | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v1.0.9 - _March 1, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.8 - _February 27, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.7 - _February 26, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.6 - _February 25, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.5 - _February 9, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.4 - _February 7, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.3 - _February 7, 2019_ | ||||||
|  |  | ||||||
|  |     * Fake publish to enable pinning | ||||||
|  |  | ||||||
|  | ## v1.0.2 - _February 6, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.1 - _February 5, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.0 - _Invalid date_ | ||||||
|  |  | ||||||
|  |     * Move all AssetProxy contracts out of contracts-protocol to new package (#1539) | ||||||
							
								
								
									
										47
									
								
								contracts/asset-proxy/DEPLOYS.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								contracts/asset-proxy/DEPLOYS.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | |||||||
|  | [ | ||||||
|  |     { | ||||||
|  |         "name": "MultiAssetProxy", | ||||||
|  |         "version": "1.0.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Add MultiAssetProxy implementation", | ||||||
|  |                 "pr": 1224, | ||||||
|  |                 "networks": { | ||||||
|  |                     "3": "0xab8fbd189c569ccdee3a4d929bb7f557be4028f6", | ||||||
|  |                     "4": "0xb34cde0ad3a83d04abebc0b66e75196f22216621", | ||||||
|  |                     "42": "0xf6313a772c222f51c28f2304c0703b8cf5428fd8" | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "name": "ERC20Proxy", | ||||||
|  |         "version": "1.0.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "protocol v2 deploy", | ||||||
|  |                 "networks": { | ||||||
|  |                     "1": "0x2240dab907db71e64d3e0dba4800c83b5c502d4e", | ||||||
|  |                     "3": "0xb1408f4c245a23c31b98d2c626777d4c0d766caa", | ||||||
|  |                     "4": "0x3e809c563c15a295e832e37053798ddc8d6c8dab", | ||||||
|  |                     "42": "0xf1ec01d6236d3cd881a0bf0130ea25fe4234003e" | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "name": "ERC721Proxy", | ||||||
|  |         "version": "1.0.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "protocol v2 deploy", | ||||||
|  |                 "networks": { | ||||||
|  |                     "1": "0x208e41fb445f1bb1b6780d58356e81405f3e6127", | ||||||
|  |                     "3": "0xe654aac058bfbf9f83fcaee7793311dd82f6ddb4", | ||||||
|  |                     "4": "0x8e1ff02637cb5e39f2fa36c14706aa348b065b09", | ||||||
|  |                     "42": "0x2a9127c745688a165106c11cd4d647d2220af821" | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     } | ||||||
|  | ] | ||||||
| @@ -1,15 +1,14 @@ | |||||||
| ## Contracts | ## AssetProxy | ||||||
| 
 | 
 | ||||||
| Smart contracts that implement the 0x protocol. Addresses of the deployed contracts can be found in the 0x [wiki](https://0xproject.com/wiki#Deployed-Addresses) or the [CHANGELOG](./CHANGELOG.json) of this package. | This package contains the implementations of all of the [`AssetProxy`](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#assetproxy) contracts available within the 0x protocol. These contracts are responsible for decoding the `assetData` sent to them and performing the actual transfer of assets. Addresses of the deployed contracts can be found in the 0x [wiki](https://0xproject.com/wiki#Deployed-Addresses) or the [DEPLOYS](./DEPLOYS.json) file within this package. | ||||||
| 
 | 
 | ||||||
| ## Usage | ## Installation | ||||||
| 
 | 
 | ||||||
| Contracts that make up and interact with version 2.0.0 of the protocol can be found in the [contracts](./contracts) directory. The contents of this directory are broken down into the following subdirectories: | **Install** | ||||||
| 
 | 
 | ||||||
| -   [protocol](./contracts/protocol) | ```bash | ||||||
|     -   This directory contains the contracts that make up version 2.0.0. A full specification can be found [here](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md). | npm install @0x/contracts-asset-proxy --save | ||||||
| -   [test](./contracts/test) | ``` | ||||||
|     -   This directory contains mocks and other contracts that are used solely for testing contracts within the other directories. |  | ||||||
| 
 | 
 | ||||||
| ## Bug bounty | ## Bug bounty | ||||||
| 
 | 
 | ||||||
| @@ -42,13 +41,13 @@ yarn install | |||||||
| To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory: | To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| PKG=@0x/contracts-protocol yarn build | PKG=@0x/contracts-asset-proxy yarn build | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Or continuously rebuild on change: | Or continuously rebuild on change: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| PKG=@0x/contracts-protocol yarn watch | PKG=@0x/contracts-asset-proxy yarn watch | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ### Clean | ### Clean | ||||||
							
								
								
									
										34
									
								
								contracts/asset-proxy/compiler.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								contracts/asset-proxy/compiler.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | { | ||||||
|  |     "artifactsDir": "./generated-artifacts", | ||||||
|  |     "contractsDir": "./contracts", | ||||||
|  |     "useDockerisedSolc": true, | ||||||
|  |     "isOfflineMode": false, | ||||||
|  |     "compilerSettings": { | ||||||
|  |         "optimizer": { "enabled": true, "runs": 1000000 }, | ||||||
|  |         "outputSelection": { | ||||||
|  |             "*": { | ||||||
|  |                 "*": [ | ||||||
|  |                     "abi", | ||||||
|  |                     "evm.bytecode.object", | ||||||
|  |                     "evm.bytecode.sourceMap", | ||||||
|  |                     "evm.deployedBytecode.object", | ||||||
|  |                     "evm.deployedBytecode.sourceMap" | ||||||
|  |                 ] | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     }, | ||||||
|  |     "contracts": [ | ||||||
|  |         "@0x/contracts-erc20/contracts/test/DummyERC20Token.sol", | ||||||
|  |         "@0x/contracts-erc20/contracts/test/DummyMultipleReturnERC20Token.sol", | ||||||
|  |         "@0x/contracts-erc20/contracts/test/DummyNoReturnERC20Token.sol", | ||||||
|  |         "@0x/contracts-erc721/contracts/test/DummyERC721Receiver.sol", | ||||||
|  |         "@0x/contracts-erc721/contracts/test/DummyERC721Token.sol", | ||||||
|  |         "src/ERC20Proxy.sol", | ||||||
|  |         "src/ERC721Proxy.sol", | ||||||
|  |         "src/MixinAuthorizable.sol", | ||||||
|  |         "src/MultiAssetProxy.sol", | ||||||
|  |         "src/interfaces/IAssetData.sol", | ||||||
|  |         "src/interfaces/IAssetProxy.sol", | ||||||
|  |         "src/interfaces/IAuthorizable.sol" | ||||||
|  |     ] | ||||||
|  | } | ||||||
| @@ -18,9 +18,9 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-utils/contracts/utils/Ownable/Ownable.sol"; | import "@0x/contracts-utils/contracts/src/Ownable.sol"; | ||||||
| import "./mixins/MAssetProxyDispatcher.sol"; | import "./mixins/MAssetProxyDispatcher.sol"; | ||||||
| import "@0x/contracts-interfaces/contracts/protocol/AssetProxy/IAssetProxy.sol"; | import "./interfaces/IAssetProxy.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract MixinAssetProxyDispatcher is | contract MixinAssetProxyDispatcher is | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-utils/contracts/utils/Ownable/Ownable.sol"; | import "@0x/contracts-utils/contracts/src/Ownable.sol"; | ||||||
| import "./mixins/MAuthorizable.sol"; | import "./mixins/MAuthorizable.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity 0.4.24; | pragma solidity 0.4.24; | ||||||
| 
 | 
 | ||||||
| import "../Exchange/MixinAssetProxyDispatcher.sol"; | import "./MixinAssetProxyDispatcher.sol"; | ||||||
| import "./MixinAuthorizable.sol"; | import "./MixinAuthorizable.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-utils/contracts/utils/Ownable/IOwnable.sol"; | import "@0x/contracts-utils/contracts/src/interfaces/IOwnable.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract IAuthorizable is | contract IAuthorizable is | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-interfaces/contracts/protocol/Exchange/IAssetProxyDispatcher.sol"; | import "../interfaces/IAssetProxyDispatcher.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract MAssetProxyDispatcher is | contract MAssetProxyDispatcher is | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-interfaces/contracts/protocol/AssetProxy/IAuthorizable.sol"; | import "../interfaces/IAuthorizable.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract MAuthorizable is | contract MAuthorizable is | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-protocol", |     "name": "@0x/contracts-asset-proxy", | ||||||
|     "version": "2.2.2", |     "version": "1.0.9", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -29,10 +29,12 @@ | |||||||
|         "profiler:report:html": "istanbul report html && open coverage/index.html", |         "profiler:report:html": "istanbul report html && open coverage/index.html", | ||||||
|         "coverage:report:lcov": "istanbul report lcov", |         "coverage:report:lcov": "istanbul report lcov", | ||||||
|         "test:circleci": "yarn test", |         "test:circleci": "yarn test", | ||||||
|  |         "contracts:gen": "contracts-gen", | ||||||
|         "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" |         "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" | ||||||
|     }, |     }, | ||||||
|     "config": { |     "config": { | ||||||
|         "abis": "generated-artifacts/@(AssetProxyOwner|ERC20Proxy|ERC721Proxy|Exchange|MixinAuthorizable|MultiAssetProxy|TestSignatureValidator|TestAssetProxyOwner|TestAssetProxyDispatcher|TestExchangeInternals|TestStaticCallReceiver).json" |         "abis": "./generated-artifacts/@(DummyERC20Token|DummyERC721Receiver|DummyERC721Token|DummyMultipleReturnERC20Token|DummyNoReturnERC20Token|ERC20Proxy|ERC721Proxy|IAssetData|IAssetProxy|IAuthorizable|MixinAuthorizable|MultiAssetProxy).json", | ||||||
|  |         "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." | ||||||
|     }, |     }, | ||||||
|     "repository": { |     "repository": { | ||||||
|         "type": "git", |         "type": "git", | ||||||
| @@ -44,48 +46,38 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/0x-monorepo/contracts/protocol/README.md", |     "homepage": "https://github.com/0xProject/0x-monorepo/contracts/protocol/README.md", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^1.0.22", |         "@0x/abi-gen": "^2.0.6", | ||||||
|         "@0x/dev-utils": "^1.0.24", |         "@0x/contracts-gen": "^1.0.5", | ||||||
|         "@0x/sol-compiler": "^2.0.2", |         "@0x/contracts-test-utils": "^3.0.8", | ||||||
|         "@0x/subproviders": "^2.1.11", |         "@0x/dev-utils": "^2.1.3", | ||||||
|         "@0x/tslint-config": "^2.0.2", |         "@0x/sol-compiler": "^3.1.3", | ||||||
|         "@types/bn.js": "^4.11.0", |         "@0x/tslint-config": "^3.0.0", | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/node": "*", |         "@types/node": "*", | ||||||
|         "@types/yargs": "^10.0.0", |  | ||||||
|         "chai": "^4.0.1", |         "chai": "^4.0.1", | ||||||
|         "chai-as-promised": "^7.1.0", |         "chai-as-promised": "^7.1.0", | ||||||
|         "chai-bignumber": "^2.0.1", |         "chai-bignumber": "^3.0.0", | ||||||
|         "dirty-chai": "^2.0.1", |         "dirty-chai": "^2.0.1", | ||||||
|         "ethereumjs-abi": "0.6.5", |  | ||||||
|         "make-promises-safe": "^1.1.0", |         "make-promises-safe": "^1.1.0", | ||||||
|         "mocha": "^4.1.0", |         "mocha": "^4.1.0", | ||||||
|         "npm-run-all": "^4.1.2", |         "npm-run-all": "^4.1.2", | ||||||
|         "shx": "^0.2.2", |         "shx": "^0.2.2", | ||||||
|         "solhint": "^1.4.1", |         "solhint": "^1.4.1", | ||||||
|         "tslint": "5.11.0", |         "tslint": "5.11.0", | ||||||
|         "typescript": "3.0.1", |         "typescript": "3.0.1" | ||||||
|         "yargs": "^10.0.3" |  | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^3.0.13", |         "@0x/base-contract": "^5.0.2", | ||||||
|         "@0x/contracts-examples": "^1.0.5", |         "@0x/contracts-erc20": "^1.0.9", | ||||||
|         "@0x/contracts-interfaces": "^1.0.5", |         "@0x/contracts-erc721": "^1.0.9", | ||||||
|         "@0x/contracts-libs": "^1.0.5", |         "@0x/contracts-utils": "2.0.1", | ||||||
|         "@0x/contracts-multisig": "^1.0.5", |         "@0x/order-utils": "^7.0.2", | ||||||
|         "@0x/contracts-test-utils": "^2.0.0", |         "@0x/types": "^2.1.1", | ||||||
|         "@0x/contracts-tokens": "^1.0.5", |         "@0x/typescript-typings": "^4.1.0", | ||||||
|         "@0x/contracts-utils": "^1.0.5", |         "@0x/utils": "^4.2.2", | ||||||
|         "@0x/order-utils": "^3.1.2", |         "@0x/web3-wrapper": "^6.0.2", | ||||||
|         "@0x/types": "^1.5.2", |         "ethereum-types": "^2.1.0", | ||||||
|         "@0x/typescript-typings": "^3.0.8", |         "lodash": "^4.17.11" | ||||||
|         "@0x/utils": "^3.0.1", |  | ||||||
|         "@0x/web3-wrapper": "^3.2.4", |  | ||||||
|         "@types/js-combinatorics": "^0.5.29", |  | ||||||
|         "bn.js": "^4.11.8", |  | ||||||
|         "ethereum-types": "^1.1.6", |  | ||||||
|         "ethereumjs-util": "^5.1.1", |  | ||||||
|         "lodash": "^4.17.5" |  | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|         "access": "public" |         "access": "public" | ||||||
							
								
								
									
										33
									
								
								contracts/asset-proxy/src/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								contracts/asset-proxy/src/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | /* | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  * Warning: This file is auto-generated by contracts-gen. Don't edit manually. | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  */ | ||||||
|  | import { ContractArtifact } from 'ethereum-types'; | ||||||
|  |  | ||||||
|  | import * as DummyERC20Token from '../generated-artifacts/DummyERC20Token.json'; | ||||||
|  | import * as DummyERC721Receiver from '../generated-artifacts/DummyERC721Receiver.json'; | ||||||
|  | import * as DummyERC721Token from '../generated-artifacts/DummyERC721Token.json'; | ||||||
|  | import * as DummyMultipleReturnERC20Token from '../generated-artifacts/DummyMultipleReturnERC20Token.json'; | ||||||
|  | import * as DummyNoReturnERC20Token from '../generated-artifacts/DummyNoReturnERC20Token.json'; | ||||||
|  | import * as ERC20Proxy from '../generated-artifacts/ERC20Proxy.json'; | ||||||
|  | import * as ERC721Proxy from '../generated-artifacts/ERC721Proxy.json'; | ||||||
|  | import * as IAssetData from '../generated-artifacts/IAssetData.json'; | ||||||
|  | import * as IAssetProxy from '../generated-artifacts/IAssetProxy.json'; | ||||||
|  | import * as IAuthorizable from '../generated-artifacts/IAuthorizable.json'; | ||||||
|  | import * as MixinAuthorizable from '../generated-artifacts/MixinAuthorizable.json'; | ||||||
|  | import * as MultiAssetProxy from '../generated-artifacts/MultiAssetProxy.json'; | ||||||
|  | export const artifacts = { | ||||||
|  |     DummyERC20Token: DummyERC20Token as ContractArtifact, | ||||||
|  |     DummyMultipleReturnERC20Token: DummyMultipleReturnERC20Token as ContractArtifact, | ||||||
|  |     DummyNoReturnERC20Token: DummyNoReturnERC20Token as ContractArtifact, | ||||||
|  |     DummyERC721Receiver: DummyERC721Receiver as ContractArtifact, | ||||||
|  |     DummyERC721Token: DummyERC721Token as ContractArtifact, | ||||||
|  |     ERC20Proxy: ERC20Proxy as ContractArtifact, | ||||||
|  |     ERC721Proxy: ERC721Proxy as ContractArtifact, | ||||||
|  |     MixinAuthorizable: MixinAuthorizable as ContractArtifact, | ||||||
|  |     MultiAssetProxy: MultiAssetProxy as ContractArtifact, | ||||||
|  |     IAssetData: IAssetData as ContractArtifact, | ||||||
|  |     IAssetProxy: IAssetProxy as ContractArtifact, | ||||||
|  |     IAuthorizable: IAuthorizable as ContractArtifact, | ||||||
|  | }; | ||||||
							
								
								
									
										17
									
								
								contracts/asset-proxy/src/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								contracts/asset-proxy/src/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | |||||||
|  | /* | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  * Warning: This file is auto-generated by contracts-gen. Don't edit manually. | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  */ | ||||||
|  | export * from '../generated-wrappers/dummy_erc20_token'; | ||||||
|  | export * from '../generated-wrappers/dummy_erc721_receiver'; | ||||||
|  | export * from '../generated-wrappers/dummy_erc721_token'; | ||||||
|  | export * from '../generated-wrappers/dummy_multiple_return_erc20_token'; | ||||||
|  | export * from '../generated-wrappers/dummy_no_return_erc20_token'; | ||||||
|  | export * from '../generated-wrappers/erc20_proxy'; | ||||||
|  | export * from '../generated-wrappers/erc721_proxy'; | ||||||
|  | export * from '../generated-wrappers/i_asset_data'; | ||||||
|  | export * from '../generated-wrappers/i_asset_proxy'; | ||||||
|  | export * from '../generated-wrappers/i_authorizable'; | ||||||
|  | export * from '../generated-wrappers/mixin_authorizable'; | ||||||
|  | export * from '../generated-wrappers/multi_asset_proxy'; | ||||||
| @@ -12,8 +12,7 @@ import { BigNumber } from '@0x/utils'; | |||||||
| import * as chai from 'chai'; | import * as chai from 'chai'; | ||||||
| import * as _ from 'lodash'; | import * as _ from 'lodash'; | ||||||
| 
 | 
 | ||||||
| import { MixinAuthorizableContract } from '../../generated-wrappers/mixin_authorizable'; | import { artifacts, MixinAuthorizableContract } from '../src'; | ||||||
| import { artifacts } from '../../src/artifacts'; |  | ||||||
| 
 | 
 | ||||||
| chaiSetup.configure(); | chaiSetup.configure(); | ||||||
| const expect = chai.expect; | const expect = chai.expect; | ||||||
| @@ -1,4 +1,3 @@ | |||||||
| import { artifacts as interfacesArtifacts, IAssetDataContract, IAssetProxyContract } from '@0x/contracts-interfaces'; |  | ||||||
| import { | import { | ||||||
|     chaiSetup, |     chaiSetup, | ||||||
|     constants, |     constants, | ||||||
| @@ -9,15 +8,6 @@ import { | |||||||
|     txDefaults, |     txDefaults, | ||||||
|     web3Wrapper, |     web3Wrapper, | ||||||
| } from '@0x/contracts-test-utils'; | } from '@0x/contracts-test-utils'; | ||||||
| import { |  | ||||||
|     artifacts as tokensArtifacts, |  | ||||||
|     DummyERC20TokenContract, |  | ||||||
|     DummyERC20TokenTransferEventArgs, |  | ||||||
|     DummyERC721ReceiverContract, |  | ||||||
|     DummyERC721TokenContract, |  | ||||||
|     DummyMultipleReturnERC20TokenContract, |  | ||||||
|     DummyNoReturnERC20TokenContract, |  | ||||||
| } from '@0x/contracts-tokens'; |  | ||||||
| import { BlockchainLifecycle } from '@0x/dev-utils'; | import { BlockchainLifecycle } from '@0x/dev-utils'; | ||||||
| import { assetDataUtils } from '@0x/order-utils'; | import { assetDataUtils } from '@0x/order-utils'; | ||||||
| import { RevertReason } from '@0x/types'; | import { RevertReason } from '@0x/types'; | ||||||
| @@ -26,23 +16,33 @@ import * as chai from 'chai'; | |||||||
| import { LogWithDecodedArgs } from 'ethereum-types'; | import { LogWithDecodedArgs } from 'ethereum-types'; | ||||||
| import * as _ from 'lodash'; | import * as _ from 'lodash'; | ||||||
| 
 | 
 | ||||||
| import { ERC20ProxyContract } from '../../generated-wrappers/erc20_proxy'; | import { | ||||||
| import { ERC721ProxyContract } from '../../generated-wrappers/erc721_proxy'; |     artifacts, | ||||||
| import { MultiAssetProxyContract } from '../../generated-wrappers/multi_asset_proxy'; |     DummyERC20TokenContract, | ||||||
| import { artifacts } from '../../src/artifacts'; |     DummyERC20TokenTransferEventArgs, | ||||||
| import { ERC20Wrapper } from '../utils/erc20_wrapper'; |     DummyERC721ReceiverContract, | ||||||
| import { ERC721Wrapper } from '../utils/erc721_wrapper'; |     DummyERC721TokenContract, | ||||||
|  |     DummyMultipleReturnERC20TokenContract, | ||||||
|  |     DummyNoReturnERC20TokenContract, | ||||||
|  |     ERC20ProxyContract, | ||||||
|  |     ERC20Wrapper, | ||||||
|  |     ERC721ProxyContract, | ||||||
|  |     ERC721Wrapper, | ||||||
|  |     IAssetDataContract, | ||||||
|  |     IAssetProxyContract, | ||||||
|  |     MultiAssetProxyContract, | ||||||
|  | } from '../src'; | ||||||
| 
 | 
 | ||||||
| chaiSetup.configure(); | chaiSetup.configure(); | ||||||
| const expect = chai.expect; | const expect = chai.expect; | ||||||
| const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper); | const blockchainLifecycle = new BlockchainLifecycle(web3Wrapper); | ||||||
| const assetProxyInterface = new IAssetProxyContract( | const assetProxyInterface = new IAssetProxyContract( | ||||||
|     interfacesArtifacts.IAssetProxy.compilerOutput.abi, |     artifacts.IAssetProxy.compilerOutput.abi, | ||||||
|     constants.NULL_ADDRESS, |     constants.NULL_ADDRESS, | ||||||
|     provider, |     provider, | ||||||
| ); | ); | ||||||
| const assetDataInterface = new IAssetDataContract( | const assetDataInterface = new IAssetDataContract( | ||||||
|     interfacesArtifacts.IAssetData.compilerOutput.abi, |     artifacts.IAssetData.compilerOutput.abi, | ||||||
|     constants.NULL_ADDRESS, |     constants.NULL_ADDRESS, | ||||||
|     provider, |     provider, | ||||||
| ); | ); | ||||||
| @@ -148,7 +148,7 @@ describe('Asset Transfer Proxies', () => { | |||||||
|             constants.DUMMY_TOKEN_DECIMALS, |             constants.DUMMY_TOKEN_DECIMALS, | ||||||
|         ); |         ); | ||||||
|         noReturnErc20Token = await DummyNoReturnERC20TokenContract.deployFrom0xArtifactAsync( |         noReturnErc20Token = await DummyNoReturnERC20TokenContract.deployFrom0xArtifactAsync( | ||||||
|             tokensArtifacts.DummyNoReturnERC20Token, |             artifacts.DummyNoReturnERC20Token, | ||||||
|             provider, |             provider, | ||||||
|             txDefaults, |             txDefaults, | ||||||
|             constants.DUMMY_TOKEN_NAME, |             constants.DUMMY_TOKEN_NAME, | ||||||
| @@ -157,7 +157,7 @@ describe('Asset Transfer Proxies', () => { | |||||||
|             constants.DUMMY_TOKEN_TOTAL_SUPPLY, |             constants.DUMMY_TOKEN_TOTAL_SUPPLY, | ||||||
|         ); |         ); | ||||||
|         multipleReturnErc20Token = await DummyMultipleReturnERC20TokenContract.deployFrom0xArtifactAsync( |         multipleReturnErc20Token = await DummyMultipleReturnERC20TokenContract.deployFrom0xArtifactAsync( | ||||||
|             tokensArtifacts.DummyMultipleReturnERC20Token, |             artifacts.DummyMultipleReturnERC20Token, | ||||||
|             provider, |             provider, | ||||||
|             txDefaults, |             txDefaults, | ||||||
|             constants.DUMMY_TOKEN_NAME, |             constants.DUMMY_TOKEN_NAME, | ||||||
| @@ -198,7 +198,7 @@ describe('Asset Transfer Proxies', () => { | |||||||
|         // Deploy and configure ERC721 tokens and receiver
 |         // Deploy and configure ERC721 tokens and receiver
 | ||||||
|         [erc721TokenA, erc721TokenB] = await erc721Wrapper.deployDummyTokensAsync(); |         [erc721TokenA, erc721TokenB] = await erc721Wrapper.deployDummyTokensAsync(); | ||||||
|         erc721Receiver = await DummyERC721ReceiverContract.deployFrom0xArtifactAsync( |         erc721Receiver = await DummyERC721ReceiverContract.deployFrom0xArtifactAsync( | ||||||
|             tokensArtifacts.DummyERC721Receiver, |             artifacts.DummyERC721Receiver, | ||||||
|             provider, |             provider, | ||||||
|             txDefaults, |             txDefaults, | ||||||
|         ); |         ); | ||||||
| @@ -259,7 +259,7 @@ describe('Asset Transfer Proxies', () => { | |||||||
|                     erc20Balances[fromAddress][erc20TokenA.address].minus(amount), |                     erc20Balances[fromAddress][erc20TokenA.address].minus(amount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenA.address].add(amount), |                     erc20Balances[toAddress][erc20TokenA.address].plus(amount), | ||||||
|                 ); |                 ); | ||||||
|             }); |             }); | ||||||
| 
 | 
 | ||||||
| @@ -318,7 +318,7 @@ describe('Asset Transfer Proxies', () => { | |||||||
|                     erc20Balances[fromAddress][erc20TokenA.address].minus(amount), |                     erc20Balances[fromAddress][erc20TokenA.address].minus(amount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenA.address].add(amount), |                     erc20Balances[toAddress][erc20TokenA.address].plus(amount), | ||||||
|                 ); |                 ); | ||||||
|             }); |             }); | ||||||
| 
 | 
 | ||||||
| @@ -562,7 +562,7 @@ describe('Asset Transfer Proxies', () => { | |||||||
|                     erc721Receiver.address, |                     erc721Receiver.address, | ||||||
|                     amount, |                     amount, | ||||||
|                 ); |                 ); | ||||||
|                 const logDecoder = new LogDecoder(web3Wrapper, { ...artifacts, ...tokensArtifacts }); |                 const logDecoder = new LogDecoder(web3Wrapper, artifacts); | ||||||
|                 const tx = await logDecoder.getTxWithDecodedLogsAsync( |                 const tx = await logDecoder.getTxWithDecodedLogsAsync( | ||||||
|                     await web3Wrapper.sendTransactionAsync({ |                     await web3Wrapper.sendTransactionAsync({ | ||||||
|                         to: erc721Proxy.address, |                         to: erc721Proxy.address, | ||||||
| @@ -737,7 +737,7 @@ describe('Asset Transfer Proxies', () => { | |||||||
|                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount), |                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenA.address].add(totalAmount), |                     erc20Balances[toAddress][erc20TokenA.address].plus(totalAmount), | ||||||
|                 ); |                 ); | ||||||
|             }); |             }); | ||||||
|             it('should dispatch an ERC20 transfer when input amount is 0', async () => { |             it('should dispatch an ERC20 transfer when input amount is 0', async () => { | ||||||
| @@ -754,7 +754,7 @@ describe('Asset Transfer Proxies', () => { | |||||||
|                     inputAmount, |                     inputAmount, | ||||||
|                 ); |                 ); | ||||||
|                 const erc20Balances = await erc20Wrapper.getBalancesAsync(); |                 const erc20Balances = await erc20Wrapper.getBalancesAsync(); | ||||||
|                 const logDecoder = new LogDecoder(web3Wrapper, { ...artifacts, ...tokensArtifacts }); |                 const logDecoder = new LogDecoder(web3Wrapper, artifacts); | ||||||
|                 const tx = await logDecoder.getTxWithDecodedLogsAsync( |                 const tx = await logDecoder.getTxWithDecodedLogsAsync( | ||||||
|                     await web3Wrapper.sendTransactionAsync({ |                     await web3Wrapper.sendTransactionAsync({ | ||||||
|                         to: multiAssetProxy.address, |                         to: multiAssetProxy.address, | ||||||
| @@ -800,7 +800,7 @@ describe('Asset Transfer Proxies', () => { | |||||||
|                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount), |                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenA.address].add(totalAmount), |                     erc20Balances[toAddress][erc20TokenA.address].plus(totalAmount), | ||||||
|                 ); |                 ); | ||||||
|             }); |             }); | ||||||
|             it('should successfully transfer multiple different ERC20 tokens', async () => { |             it('should successfully transfer multiple different ERC20 tokens', async () => { | ||||||
| @@ -834,13 +834,13 @@ describe('Asset Transfer Proxies', () => { | |||||||
|                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount), |                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenA.address].add(totalErc20AAmount), |                     erc20Balances[toAddress][erc20TokenA.address].plus(totalErc20AAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal( |                 expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount), |                     erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenB.address].add(totalErc20BAmount), |                     erc20Balances[toAddress][erc20TokenB.address].plus(totalErc20BAmount), | ||||||
|                 ); |                 ); | ||||||
|             }); |             }); | ||||||
|             it('should transfer a single ERC721 token', async () => { |             it('should transfer a single ERC721 token', async () => { | ||||||
| @@ -970,7 +970,7 @@ describe('Asset Transfer Proxies', () => { | |||||||
|                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount), |                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenA.address].add(totalAmount), |                     erc20Balances[toAddress][erc20TokenA.address].plus(totalAmount), | ||||||
|                 ); |                 ); | ||||||
|                 const newOwnerFromAsset = await erc721TokenA.ownerOf.callAsync(erc721AFromTokenId); |                 const newOwnerFromAsset = await erc721TokenA.ownerOf.callAsync(erc721AFromTokenId); | ||||||
|                 expect(newOwnerFromAsset).to.be.equal(toAddress); |                 expect(newOwnerFromAsset).to.be.equal(toAddress); | ||||||
| @@ -1008,7 +1008,7 @@ describe('Asset Transfer Proxies', () => { | |||||||
|                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount), |                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenA.address].add(totalAmount), |                     erc20Balances[toAddress][erc20TokenA.address].plus(totalAmount), | ||||||
|                 ); |                 ); | ||||||
|                 const newOwnerFromAsset = await erc721TokenA.ownerOf.callAsync(erc721AFromTokenId); |                 const newOwnerFromAsset = await erc721TokenA.ownerOf.callAsync(erc721AFromTokenId); | ||||||
|                 expect(newOwnerFromAsset).to.be.equal(toAddress); |                 expect(newOwnerFromAsset).to.be.equal(toAddress); | ||||||
| @@ -1044,13 +1044,13 @@ describe('Asset Transfer Proxies', () => { | |||||||
|                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount), |                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenA.address].add(totalErc20AAmount), |                     erc20Balances[toAddress][erc20TokenA.address].plus(totalErc20AAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal( |                 expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount), |                     erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenB.address].add(totalErc20BAmount), |                     erc20Balances[toAddress][erc20TokenB.address].plus(totalErc20BAmount), | ||||||
|                 ); |                 ); | ||||||
|             }); |             }); | ||||||
|             it('should successfully transfer a large amount of tokens', async () => { |             it('should successfully transfer a large amount of tokens', async () => { | ||||||
| @@ -1122,13 +1122,13 @@ describe('Asset Transfer Proxies', () => { | |||||||
|                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount), |                     erc20Balances[fromAddress][erc20TokenA.address].minus(totalErc20AAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenA.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenA.address].add(totalErc20AAmount), |                     erc20Balances[toAddress][erc20TokenA.address].plus(totalErc20AAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal( |                 expect(newBalances[fromAddress][erc20TokenB.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount), |                     erc20Balances[fromAddress][erc20TokenB.address].minus(totalErc20BAmount), | ||||||
|                 ); |                 ); | ||||||
|                 expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal( |                 expect(newBalances[toAddress][erc20TokenB.address]).to.be.bignumber.equal( | ||||||
|                     erc20Balances[toAddress][erc20TokenB.address].add(totalErc20BAmount), |                     erc20Balances[toAddress][erc20TokenB.address].plus(totalErc20BAmount), | ||||||
|                 ); |                 ); | ||||||
|             }); |             }); | ||||||
|             it('should revert if a single transfer fails', async () => { |             it('should revert if a single transfer fails', async () => { | ||||||
| @@ -1,19 +1,17 @@ | |||||||
| import { constants, ERC20BalancesByOwner, txDefaults } from '@0x/contracts-test-utils'; | import { constants, ERC20BalancesByOwner, txDefaults } from '@0x/contracts-test-utils'; | ||||||
| import { artifacts as tokensArtifacts, DummyERC20TokenContract } from '@0x/contracts-tokens'; |  | ||||||
| import { assetDataUtils } from '@0x/order-utils'; | import { assetDataUtils } from '@0x/order-utils'; | ||||||
| import { BigNumber } from '@0x/utils'; | import { BigNumber } from '@0x/utils'; | ||||||
| import { Web3Wrapper } from '@0x/web3-wrapper'; | import { Web3Wrapper } from '@0x/web3-wrapper'; | ||||||
| import { Provider } from 'ethereum-types'; | import { ZeroExProvider } from 'ethereum-types'; | ||||||
| import * as _ from 'lodash'; | import * as _ from 'lodash'; | ||||||
| 
 | 
 | ||||||
| import { ERC20ProxyContract } from '../../generated-wrappers/erc20_proxy'; | import { artifacts, DummyERC20TokenContract, ERC20ProxyContract } from '../../src'; | ||||||
| import { artifacts } from '../../src/artifacts'; |  | ||||||
| 
 | 
 | ||||||
| export class ERC20Wrapper { | export class ERC20Wrapper { | ||||||
|     private readonly _tokenOwnerAddresses: string[]; |     private readonly _tokenOwnerAddresses: string[]; | ||||||
|     private readonly _contractOwnerAddress: string; |     private readonly _contractOwnerAddress: string; | ||||||
|     private readonly _web3Wrapper: Web3Wrapper; |     private readonly _web3Wrapper: Web3Wrapper; | ||||||
|     private readonly _provider: Provider; |     private readonly _provider: ZeroExProvider; | ||||||
|     private readonly _dummyTokenContracts: DummyERC20TokenContract[]; |     private readonly _dummyTokenContracts: DummyERC20TokenContract[]; | ||||||
|     private _proxyContract?: ERC20ProxyContract; |     private _proxyContract?: ERC20ProxyContract; | ||||||
|     private _proxyIdIfExists?: string; |     private _proxyIdIfExists?: string; | ||||||
| @@ -24,7 +22,7 @@ export class ERC20Wrapper { | |||||||
|      * @param contractOwnerAddress Desired owner of the contract |      * @param contractOwnerAddress Desired owner of the contract | ||||||
|      * Instance of ERC20Wrapper |      * Instance of ERC20Wrapper | ||||||
|      */ |      */ | ||||||
|     constructor(provider: Provider, tokenOwnerAddresses: string[], contractOwnerAddress: string) { |     constructor(provider: ZeroExProvider, tokenOwnerAddresses: string[], contractOwnerAddress: string) { | ||||||
|         this._dummyTokenContracts = []; |         this._dummyTokenContracts = []; | ||||||
|         this._web3Wrapper = new Web3Wrapper(provider); |         this._web3Wrapper = new Web3Wrapper(provider); | ||||||
|         this._provider = provider; |         this._provider = provider; | ||||||
| @@ -38,7 +36,7 @@ export class ERC20Wrapper { | |||||||
|         for (let i = 0; i < numberToDeploy; i++) { |         for (let i = 0; i < numberToDeploy; i++) { | ||||||
|             this._dummyTokenContracts.push( |             this._dummyTokenContracts.push( | ||||||
|                 await DummyERC20TokenContract.deployFrom0xArtifactAsync( |                 await DummyERC20TokenContract.deployFrom0xArtifactAsync( | ||||||
|                     tokensArtifacts.DummyERC20Token, |                     artifacts.DummyERC20Token, | ||||||
|                     this._provider, |                     this._provider, | ||||||
|                     txDefaults, |                     txDefaults, | ||||||
|                     constants.DUMMY_TOKEN_NAME, |                     constants.DUMMY_TOKEN_NAME, | ||||||
| @@ -1,24 +1,22 @@ | |||||||
| import { constants, ERC721TokenIdsByOwner, txDefaults } from '@0x/contracts-test-utils'; | import { constants, ERC721TokenIdsByOwner, txDefaults } from '@0x/contracts-test-utils'; | ||||||
| import { artifacts as tokensArtifacts, DummyERC721TokenContract } from '@0x/contracts-tokens'; |  | ||||||
| import { generatePseudoRandomSalt } from '@0x/order-utils'; | import { generatePseudoRandomSalt } from '@0x/order-utils'; | ||||||
| import { BigNumber } from '@0x/utils'; | import { BigNumber } from '@0x/utils'; | ||||||
| import { Web3Wrapper } from '@0x/web3-wrapper'; | import { Web3Wrapper } from '@0x/web3-wrapper'; | ||||||
| import { Provider } from 'ethereum-types'; | import { ZeroExProvider } from 'ethereum-types'; | ||||||
| import * as _ from 'lodash'; | import * as _ from 'lodash'; | ||||||
| 
 | 
 | ||||||
| import { ERC721ProxyContract } from '../../generated-wrappers/erc721_proxy'; | import { artifacts, DummyERC721TokenContract, ERC721ProxyContract } from '../../src'; | ||||||
| import { artifacts } from '../../src/artifacts'; |  | ||||||
| 
 | 
 | ||||||
| export class ERC721Wrapper { | export class ERC721Wrapper { | ||||||
|     private readonly _tokenOwnerAddresses: string[]; |     private readonly _tokenOwnerAddresses: string[]; | ||||||
|     private readonly _contractOwnerAddress: string; |     private readonly _contractOwnerAddress: string; | ||||||
|     private readonly _web3Wrapper: Web3Wrapper; |     private readonly _web3Wrapper: Web3Wrapper; | ||||||
|     private readonly _provider: Provider; |     private readonly _provider: ZeroExProvider; | ||||||
|     private readonly _dummyTokenContracts: DummyERC721TokenContract[]; |     private readonly _dummyTokenContracts: DummyERC721TokenContract[]; | ||||||
|     private _proxyContract?: ERC721ProxyContract; |     private _proxyContract?: ERC721ProxyContract; | ||||||
|     private _proxyIdIfExists?: string; |     private _proxyIdIfExists?: string; | ||||||
|     private _initialTokenIdsByOwner: ERC721TokenIdsByOwner = {}; |     private _initialTokenIdsByOwner: ERC721TokenIdsByOwner = {}; | ||||||
|     constructor(provider: Provider, tokenOwnerAddresses: string[], contractOwnerAddress: string) { |     constructor(provider: ZeroExProvider, tokenOwnerAddresses: string[], contractOwnerAddress: string) { | ||||||
|         this._web3Wrapper = new Web3Wrapper(provider); |         this._web3Wrapper = new Web3Wrapper(provider); | ||||||
|         this._provider = provider; |         this._provider = provider; | ||||||
|         this._dummyTokenContracts = []; |         this._dummyTokenContracts = []; | ||||||
| @@ -30,7 +28,7 @@ export class ERC721Wrapper { | |||||||
|         for (const i of _.times(constants.NUM_DUMMY_ERC721_TO_DEPLOY)) { |         for (const i of _.times(constants.NUM_DUMMY_ERC721_TO_DEPLOY)) { | ||||||
|             this._dummyTokenContracts.push( |             this._dummyTokenContracts.push( | ||||||
|                 await DummyERC721TokenContract.deployFrom0xArtifactAsync( |                 await DummyERC721TokenContract.deployFrom0xArtifactAsync( | ||||||
|                     tokensArtifacts.DummyERC721Token, |                     artifacts.DummyERC721Token, | ||||||
|                     this._provider, |                     this._provider, | ||||||
|                     txDefaults, |                     txDefaults, | ||||||
|                     constants.DUMMY_TOKEN_NAME, |                     constants.DUMMY_TOKEN_NAME, | ||||||
| @@ -1,3 +1,2 @@ | |||||||
| export * from './exchange_wrapper'; |  | ||||||
| export * from './erc20_wrapper'; | export * from './erc20_wrapper'; | ||||||
| export * from './erc721_wrapper'; | export * from './erc721_wrapper'; | ||||||
							
								
								
									
										20
									
								
								contracts/asset-proxy/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								contracts/asset-proxy/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | |||||||
|  | { | ||||||
|  |     "extends": "../../tsconfig", | ||||||
|  |     "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, | ||||||
|  |     "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], | ||||||
|  |     "files": [ | ||||||
|  |         "generated-artifacts/DummyERC20Token.json", | ||||||
|  |         "generated-artifacts/DummyERC721Receiver.json", | ||||||
|  |         "generated-artifacts/DummyERC721Token.json", | ||||||
|  |         "generated-artifacts/DummyMultipleReturnERC20Token.json", | ||||||
|  |         "generated-artifacts/DummyNoReturnERC20Token.json", | ||||||
|  |         "generated-artifacts/ERC20Proxy.json", | ||||||
|  |         "generated-artifacts/ERC721Proxy.json", | ||||||
|  |         "generated-artifacts/IAssetData.json", | ||||||
|  |         "generated-artifacts/IAssetProxy.json", | ||||||
|  |         "generated-artifacts/IAuthorizable.json", | ||||||
|  |         "generated-artifacts/MixinAuthorizable.json", | ||||||
|  |         "generated-artifacts/MultiAssetProxy.json" | ||||||
|  |     ], | ||||||
|  |     "exclude": ["./deploy/solc/solc_bin"] | ||||||
|  | } | ||||||
							
								
								
									
										1
									
								
								contracts/erc20/.solhintignore
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								contracts/erc20/.solhintignore
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | contracts/src/ZRXToken.sol | ||||||
							
								
								
									
										92
									
								
								contracts/erc20/CHANGELOG.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								contracts/erc20/CHANGELOG.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | |||||||
|  | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551479279, | ||||||
|  |         "version": "1.0.9", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551299797, | ||||||
|  |         "version": "1.0.8", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551220833, | ||||||
|  |         "version": "1.0.7", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551130135, | ||||||
|  |         "version": "1.0.6", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549733923, | ||||||
|  |         "version": "1.0.5", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.4", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1549547375 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.3", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Fake publish to enable pinning" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1549504360 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549452781, | ||||||
|  |         "version": "1.0.2", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549373905, | ||||||
|  |         "version": "1.0.1", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Move all ERC20 contracts out of contracts-tokens to new package", | ||||||
|  |                 "pr": 1539 | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     } | ||||||
|  | ] | ||||||
							
								
								
									
										46
									
								
								contracts/erc20/CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								contracts/erc20/CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | |||||||
|  | <!-- | ||||||
|  | changelogUtils.file is auto-generated using the monorepo-scripts package. Don't edit directly. | ||||||
|  | Edit the package's CHANGELOG.json file only. | ||||||
|  | --> | ||||||
|  |  | ||||||
|  | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v1.0.9 - _March 1, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.8 - _February 27, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.7 - _February 26, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.6 - _February 25, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.5 - _February 9, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.4 - _February 7, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.3 - _February 7, 2019_ | ||||||
|  |  | ||||||
|  |     * Fake publish to enable pinning | ||||||
|  |  | ||||||
|  | ## v1.0.2 - _February 6, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.1 - _February 5, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.0 - _Invalid date_ | ||||||
|  |  | ||||||
|  |     * Move all ERC20 contracts out of contracts-tokens to new package (#1539) | ||||||
| @@ -8,6 +8,7 @@ | |||||||
|                 "networks": { |                 "networks": { | ||||||
|                     "1": "0xe41d2489571d322189246dafa5ebde1f4699f498", |                     "1": "0xe41d2489571d322189246dafa5ebde1f4699f498", | ||||||
|                     "3": "0xff67881f8d12f372d91baae9752eb3631ff0ed00", |                     "3": "0xff67881f8d12f372d91baae9752eb3631ff0ed00", | ||||||
|  |                     "4": "0x2727e688b8fd40b198cd5fe6e408e00494a06f07", | ||||||
|                     "42": "0x2002d3812f58e35f0ea1ffbf80a75a38c32175fa" |                     "42": "0x2002d3812f58e35f0ea1ffbf80a75a38c32175fa" | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| @@ -1,13 +1,14 @@ | |||||||
| ## Contract interfaces | ## ERC20 Tokens | ||||||
| 
 | 
 | ||||||
| Smart contract interfaces of the 0x protocol. | This package contains implementations of various [ERC20](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md) tokens, including WETH (Wrapped Ether) and ZRX. Addresses of the deployed contracts can be found in the 0x [wiki](https://0xproject.com/wiki#Deployed-Addresses) or the [DEPLOYS](./DEPLOYS.json) file within this package. | ||||||
| 
 | 
 | ||||||
| ## Usage | ## Installation | ||||||
| 
 | 
 | ||||||
| Contracts that make up and interact with version 2.0.0 of the protocol can be found in the [contracts](./contracts) directory. The contents of this directory are broken down into the following subdirectories: | **Install** | ||||||
| 
 | 
 | ||||||
| -   [protocol](./contracts/protocol) | ```bash | ||||||
|     -   This directory contains the contract interfaces that make up version 2.0.0. A full specification can be found [here](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md). | npm install @0x/contracts-erc20 --save | ||||||
|  | ``` | ||||||
| 
 | 
 | ||||||
| ## Bug bounty | ## Bug bounty | ||||||
| 
 | 
 | ||||||
| @@ -40,13 +41,13 @@ yarn install | |||||||
| To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory: | To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| PKG=@0x/contracts-interfaces yarn build | PKG=@0x/contracts-erc20 yarn build | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Or continuously rebuild on change: | Or continuously rebuild on change: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| PKG=@0x/contracts-interfaces yarn watch | PKG=@0x/contracts-erc20 yarn watch | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ### Clean | ### Clean | ||||||
							
								
								
									
										33
									
								
								contracts/erc20/compiler.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								contracts/erc20/compiler.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | { | ||||||
|  |     "artifactsDir": "./generated-artifacts", | ||||||
|  |     "contractsDir": "./contracts", | ||||||
|  |     "useDockerisedSolc": true, | ||||||
|  |     "isOfflineMode": false, | ||||||
|  |     "compilerSettings": { | ||||||
|  |         "optimizer": { "enabled": true, "runs": 1000000 }, | ||||||
|  |         "outputSelection": { | ||||||
|  |             "*": { | ||||||
|  |                 "*": [ | ||||||
|  |                     "abi", | ||||||
|  |                     "evm.bytecode.object", | ||||||
|  |                     "evm.bytecode.sourceMap", | ||||||
|  |                     "evm.deployedBytecode.object", | ||||||
|  |                     "evm.deployedBytecode.sourceMap" | ||||||
|  |                 ] | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     }, | ||||||
|  |     "contracts": [ | ||||||
|  |         "src/ERC20Token.sol", | ||||||
|  |         "src/MintableERC20Token.sol", | ||||||
|  |         "src/UnlimitedAllowanceERC20Token.sol", | ||||||
|  |         "src/WETH9.sol", | ||||||
|  |         "src/ZRXToken.sol", | ||||||
|  |         "src/interfaces/IERC20Token.sol", | ||||||
|  |         "src/interfaces/IEtherToken.sol", | ||||||
|  |         "test/DummyERC20Token.sol", | ||||||
|  |         "test/DummyMultipleReturnERC20Token.sol", | ||||||
|  |         "test/DummyNoReturnERC20Token.sol", | ||||||
|  |         "test/ReentrantERC20Token.sol" | ||||||
|  |     ] | ||||||
|  | } | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "./IERC20Token.sol"; | import "./interfaces/IERC20Token.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract ERC20Token is | contract ERC20Token is | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-utils/contracts/utils/SafeMath/SafeMath.sol"; | import "@0x/contracts-utils/contracts/src/SafeMath.sol"; | ||||||
| import "./UnlimitedAllowanceERC20Token.sol"; | import "./UnlimitedAllowanceERC20Token.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "../ERC20Token/ERC20Token.sol"; | import "./ERC20Token.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract UnlimitedAllowanceERC20Token is | contract UnlimitedAllowanceERC20Token is | ||||||
							
								
								
									
										150
									
								
								contracts/erc20/contracts/src/ZRXToken.sol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										150
									
								
								contracts/erc20/contracts/src/ZRXToken.sol
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,150 @@ | |||||||
|  | /* | ||||||
|  |  | ||||||
|  |   Copyright 2018 ZeroEx Intl. | ||||||
|  |  | ||||||
|  |   Licensed under the Apache License, Version 2.0 (the "License"); | ||||||
|  |   you may not use this file except in compliance with the License. | ||||||
|  |   You may obtain a copy of the License at | ||||||
|  |  | ||||||
|  |     http://www.apache.org/licenses/LICENSE-2.0 | ||||||
|  |  | ||||||
|  |   Unless required by applicable law or agreed to in writing, software | ||||||
|  |   distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |   See the License for the specific language governing permissions and | ||||||
|  |   limitations under the License. | ||||||
|  |  | ||||||
|  | */ | ||||||
|  |  | ||||||
|  | pragma solidity 0.4.11; | ||||||
|  |  | ||||||
|  |  | ||||||
|  | contract Token { | ||||||
|  |  | ||||||
|  |     /// @return total amount of tokens | ||||||
|  |     function totalSupply() constant returns (uint supply) {} | ||||||
|  |  | ||||||
|  |     /// @param _owner The address from which the balance will be retrieved | ||||||
|  |     /// @return The balance | ||||||
|  |     function balanceOf(address _owner) constant returns (uint balance) {} | ||||||
|  |  | ||||||
|  |     /// @notice send `_value` token to `_to` from `msg.sender` | ||||||
|  |     /// @param _to The address of the recipient | ||||||
|  |     /// @param _value The amount of token to be transferred | ||||||
|  |     /// @return Whether the transfer was successful or not | ||||||
|  |     function transfer(address _to, uint _value) returns (bool success) {} | ||||||
|  |  | ||||||
|  |     /// @notice send `_value` token to `_to` from `_from` on the condition it is approved by `_from` | ||||||
|  |     /// @param _from The address of the sender | ||||||
|  |     /// @param _to The address of the recipient | ||||||
|  |     /// @param _value The amount of token to be transferred | ||||||
|  |     /// @return Whether the transfer was successful or not | ||||||
|  |     function transferFrom(address _from, address _to, uint _value) returns (bool success) {} | ||||||
|  |  | ||||||
|  |     /// @notice `msg.sender` approves `_addr` to spend `_value` tokens | ||||||
|  |     /// @param _spender The address of the account able to transfer the tokens | ||||||
|  |     /// @param _value The amount of wei to be approved for transfer | ||||||
|  |     /// @return Whether the approval was successful or not | ||||||
|  |     function approve(address _spender, uint _value) returns (bool success) {} | ||||||
|  |  | ||||||
|  |     /// @param _owner The address of the account owning tokens | ||||||
|  |     /// @param _spender The address of the account able to transfer the tokens | ||||||
|  |     /// @return Amount of remaining tokens allowed to spent | ||||||
|  |     function allowance(address _owner, address _spender) constant returns (uint remaining) {} | ||||||
|  |  | ||||||
|  |     event Transfer(address indexed _from, address indexed _to, uint _value); | ||||||
|  |     event Approval(address indexed _owner, address indexed _spender, uint _value); | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | contract ERC20Token is Token { | ||||||
|  |  | ||||||
|  |     function transfer(address _to, uint _value) returns (bool) { | ||||||
|  |         //Default assumes totalSupply can't be over max (2^256 - 1). | ||||||
|  |         if (balances[msg.sender] >= _value && balances[_to] + _value >= balances[_to]) { | ||||||
|  |             balances[msg.sender] -= _value; | ||||||
|  |             balances[_to] += _value; | ||||||
|  |             Transfer(msg.sender, _to, _value); | ||||||
|  |             return true; | ||||||
|  |         } else { return false; } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function transferFrom(address _from, address _to, uint _value) returns (bool) { | ||||||
|  |         if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value >= balances[_to]) { | ||||||
|  |             balances[_to] += _value; | ||||||
|  |             balances[_from] -= _value; | ||||||
|  |             allowed[_from][msg.sender] -= _value; | ||||||
|  |             Transfer(_from, _to, _value); | ||||||
|  |             return true; | ||||||
|  |         } else { return false; } | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function balanceOf(address _owner) constant returns (uint) { | ||||||
|  |         return balances[_owner]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function approve(address _spender, uint _value) returns (bool) { | ||||||
|  |         allowed[msg.sender][_spender] = _value; | ||||||
|  |         Approval(msg.sender, _spender, _value); | ||||||
|  |         return true; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     function allowance(address _owner, address _spender) constant returns (uint) { | ||||||
|  |         return allowed[_owner][_spender]; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     mapping (address => uint) balances; | ||||||
|  |     mapping (address => mapping (address => uint)) allowed; | ||||||
|  |     uint public totalSupply; | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | contract UnlimitedAllowanceToken is ERC20Token { | ||||||
|  |  | ||||||
|  |     uint constant MAX_UINT = 2**256 - 1; | ||||||
|  |  | ||||||
|  |     /// @dev ERC20 transferFrom, modified such that an allowance of MAX_UINT represents an unlimited allowance. | ||||||
|  |     /// @param _from Address to transfer from. | ||||||
|  |     /// @param _to Address to transfer to. | ||||||
|  |     /// @param _value Amount to transfer. | ||||||
|  |     /// @return Success of transfer. | ||||||
|  |     function transferFrom(address _from, address _to, uint _value) | ||||||
|  |         public | ||||||
|  |         returns (bool) | ||||||
|  |     { | ||||||
|  |         uint allowance = allowed[_from][msg.sender]; | ||||||
|  |         if (balances[_from] >= _value | ||||||
|  |             && allowance >= _value | ||||||
|  |             && balances[_to] + _value >= balances[_to] | ||||||
|  |         ) { | ||||||
|  |             balances[_to] += _value; | ||||||
|  |             balances[_from] -= _value; | ||||||
|  |             if (allowance < MAX_UINT) { | ||||||
|  |                 allowed[_from][msg.sender] -= _value; | ||||||
|  |             } | ||||||
|  |             Transfer(_from, _to, _value); | ||||||
|  |             return true; | ||||||
|  |         } else { | ||||||
|  |             return false; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | contract ZRXToken is  | ||||||
|  |     UnlimitedAllowanceToken | ||||||
|  | { | ||||||
|  |  | ||||||
|  |     // solhint-disable const-name-snakecase | ||||||
|  |     uint8 constant public decimals = 18; | ||||||
|  |     uint256 public totalSupply = 10**27; // 1 billion tokens, 18 decimal places | ||||||
|  |     string constant public name = "0x Protocol Token"; | ||||||
|  |     string constant public symbol = "ZRX"; | ||||||
|  |     // solhint-enableconst-name-snakecase | ||||||
|  |  | ||||||
|  |     function ZRXToken() | ||||||
|  |         public | ||||||
|  |     { | ||||||
|  |         balances[msg.sender] = totalSupply; | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "../ERC20Token/IERC20Token.sol"; | import "./IERC20Token.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract IEtherToken is | contract IEtherToken is | ||||||
| @@ -18,8 +18,8 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity 0.4.24; | pragma solidity 0.4.24; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-utils/contracts/utils/Ownable/Ownable.sol"; | import "@0x/contracts-utils/contracts/src/Ownable.sol"; | ||||||
| import "../../tokens/ERC20Token/MintableERC20Token.sol"; | import "../src/MintableERC20Token.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract DummyERC20Token is  | contract DummyERC20Token is  | ||||||
| @@ -19,10 +19,10 @@ | |||||||
| pragma solidity 0.4.24; | pragma solidity 0.4.24; | ||||||
| pragma experimental ABIEncoderV2; | pragma experimental ABIEncoderV2; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol"; | import "@0x/contracts-utils/contracts/src/LibBytes.sol"; | ||||||
| import "../../tokens/ERC20Token/ERC20Token.sol"; | import "../src/ERC20Token.sol"; | ||||||
| import "@0x/contracts-interfaces/contracts/protocol/Exchange/IExchange.sol"; | import "@0x/contracts-exchange/contracts/src/interfaces/IExchange.sol"; | ||||||
| import "@0x/contracts-libs/contracts/libs/LibOrder.sol"; | import "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| // solhint-disable no-unused-vars | // solhint-disable no-unused-vars | ||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|     "name": "@0x/contracts-tokens", |     "name": "@0x/contracts-erc20", | ||||||
|     "version": "1.0.5", |     "version": "1.0.9", | ||||||
|     "engines": { |     "engines": { | ||||||
|         "node": ">=6.12" |         "node": ">=6.12" | ||||||
|     }, |     }, | ||||||
| @@ -29,10 +29,12 @@ | |||||||
|         "profiler:report:html": "istanbul report html && open coverage/index.html", |         "profiler:report:html": "istanbul report html && open coverage/index.html", | ||||||
|         "coverage:report:lcov": "istanbul report lcov", |         "coverage:report:lcov": "istanbul report lcov", | ||||||
|         "test:circleci": "yarn test", |         "test:circleci": "yarn test", | ||||||
|  |         "contracts:gen": "contracts-gen", | ||||||
|         "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" |         "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" | ||||||
|     }, |     }, | ||||||
|     "config": { |     "config": { | ||||||
|         "abis": "generated-artifacts/@(DummyERC20Token|DummyMultipleReturnERC20Token|DummyNoReturnERC20Token|DummyERC721Receiver|InvalidERC721Receiver|DummyERC721Token|ReentrantERC20Token|ERC20Token|IERC20Token|MintableERC20Token|UnlimitedAllowanceERC20Token|ERC721Token|IERC721Receiver|IERC721Token|MintableERC721Token|IEtherToken|WETH9|ERC20Token_v1|Token_v1|UnlimitedAllowanceToken_v1|ZRXToken).json" |         "abis": "./generated-artifacts/@(DummyERC20Token|DummyMultipleReturnERC20Token|DummyNoReturnERC20Token|ERC20Token|IERC20Token|IEtherToken|MintableERC20Token|ReentrantERC20Token|UnlimitedAllowanceERC20Token|WETH9|ZRXToken).json", | ||||||
|  |         "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." | ||||||
|     }, |     }, | ||||||
|     "repository": { |     "repository": { | ||||||
|         "type": "git", |         "type": "git", | ||||||
| @@ -44,46 +46,36 @@ | |||||||
|     }, |     }, | ||||||
|     "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md", |     "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md", | ||||||
|     "devDependencies": { |     "devDependencies": { | ||||||
|         "@0x/abi-gen": "^1.0.22", |         "@0x/abi-gen": "^2.0.6", | ||||||
|         "@0x/contracts-test-utils": "^2.0.0", |         "@0x/contracts-gen": "^1.0.5", | ||||||
|         "@0x/dev-utils": "^1.0.24", |         "@0x/contracts-test-utils": "^3.0.8", | ||||||
|         "@0x/sol-compiler": "^2.0.2", |         "@0x/dev-utils": "^2.1.3", | ||||||
|         "@0x/subproviders": "^2.1.11", |         "@0x/sol-compiler": "^3.1.3", | ||||||
|         "@0x/tslint-config": "^2.0.2", |         "@0x/tslint-config": "^3.0.0", | ||||||
|         "@types/bn.js": "^4.11.0", |  | ||||||
|         "@types/lodash": "4.14.104", |         "@types/lodash": "4.14.104", | ||||||
|         "@types/node": "*", |         "@types/node": "*", | ||||||
|         "@types/yargs": "^10.0.0", |  | ||||||
|         "chai": "^4.0.1", |         "chai": "^4.0.1", | ||||||
|         "chai-as-promised": "^7.1.0", |         "chai-as-promised": "^7.1.0", | ||||||
|         "chai-bignumber": "^2.0.1", |         "chai-bignumber": "^3.0.0", | ||||||
|         "dirty-chai": "^2.0.1", |         "dirty-chai": "^2.0.1", | ||||||
|         "ethereumjs-abi": "0.6.5", |  | ||||||
|         "make-promises-safe": "^1.1.0", |         "make-promises-safe": "^1.1.0", | ||||||
|         "mocha": "^4.1.0", |         "mocha": "^4.1.0", | ||||||
|         "npm-run-all": "^4.1.2", |         "npm-run-all": "^4.1.2", | ||||||
|         "shx": "^0.2.2", |         "shx": "^0.2.2", | ||||||
|         "solhint": "^1.4.1", |         "solhint": "^1.4.1", | ||||||
|         "tslint": "5.11.0", |         "tslint": "5.11.0", | ||||||
|         "typescript": "3.0.1", |         "typescript": "3.0.1" | ||||||
|         "yargs": "^10.0.3" |  | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|         "@0x/base-contract": "^3.0.13", |         "@0x/base-contract": "^5.0.2", | ||||||
|         "@0x/contracts-interfaces": "^1.0.5", |         "@0x/contracts-exchange-libs": "1.0.2", | ||||||
|         "@0x/contracts-libs": "^1.0.5", |         "@0x/contracts-utils": "2.0.1", | ||||||
|         "@0x/contracts-multisig": "^1.0.5", |         "@0x/types": "^2.1.1", | ||||||
|         "@0x/contracts-utils": "^1.0.5", |         "@0x/typescript-typings": "^4.1.0", | ||||||
|         "@0x/order-utils": "^3.1.2", |         "@0x/utils": "^4.2.2", | ||||||
|         "@0x/types": "^1.5.2", |         "@0x/web3-wrapper": "^6.0.2", | ||||||
|         "@0x/typescript-typings": "^3.0.8", |         "ethereum-types": "^2.1.0", | ||||||
|         "@0x/utils": "^3.0.1", |         "lodash": "^4.17.11" | ||||||
|         "@0x/web3-wrapper": "^3.2.4", |  | ||||||
|         "@types/js-combinatorics": "^0.5.29", |  | ||||||
|         "bn.js": "^4.11.8", |  | ||||||
|         "ethereum-types": "^1.1.6", |  | ||||||
|         "ethereumjs-util": "^5.1.1", |  | ||||||
|         "lodash": "^4.17.5" |  | ||||||
|     }, |     }, | ||||||
|     "publishConfig": { |     "publishConfig": { | ||||||
|         "access": "public" |         "access": "public" | ||||||
							
								
								
									
										31
									
								
								contracts/erc20/src/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								contracts/erc20/src/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | |||||||
|  | /* | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  * Warning: This file is auto-generated by contracts-gen. Don't edit manually. | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  */ | ||||||
|  | import { ContractArtifact } from 'ethereum-types'; | ||||||
|  |  | ||||||
|  | import * as DummyERC20Token from '../generated-artifacts/DummyERC20Token.json'; | ||||||
|  | import * as DummyMultipleReturnERC20Token from '../generated-artifacts/DummyMultipleReturnERC20Token.json'; | ||||||
|  | import * as DummyNoReturnERC20Token from '../generated-artifacts/DummyNoReturnERC20Token.json'; | ||||||
|  | import * as ERC20Token from '../generated-artifacts/ERC20Token.json'; | ||||||
|  | import * as IERC20Token from '../generated-artifacts/IERC20Token.json'; | ||||||
|  | import * as IEtherToken from '../generated-artifacts/IEtherToken.json'; | ||||||
|  | import * as MintableERC20Token from '../generated-artifacts/MintableERC20Token.json'; | ||||||
|  | import * as ReentrantERC20Token from '../generated-artifacts/ReentrantERC20Token.json'; | ||||||
|  | import * as UnlimitedAllowanceERC20Token from '../generated-artifacts/UnlimitedAllowanceERC20Token.json'; | ||||||
|  | import * as WETH9 from '../generated-artifacts/WETH9.json'; | ||||||
|  | import * as ZRXToken from '../generated-artifacts/ZRXToken.json'; | ||||||
|  | export const artifacts = { | ||||||
|  |     ERC20Token: ERC20Token as ContractArtifact, | ||||||
|  |     MintableERC20Token: MintableERC20Token as ContractArtifact, | ||||||
|  |     UnlimitedAllowanceERC20Token: UnlimitedAllowanceERC20Token as ContractArtifact, | ||||||
|  |     WETH9: WETH9 as ContractArtifact, | ||||||
|  |     ZRXToken: (ZRXToken as any) as ContractArtifact, | ||||||
|  |     IERC20Token: IERC20Token as ContractArtifact, | ||||||
|  |     IEtherToken: IEtherToken as ContractArtifact, | ||||||
|  |     DummyERC20Token: DummyERC20Token as ContractArtifact, | ||||||
|  |     DummyMultipleReturnERC20Token: DummyMultipleReturnERC20Token as ContractArtifact, | ||||||
|  |     DummyNoReturnERC20Token: DummyNoReturnERC20Token as ContractArtifact, | ||||||
|  |     ReentrantERC20Token: ReentrantERC20Token as ContractArtifact, | ||||||
|  | }; | ||||||
							
								
								
									
										16
									
								
								contracts/erc20/src/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								contracts/erc20/src/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | /* | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  * Warning: This file is auto-generated by contracts-gen. Don't edit manually. | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  */ | ||||||
|  | export * from '../generated-wrappers/dummy_erc20_token'; | ||||||
|  | export * from '../generated-wrappers/dummy_multiple_return_erc20_token'; | ||||||
|  | export * from '../generated-wrappers/dummy_no_return_erc20_token'; | ||||||
|  | export * from '../generated-wrappers/erc20_token'; | ||||||
|  | export * from '../generated-wrappers/i_erc20_token'; | ||||||
|  | export * from '../generated-wrappers/i_ether_token'; | ||||||
|  | export * from '../generated-wrappers/mintable_erc20_token'; | ||||||
|  | export * from '../generated-wrappers/reentrant_erc20_token'; | ||||||
|  | export * from '../generated-wrappers/unlimited_allowance_erc20_token'; | ||||||
|  | export * from '../generated-wrappers/weth9'; | ||||||
|  | export * from '../generated-wrappers/zrx_token'; | ||||||
| @@ -109,7 +109,7 @@ describe('UnlimitedAllowanceToken', () => { | |||||||
|             const amountToTransfer = ownerBalance; |             const amountToTransfer = ownerBalance; | ||||||
| 
 | 
 | ||||||
|             const spenderAllowance = await token.allowance.callAsync(owner, spender); |             const spenderAllowance = await token.allowance.callAsync(owner, spender); | ||||||
|             const isSpenderAllowanceInsufficient = spenderAllowance.cmp(amountToTransfer) < 0; |             const isSpenderAllowanceInsufficient = spenderAllowance.comparedTo(amountToTransfer) < 0; | ||||||
|             expect(isSpenderAllowanceInsufficient).to.be.true(); |             expect(isSpenderAllowanceInsufficient).to.be.true(); | ||||||
| 
 | 
 | ||||||
|             return expectContractCallFailedAsync( |             return expectContractCallFailedAsync( | ||||||
| @@ -117,7 +117,7 @@ describe('ZRXToken', () => { | |||||||
|             const amountToTransfer = ownerBalance; |             const amountToTransfer = ownerBalance; | ||||||
| 
 | 
 | ||||||
|             const spenderAllowance = await zrxToken.allowance.callAsync(owner, spender); |             const spenderAllowance = await zrxToken.allowance.callAsync(owner, spender); | ||||||
|             const isSpenderAllowanceInsufficient = spenderAllowance.cmp(amountToTransfer) < 0; |             const isSpenderAllowanceInsufficient = spenderAllowance.comparedTo(amountToTransfer) < 0; | ||||||
|             expect(isSpenderAllowanceInsufficient).to.be.true(); |             expect(isSpenderAllowanceInsufficient).to.be.true(); | ||||||
| 
 | 
 | ||||||
|             const didReturnTrue = await zrxToken.transferFrom.callAsync(owner, spender, amountToTransfer, { |             const didReturnTrue = await zrxToken.transferFrom.callAsync(owner, spender, amountToTransfer, { | ||||||
							
								
								
									
										19
									
								
								contracts/erc20/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								contracts/erc20/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,19 @@ | |||||||
|  | { | ||||||
|  |     "extends": "../../tsconfig", | ||||||
|  |     "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, | ||||||
|  |     "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], | ||||||
|  |     "files": [ | ||||||
|  |         "generated-artifacts/DummyERC20Token.json", | ||||||
|  |         "generated-artifacts/DummyMultipleReturnERC20Token.json", | ||||||
|  |         "generated-artifacts/DummyNoReturnERC20Token.json", | ||||||
|  |         "generated-artifacts/ERC20Token.json", | ||||||
|  |         "generated-artifacts/IERC20Token.json", | ||||||
|  |         "generated-artifacts/IEtherToken.json", | ||||||
|  |         "generated-artifacts/MintableERC20Token.json", | ||||||
|  |         "generated-artifacts/ReentrantERC20Token.json", | ||||||
|  |         "generated-artifacts/UnlimitedAllowanceERC20Token.json", | ||||||
|  |         "generated-artifacts/WETH9.json", | ||||||
|  |         "generated-artifacts/ZRXToken.json" | ||||||
|  |     ], | ||||||
|  |     "exclude": ["./deploy/solc/solc_bin"] | ||||||
|  | } | ||||||
							
								
								
									
										92
									
								
								contracts/erc721/CHANGELOG.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								contracts/erc721/CHANGELOG.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | |||||||
|  | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551479279, | ||||||
|  |         "version": "1.0.9", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551299797, | ||||||
|  |         "version": "1.0.8", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551220833, | ||||||
|  |         "version": "1.0.7", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551130135, | ||||||
|  |         "version": "1.0.6", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549733923, | ||||||
|  |         "version": "1.0.5", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.4", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1549547375 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.3", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Fake publish to enable pinning" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1549504360 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549452781, | ||||||
|  |         "version": "1.0.2", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549373905, | ||||||
|  |         "version": "1.0.1", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Move all ERC721 contracts out of contracts-tokens to new package", | ||||||
|  |                 "pr": 1539 | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     } | ||||||
|  | ] | ||||||
							
								
								
									
										46
									
								
								contracts/erc721/CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								contracts/erc721/CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | |||||||
|  | <!-- | ||||||
|  | changelogUtils.file is auto-generated using the monorepo-scripts package. Don't edit directly. | ||||||
|  | Edit the package's CHANGELOG.json file only. | ||||||
|  | --> | ||||||
|  |  | ||||||
|  | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v1.0.9 - _March 1, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.8 - _February 27, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.7 - _February 26, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.6 - _February 25, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.5 - _February 9, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.4 - _February 7, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.3 - _February 7, 2019_ | ||||||
|  |  | ||||||
|  |     * Fake publish to enable pinning | ||||||
|  |  | ||||||
|  | ## v1.0.2 - _February 6, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.1 - _February 5, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.0 - _Invalid date_ | ||||||
|  |  | ||||||
|  |     * Move all ERC721 contracts out of contracts-tokens to new package (#1539) | ||||||
							
								
								
									
										1
									
								
								contracts/erc721/DEPLOYS.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								contracts/erc721/DEPLOYS.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | [] | ||||||
| @@ -1,15 +1,18 @@ | |||||||
| ## Contracts libs | ## ERC721 Tokens | ||||||
| 
 | 
 | ||||||
| Smart contracts libs used in the 0x protocol. | This package contains implementations of various [ERC721](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md) tokens. Addresses of the deployed contracts can be found in the 0x [wiki](https://0xproject.com/wiki#Deployed-Addresses) or the [DEPLOYS](./DEPLOYS.json) file within this package. | ||||||
| 
 | 
 | ||||||
| ## Usage | ## Installation | ||||||
| 
 | 
 | ||||||
| Contracts can be found in the [contracts](./contracts) directory. The contents of this directory are broken down into the following subdirectories: | **Install** | ||||||
| 
 | 
 | ||||||
| -   [libs](./contracts/protocol) | ```bash | ||||||
|     -   This directory contains the libs. | npm install @0x/contracts-erc721 --save | ||||||
| -   [test](./contracts/test) | ``` | ||||||
|     -   This directory contains mocks and other contracts that are used solely for testing contracts within the other directories. | 
 | ||||||
|  | ## Bug bounty | ||||||
|  | 
 | ||||||
|  | A bug bounty for the 2.0.0 contracts is ongoing! Instructions can be found [here](https://0xproject.com/wiki#Bug-Bounty). | ||||||
| 
 | 
 | ||||||
| ## Contributing | ## Contributing | ||||||
| 
 | 
 | ||||||
| @@ -38,13 +41,13 @@ yarn install | |||||||
| To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory: | To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| PKG=@0x/contracts-libs yarn build | PKG=@0x/contracts-erc721 yarn build | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Or continuously rebuild on change: | Or continuously rebuild on change: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| PKG=@0x/contracts-libs yarn watch | PKG=@0x/contracts-erc721 yarn watch | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ### Clean | ### Clean | ||||||
| @@ -1,11 +1,10 @@ | |||||||
| { | { | ||||||
|     "artifactsDir": "./generated-artifacts", |     "artifactsDir": "./generated-artifacts", | ||||||
|     "contractsDir": "./contracts", |     "contractsDir": "./contracts", | ||||||
|  |     "useDockerisedSolc": true, | ||||||
|  |     "isOfflineMode": false, | ||||||
|     "compilerSettings": { |     "compilerSettings": { | ||||||
|         "optimizer": { |         "optimizer": { "enabled": true, "runs": 1000000 }, | ||||||
|             "enabled": true, |  | ||||||
|             "runs": 1000000 |  | ||||||
|         }, |  | ||||||
|         "outputSelection": { |         "outputSelection": { | ||||||
|             "*": { |             "*": { | ||||||
|                 "*": [ |                 "*": [ | ||||||
| @@ -19,17 +18,12 @@ | |||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|     "contracts": [ |     "contracts": [ | ||||||
|         "IAssetData", |         "src/ERC721Token.sol", | ||||||
|         "IAssetProxy", |         "src/MintableERC721Token.sol", | ||||||
|         "IAuthorizable", |         "src/interfaces/IERC721Receiver.sol", | ||||||
|         "IAssetProxyDispatcher", |         "src/interfaces/IERC721Token.sol", | ||||||
|         "IExchange", |         "test/DummyERC721Receiver.sol", | ||||||
|         "IExchangeCore", |         "test/DummyERC721Token.sol", | ||||||
|         "IMatchOrders", |         "test/InvalidERC721Receiver.sol" | ||||||
|         "ISignatureValidator", |  | ||||||
|         "ITransactions", |  | ||||||
|         "IValidator", |  | ||||||
|         "IWallet", |  | ||||||
|         "IWrapperFunctions" |  | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
| @@ -18,9 +18,9 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "./IERC721Token.sol"; | import "./interfaces/IERC721Token.sol"; | ||||||
| import "./IERC721Receiver.sol"; | import "./interfaces/IERC721Receiver.sol"; | ||||||
| import "@0x/contracts-utils/contracts/utils/SafeMath/SafeMath.sol"; | import "@0x/contracts-utils/contracts/src/SafeMath.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract ERC721Token is | contract ERC721Token is | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity 0.4.24; | pragma solidity 0.4.24; | ||||||
| 
 | 
 | ||||||
| import "../../tokens/ERC721Token/IERC721Receiver.sol"; | import "../src/interfaces/IERC721Receiver.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract DummyERC721Receiver is | contract DummyERC721Receiver is | ||||||
| @@ -18,8 +18,8 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity 0.4.24; | pragma solidity 0.4.24; | ||||||
| 
 | 
 | ||||||
| import "../../tokens/ERC721Token/MintableERC721Token.sol"; | import "../src/MintableERC721Token.sol"; | ||||||
| import "@0x/contracts-utils/contracts/utils/Ownable/Ownable.sol"; | import "@0x/contracts-utils/contracts/src/Ownable.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| // solhint-disable no-empty-blocks | // solhint-disable no-empty-blocks | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity 0.4.24; | pragma solidity 0.4.24; | ||||||
| 
 | 
 | ||||||
| import "../../tokens/ERC721Token/IERC721Receiver.sol"; | import "../src/interfaces/IERC721Receiver.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract InvalidERC721Receiver is | contract InvalidERC721Receiver is | ||||||
							
								
								
									
										82
									
								
								contracts/erc721/package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								contracts/erc721/package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,82 @@ | |||||||
|  | { | ||||||
|  |     "name": "@0x/contracts-erc721", | ||||||
|  |     "version": "1.0.9", | ||||||
|  |     "engines": { | ||||||
|  |         "node": ">=6.12" | ||||||
|  |     }, | ||||||
|  |     "description": "Token contracts used by 0x protocol", | ||||||
|  |     "main": "lib/src/index.js", | ||||||
|  |     "directories": { | ||||||
|  |         "test": "test" | ||||||
|  |     }, | ||||||
|  |     "scripts": { | ||||||
|  |         "build": "yarn pre_build && tsc -b", | ||||||
|  |         "build:ci": "yarn build", | ||||||
|  |         "pre_build": "run-s compile generate_contract_wrappers", | ||||||
|  |         "test": "yarn run_mocha", | ||||||
|  |         "rebuild_and_test": "run-s build test", | ||||||
|  |         "test:coverage": "SOLIDITY_COVERAGE=true run-s build run_mocha coverage:report:text coverage:report:lcov", | ||||||
|  |         "test:profiler": "SOLIDITY_PROFILER=true run-s build run_mocha profiler:report:html", | ||||||
|  |         "test:trace": "SOLIDITY_REVERT_TRACE=true run-s build run_mocha", | ||||||
|  |         "run_mocha": "mocha --require source-map-support/register --require make-promises-safe 'lib/test/**/*.js' --timeout 100000 --bail --exit", | ||||||
|  |         "compile": "sol-compiler", | ||||||
|  |         "watch": "sol-compiler -w", | ||||||
|  |         "clean": "shx rm -rf lib generated-artifacts generated-wrappers", | ||||||
|  |         "generate_contract_wrappers": "abi-gen --abis  ${npm_package_config_abis} --template ../../node_modules/@0x/abi-gen-templates/contract.handlebars --partials '../../node_modules/@0x/abi-gen-templates/partials/**/*.handlebars' --output generated-wrappers --backend ethers", | ||||||
|  |         "lint": "tslint --format stylish --project . --exclude ./generated-wrappers/**/* --exclude ./generated-artifacts/**/* --exclude **/lib/**/* && yarn lint-contracts", | ||||||
|  |         "coverage:report:text": "istanbul report text", | ||||||
|  |         "coverage:report:html": "istanbul report html && open coverage/index.html", | ||||||
|  |         "profiler:report:html": "istanbul report html && open coverage/index.html", | ||||||
|  |         "coverage:report:lcov": "istanbul report lcov", | ||||||
|  |         "test:circleci": "yarn test", | ||||||
|  |         "contracts:gen": "contracts-gen", | ||||||
|  |         "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" | ||||||
|  |     }, | ||||||
|  |     "config": { | ||||||
|  |         "abis": "./generated-artifacts/@(DummyERC721Receiver|DummyERC721Token|ERC721Token|IERC721Receiver|IERC721Token|InvalidERC721Receiver|MintableERC721Token).json", | ||||||
|  |         "abis:comment": "This list is auto-generated by contracts-gen. Don't edit manually." | ||||||
|  |     }, | ||||||
|  |     "repository": { | ||||||
|  |         "type": "git", | ||||||
|  |         "url": "https://github.com/0xProject/0x-monorepo.git" | ||||||
|  |     }, | ||||||
|  |     "license": "Apache-2.0", | ||||||
|  |     "bugs": { | ||||||
|  |         "url": "https://github.com/0xProject/0x-monorepo/issues" | ||||||
|  |     }, | ||||||
|  |     "homepage": "https://github.com/0xProject/0x-monorepo/contracts/tokens/README.md", | ||||||
|  |     "devDependencies": { | ||||||
|  |         "@0x/abi-gen": "^2.0.6", | ||||||
|  |         "@0x/contracts-gen": "^1.0.5", | ||||||
|  |         "@0x/contracts-test-utils": "^3.0.8", | ||||||
|  |         "@0x/dev-utils": "^2.1.3", | ||||||
|  |         "@0x/sol-compiler": "^3.1.3", | ||||||
|  |         "@0x/tslint-config": "^3.0.0", | ||||||
|  |         "@types/lodash": "4.14.104", | ||||||
|  |         "@types/node": "*", | ||||||
|  |         "chai": "^4.0.1", | ||||||
|  |         "chai-as-promised": "^7.1.0", | ||||||
|  |         "chai-bignumber": "^3.0.0", | ||||||
|  |         "dirty-chai": "^2.0.1", | ||||||
|  |         "make-promises-safe": "^1.1.0", | ||||||
|  |         "mocha": "^4.1.0", | ||||||
|  |         "npm-run-all": "^4.1.2", | ||||||
|  |         "shx": "^0.2.2", | ||||||
|  |         "solhint": "^1.4.1", | ||||||
|  |         "tslint": "5.11.0", | ||||||
|  |         "typescript": "3.0.1" | ||||||
|  |     }, | ||||||
|  |     "dependencies": { | ||||||
|  |         "@0x/base-contract": "^5.0.2", | ||||||
|  |         "@0x/contracts-utils": "2.0.1", | ||||||
|  |         "@0x/types": "^2.1.1", | ||||||
|  |         "@0x/typescript-typings": "^4.1.0", | ||||||
|  |         "@0x/utils": "^4.2.2", | ||||||
|  |         "@0x/web3-wrapper": "^6.0.2", | ||||||
|  |         "ethereum-types": "^2.1.0", | ||||||
|  |         "lodash": "^4.17.11" | ||||||
|  |     }, | ||||||
|  |     "publishConfig": { | ||||||
|  |         "access": "public" | ||||||
|  |     } | ||||||
|  | } | ||||||
							
								
								
									
										23
									
								
								contracts/erc721/src/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								contracts/erc721/src/artifacts.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | |||||||
|  | /* | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  * Warning: This file is auto-generated by contracts-gen. Don't edit manually. | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  */ | ||||||
|  | import { ContractArtifact } from 'ethereum-types'; | ||||||
|  |  | ||||||
|  | import * as DummyERC721Receiver from '../generated-artifacts/DummyERC721Receiver.json'; | ||||||
|  | import * as DummyERC721Token from '../generated-artifacts/DummyERC721Token.json'; | ||||||
|  | import * as ERC721Token from '../generated-artifacts/ERC721Token.json'; | ||||||
|  | import * as IERC721Receiver from '../generated-artifacts/IERC721Receiver.json'; | ||||||
|  | import * as IERC721Token from '../generated-artifacts/IERC721Token.json'; | ||||||
|  | import * as InvalidERC721Receiver from '../generated-artifacts/InvalidERC721Receiver.json'; | ||||||
|  | import * as MintableERC721Token from '../generated-artifacts/MintableERC721Token.json'; | ||||||
|  | export const artifacts = { | ||||||
|  |     ERC721Token: ERC721Token as ContractArtifact, | ||||||
|  |     MintableERC721Token: MintableERC721Token as ContractArtifact, | ||||||
|  |     IERC721Receiver: IERC721Receiver as ContractArtifact, | ||||||
|  |     IERC721Token: IERC721Token as ContractArtifact, | ||||||
|  |     DummyERC721Receiver: DummyERC721Receiver as ContractArtifact, | ||||||
|  |     DummyERC721Token: DummyERC721Token as ContractArtifact, | ||||||
|  |     InvalidERC721Receiver: InvalidERC721Receiver as ContractArtifact, | ||||||
|  | }; | ||||||
| @@ -1,2 +1,2 @@ | |||||||
| export * from './artifacts'; |  | ||||||
| export * from './wrappers'; | export * from './wrappers'; | ||||||
|  | export * from './artifacts'; | ||||||
							
								
								
									
										12
									
								
								contracts/erc721/src/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								contracts/erc721/src/wrappers.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | |||||||
|  | /* | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  * Warning: This file is auto-generated by contracts-gen. Don't edit manually. | ||||||
|  |  * ----------------------------------------------------------------------------- | ||||||
|  |  */ | ||||||
|  | export * from '../generated-wrappers/dummy_erc721_receiver'; | ||||||
|  | export * from '../generated-wrappers/dummy_erc721_token'; | ||||||
|  | export * from '../generated-wrappers/erc721_token'; | ||||||
|  | export * from '../generated-wrappers/i_erc721_receiver'; | ||||||
|  | export * from '../generated-wrappers/i_erc721_token'; | ||||||
|  | export * from '../generated-wrappers/invalid_erc721_receiver'; | ||||||
|  | export * from '../generated-wrappers/mintable_erc721_token'; | ||||||
							
								
								
									
										15
									
								
								contracts/erc721/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								contracts/erc721/tsconfig.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | |||||||
|  | { | ||||||
|  |     "extends": "../../tsconfig", | ||||||
|  |     "compilerOptions": { "outDir": "lib", "rootDir": ".", "resolveJsonModule": true }, | ||||||
|  |     "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], | ||||||
|  |     "files": [ | ||||||
|  |         "generated-artifacts/DummyERC721Receiver.json", | ||||||
|  |         "generated-artifacts/DummyERC721Token.json", | ||||||
|  |         "generated-artifacts/ERC721Token.json", | ||||||
|  |         "generated-artifacts/IERC721Receiver.json", | ||||||
|  |         "generated-artifacts/IERC721Token.json", | ||||||
|  |         "generated-artifacts/InvalidERC721Receiver.json", | ||||||
|  |         "generated-artifacts/MintableERC721Token.json" | ||||||
|  |     ], | ||||||
|  |     "exclude": ["./deploy/solc/solc_bin"] | ||||||
|  | } | ||||||
| @@ -1,81 +0,0 @@ | |||||||
| { |  | ||||||
|     "name": "@0x/contracts-examples", |  | ||||||
|     "version": "1.0.5", |  | ||||||
|     "engines": { |  | ||||||
|         "node": ">=6.12" |  | ||||||
|     }, |  | ||||||
|     "description": "Smart contract examples of 0x protocol", |  | ||||||
|     "main": "lib/src/index.js", |  | ||||||
|     "directories": { |  | ||||||
|         "test": "test" |  | ||||||
|     }, |  | ||||||
|     "scripts": { |  | ||||||
|         "build": "yarn pre_build && tsc -b", |  | ||||||
|         "build:ci": "yarn build", |  | ||||||
|         "pre_build": "run-s compile generate_contract_wrappers", |  | ||||||
|         "compile": "sol-compiler", |  | ||||||
|         "watch": "sol-compiler -w", |  | ||||||
|         "clean": "shx rm -rf lib generated-artifacts generated-wrappers", |  | ||||||
|         "generate_contract_wrappers": "abi-gen --abis  ${npm_package_config_abis} --template ../../node_modules/@0x/abi-gen-templates/contract.handlebars --partials '../../node_modules/@0x/abi-gen-templates/partials/**/*.handlebars' --output generated-wrappers --backend ethers", |  | ||||||
|         "lint": "tslint --format stylish --project . --exclude ./generated-wrappers/**/* --exclude ./generated-artifacts/**/* --exclude **/lib/**/* && yarn lint-contracts", |  | ||||||
|         "lint-contracts": "solhint -c ../.solhint.json contracts/**/**/**/**/*.sol" |  | ||||||
|     }, |  | ||||||
|     "config": { |  | ||||||
|         "abis": "generated-artifacts/@(ExchangeWrapper|Validator|Wallet|Whitelist).json" |  | ||||||
|     }, |  | ||||||
|     "repository": { |  | ||||||
|         "type": "git", |  | ||||||
|         "url": "https://github.com/0xProject/0x-monorepo.git" |  | ||||||
|     }, |  | ||||||
|     "license": "Apache-2.0", |  | ||||||
|     "bugs": { |  | ||||||
|         "url": "https://github.com/0xProject/0x-monorepo/issues" |  | ||||||
|     }, |  | ||||||
|     "homepage": "https://github.com/0xProject/0x-monorepo/contracts/examples/README.md", |  | ||||||
|     "devDependencies": { |  | ||||||
|         "@0x/abi-gen": "^1.0.22", |  | ||||||
|         "@0x/contracts-test-utils": "^2.0.0", |  | ||||||
|         "@0x/dev-utils": "^1.0.24", |  | ||||||
|         "@0x/sol-compiler": "^2.0.2", |  | ||||||
|         "@0x/subproviders": "^2.1.11", |  | ||||||
|         "@0x/tslint-config": "^2.0.2", |  | ||||||
|         "@types/bn.js": "^4.11.0", |  | ||||||
|         "@types/lodash": "4.14.104", |  | ||||||
|         "@types/node": "*", |  | ||||||
|         "@types/yargs": "^10.0.0", |  | ||||||
|         "chai": "^4.0.1", |  | ||||||
|         "chai-as-promised": "^7.1.0", |  | ||||||
|         "chai-bignumber": "^2.0.1", |  | ||||||
|         "dirty-chai": "^2.0.1", |  | ||||||
|         "ethereumjs-abi": "0.6.5", |  | ||||||
|         "make-promises-safe": "^1.1.0", |  | ||||||
|         "mocha": "^4.1.0", |  | ||||||
|         "npm-run-all": "^4.1.2", |  | ||||||
|         "shx": "^0.2.2", |  | ||||||
|         "solhint": "^1.4.1", |  | ||||||
|         "tslint": "5.11.0", |  | ||||||
|         "typescript": "3.0.1", |  | ||||||
|         "yargs": "^10.0.3" |  | ||||||
|     }, |  | ||||||
|     "dependencies": { |  | ||||||
|         "@0x/base-contract": "^3.0.13", |  | ||||||
|         "@0x/contracts-interfaces": "^1.0.5", |  | ||||||
|         "@0x/contracts-libs": "^1.0.5", |  | ||||||
|         "@0x/contracts-multisig": "^1.0.5", |  | ||||||
|         "@0x/contracts-tokens": "^1.0.5", |  | ||||||
|         "@0x/contracts-utils": "^1.0.5", |  | ||||||
|         "@0x/order-utils": "^3.1.2", |  | ||||||
|         "@0x/types": "^1.5.2", |  | ||||||
|         "@0x/typescript-typings": "^3.0.8", |  | ||||||
|         "@0x/utils": "^3.0.1", |  | ||||||
|         "@0x/web3-wrapper": "^3.2.4", |  | ||||||
|         "@types/js-combinatorics": "^0.5.29", |  | ||||||
|         "bn.js": "^4.11.8", |  | ||||||
|         "ethereum-types": "^1.1.6", |  | ||||||
|         "ethereumjs-util": "^5.1.1", |  | ||||||
|         "lodash": "^4.17.5" |  | ||||||
|     }, |  | ||||||
|     "publishConfig": { |  | ||||||
|         "access": "public" |  | ||||||
|     } |  | ||||||
| } |  | ||||||
| @@ -1,13 +0,0 @@ | |||||||
| import { ContractArtifact } from 'ethereum-types'; |  | ||||||
|  |  | ||||||
| import * as ExchangeWrapper from '../../generated-artifacts/ExchangeWrapper.json'; |  | ||||||
| import * as Validator from '../../generated-artifacts/Validator.json'; |  | ||||||
| import * as Wallet from '../../generated-artifacts/Wallet.json'; |  | ||||||
| import * as Whitelist from '../../generated-artifacts/Whitelist.json'; |  | ||||||
|  |  | ||||||
| export const artifacts = { |  | ||||||
|     ExchangeWrapper: ExchangeWrapper as ContractArtifact, |  | ||||||
|     Validator: Validator as ContractArtifact, |  | ||||||
|     Wallet: Wallet as ContractArtifact, |  | ||||||
|     Whitelist: Whitelist as ContractArtifact, |  | ||||||
| }; |  | ||||||
| @@ -1,4 +0,0 @@ | |||||||
| export * from '../../generated-wrappers/exchange_wrapper'; |  | ||||||
| export * from '../../generated-wrappers/validator'; |  | ||||||
| export * from '../../generated-wrappers/wallet'; |  | ||||||
| export * from '../../generated-wrappers/whitelist'; |  | ||||||
| @@ -1,16 +0,0 @@ | |||||||
| { |  | ||||||
|     "extends": "../../tsconfig", |  | ||||||
|     "compilerOptions": { |  | ||||||
|         "outDir": "lib", |  | ||||||
|         "rootDir": ".", |  | ||||||
|         "resolveJsonModule": true |  | ||||||
|     }, |  | ||||||
|     "include": ["./src/**/*", "./test/**/*", "./generated-wrappers/**/*"], |  | ||||||
|     "files": [ |  | ||||||
|         "./generated-artifacts/ExchangeWrapper.json", |  | ||||||
|         "./generated-artifacts/Validator.json", |  | ||||||
|         "./generated-artifacts/Wallet.json", |  | ||||||
|         "./generated-artifacts/Whitelist.json" |  | ||||||
|     ], |  | ||||||
|     "exclude": ["./deploy/solc/solc_bin"] |  | ||||||
| } |  | ||||||
							
								
								
									
										92
									
								
								contracts/exchange-forwarder/CHANGELOG.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										92
									
								
								contracts/exchange-forwarder/CHANGELOG.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,92 @@ | |||||||
|  | [ | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551479279, | ||||||
|  |         "version": "1.0.9", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551299797, | ||||||
|  |         "version": "1.0.8", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551220833, | ||||||
|  |         "version": "1.0.7", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1551130135, | ||||||
|  |         "version": "1.0.6", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549733923, | ||||||
|  |         "version": "1.0.5", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.4", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1549547375 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.3", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Fake publish to enable pinning" | ||||||
|  |             } | ||||||
|  |         ], | ||||||
|  |         "timestamp": 1549504360 | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549452781, | ||||||
|  |         "version": "1.0.2", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "timestamp": 1549373905, | ||||||
|  |         "version": "1.0.1", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Dependencies updated" | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "version": "1.0.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Move Forwarder contract out of contracts-extensions into new package", | ||||||
|  |                 "pr": 1539 | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     } | ||||||
|  | ] | ||||||
							
								
								
									
										46
									
								
								contracts/exchange-forwarder/CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								contracts/exchange-forwarder/CHANGELOG.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,46 @@ | |||||||
|  | <!-- | ||||||
|  | changelogUtils.file is auto-generated using the monorepo-scripts package. Don't edit directly. | ||||||
|  | Edit the package's CHANGELOG.json file only. | ||||||
|  | --> | ||||||
|  |  | ||||||
|  | CHANGELOG | ||||||
|  |  | ||||||
|  | ## v1.0.9 - _March 1, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.8 - _February 27, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.7 - _February 26, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.6 - _February 25, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.5 - _February 9, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.4 - _February 7, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.3 - _February 7, 2019_ | ||||||
|  |  | ||||||
|  |     * Fake publish to enable pinning | ||||||
|  |  | ||||||
|  | ## v1.0.2 - _February 6, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.1 - _February 5, 2019_ | ||||||
|  |  | ||||||
|  |     * Dependencies updated | ||||||
|  |  | ||||||
|  | ## v1.0.0 - _Invalid date_ | ||||||
|  |  | ||||||
|  |     * Move Forwarder contract out of contracts-extensions into new package (#1539) | ||||||
							
								
								
									
										32
									
								
								contracts/exchange-forwarder/DEPLOYS.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								contracts/exchange-forwarder/DEPLOYS.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | |||||||
|  | [ | ||||||
|  |     { | ||||||
|  |         "name": "Forwarder", | ||||||
|  |         "version": "1.1.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "Round up when calculating remaining amounts in marketBuy functions", | ||||||
|  |                 "pr": 1162, | ||||||
|  |                 "networks": { | ||||||
|  |                     "1": "0x5468a1dc173652ee28d249c271fa9933144746b1", | ||||||
|  |                     "3": "0x2240dab907db71e64d3e0dba4800c83b5c502d4e", | ||||||
|  |                     "4": "0xd2dbf3250a764eaaa94fa0c84ed87c0edc8ed04e", | ||||||
|  |                     "42": "0x17992e4ffb22730138e4b62aaa6367fa9d3699a6" | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     }, | ||||||
|  |     { | ||||||
|  |         "name": "Forwarder", | ||||||
|  |         "version": "1.0.0", | ||||||
|  |         "changes": [ | ||||||
|  |             { | ||||||
|  |                 "note": "protocol v2 deploy", | ||||||
|  |                 "networks": { | ||||||
|  |                     "1": "0x7afc2d5107af94c462a194d2c21b5bdd238709d6", | ||||||
|  |                     "3": "0x3983e204b12b3c02fb0638caf2cd406a62e0ead3", | ||||||
|  |                     "42": "0xd85e2fa7e7e252b27b01bf0d65c946959d2f45b8" | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         ] | ||||||
|  |     } | ||||||
|  | ] | ||||||
| @@ -1,15 +1,14 @@ | |||||||
| ## Token contracts | ## Exchange Forwarder | ||||||
| 
 | 
 | ||||||
| Token smart contracts that are used in the 0x protocol. Addresses of the deployed contracts can be found in the 0x [wiki](https://0xproject.com/wiki#Deployed-Addresses) or the [CHANGELOG](./CHANGELOG.json) of this package. | This package contains the implementation of the [`Forwarder`](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/forwarder-specification.md) contract. This contract is intended to improve the UX of interacting with the 0x [`Exchange`](https://github.com/0xProject/0x-protocol-specification/blob/master/v2/v2-specification.md#exchange) contract by abstracting user approvals, converting ETH to WETH, and paying fees. Addresses of the deployed contracts can be found in the 0x [wiki](https://0xproject.com/wiki#Deployed-Addresses) or the [DEPLOYS](./DEPLOYS.json) file within this package. | ||||||
| 
 | 
 | ||||||
| ## Usage | ## Installation | ||||||
| 
 | 
 | ||||||
| Token contracts that make up and interact with version 2.0.0 of the protocol can be found in the [contracts](./contracts) directory. The contents of this directory are broken down into the following subdirectories: | **Install** | ||||||
| 
 | 
 | ||||||
| -   [tokens](./contracts/tokens) | ```bash | ||||||
|     -   This directory contains implementations of different tokens and token standards, including [wETH](https://weth.io/), ZRX, [ERC20](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md), and [ERC721](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md). | npm install @0x/contracts-exchange-forwarder --save | ||||||
| -   [test](./contracts/test) | ``` | ||||||
|     -   This directory contains mocks and other contracts that are used solely for testing contracts within the other directories. |  | ||||||
| 
 | 
 | ||||||
| ## Bug bounty | ## Bug bounty | ||||||
| 
 | 
 | ||||||
| @@ -42,13 +41,13 @@ yarn install | |||||||
| To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory: | To build this package and all other monorepo packages that it depends on, run the following from the monorepo root directory: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| PKG=@0x/contracts-tokens yarn build | PKG=@0x/contracts-exchange-forwarder yarn build | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Or continuously rebuild on change: | Or continuously rebuild on change: | ||||||
| 
 | 
 | ||||||
| ```bash | ```bash | ||||||
| PKG=@0x/contracts-tokens yarn watch | PKG=@0x/contracts-exchange-forwarder yarn watch | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ### Clean | ### Clean | ||||||
| @@ -1,11 +1,10 @@ | |||||||
| { | { | ||||||
|     "artifactsDir": "./generated-artifacts", |     "artifactsDir": "./generated-artifacts", | ||||||
|     "contractsDir": "./contracts", |     "contractsDir": "./contracts", | ||||||
|  |     "useDockerisedSolc": true, | ||||||
|  |     "isOfflineMode": false, | ||||||
|     "compilerSettings": { |     "compilerSettings": { | ||||||
|         "optimizer": { |         "optimizer": { "enabled": true, "runs": 1000000 }, | ||||||
|             "enabled": true, |  | ||||||
|             "runs": 1000000 |  | ||||||
|         }, |  | ||||||
|         "outputSelection": { |         "outputSelection": { | ||||||
|             "*": { |             "*": { | ||||||
|                 "*": [ |                 "*": [ | ||||||
| @@ -19,16 +18,10 @@ | |||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|     "contracts": [ |     "contracts": [ | ||||||
|         "AssetProxyOwner", |         "@0x/contracts-erc20/contracts/src/WETH9.sol", | ||||||
|         "ERC20Proxy", |         "@0x/contracts-erc20/contracts/test/DummyERC20Token.sol", | ||||||
|         "ERC721Proxy", |         "@0x/contracts-erc721/contracts/test/DummyERC721Token.sol", | ||||||
|         "Exchange", |         "@0x/contracts-exchange/contracts/src/Exchange.sol", | ||||||
|         "MixinAuthorizable", |         "src/Forwarder.sol" | ||||||
|         "MultiAssetProxy", |  | ||||||
|         "TestAssetProxyOwner", |  | ||||||
|         "TestAssetProxyDispatcher", |  | ||||||
|         "TestExchangeInternals", |  | ||||||
|         "TestSignatureValidator", |  | ||||||
|         "TestStaticCallReceiver" |  | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
| @@ -18,10 +18,10 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol"; | import "@0x/contracts-utils/contracts/src/LibBytes.sol"; | ||||||
| import "@0x/contracts-utils/contracts/utils/Ownable/Ownable.sol"; | import "@0x/contracts-utils/contracts/src/Ownable.sol"; | ||||||
| import "@0x/contracts-tokens/contracts/tokens/ERC20Token/IERC20Token.sol"; | import "@0x/contracts-erc20/contracts/src/interfaces/IERC20Token.sol"; | ||||||
| import "@0x/contracts-tokens/contracts/tokens/ERC721Token/IERC721Token.sol"; | import "@0x/contracts-erc721/contracts/src/interfaces/IERC721Token.sol"; | ||||||
| import "./libs/LibConstants.sol"; | import "./libs/LibConstants.sol"; | ||||||
| import "./mixins/MAssets.sol"; | import "./mixins/MAssets.sol"; | ||||||
| 
 | 
 | ||||||
| @@ -21,10 +21,10 @@ pragma experimental ABIEncoderV2; | |||||||
| 
 | 
 | ||||||
| import "./libs/LibConstants.sol"; | import "./libs/LibConstants.sol"; | ||||||
| import "./mixins/MExchangeWrapper.sol"; | import "./mixins/MExchangeWrapper.sol"; | ||||||
| import "@0x/contracts-libs/contracts/libs/LibAbiEncoder.sol"; | import "@0x/contracts-exchange-libs/contracts/src/LibAbiEncoder.sol"; | ||||||
| import "@0x/contracts-libs/contracts/libs/LibOrder.sol"; | import "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol"; | ||||||
| import "@0x/contracts-libs/contracts/libs/LibFillResults.sol"; | import "@0x/contracts-exchange-libs/contracts/src/LibFillResults.sol"; | ||||||
| import "@0x/contracts-libs/contracts/libs/LibMath.sol"; | import "@0x/contracts-exchange-libs/contracts/src/LibMath.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract MixinExchangeWrapper is | contract MixinExchangeWrapper is | ||||||
| @@ -24,10 +24,10 @@ import "./mixins/MWeth.sol"; | |||||||
| import "./mixins/MAssets.sol"; | import "./mixins/MAssets.sol"; | ||||||
| import "./mixins/MExchangeWrapper.sol"; | import "./mixins/MExchangeWrapper.sol"; | ||||||
| import "./interfaces/IForwarderCore.sol"; | import "./interfaces/IForwarderCore.sol"; | ||||||
| import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol"; | import "@0x/contracts-utils/contracts/src/LibBytes.sol"; | ||||||
| import "@0x/contracts-libs/contracts/libs/LibOrder.sol"; | import "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol"; | ||||||
| import "@0x/contracts-libs/contracts/libs/LibFillResults.sol"; | import "@0x/contracts-exchange-libs/contracts/src/LibFillResults.sol"; | ||||||
| import "@0x/contracts-libs/contracts/libs/LibMath.sol"; | import "@0x/contracts-exchange-libs/contracts/src/LibMath.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract MixinForwarderCore is | contract MixinForwarderCore is | ||||||
| @@ -18,7 +18,7 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-libs/contracts/libs/LibMath.sol"; | import "@0x/contracts-exchange-libs/contracts/src/LibMath.sol"; | ||||||
| import "./libs/LibConstants.sol"; | import "./libs/LibConstants.sol"; | ||||||
| import "./mixins/MWeth.sol"; | import "./mixins/MWeth.sol"; | ||||||
| 
 | 
 | ||||||
| @@ -19,8 +19,8 @@ | |||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| pragma experimental ABIEncoderV2; | pragma experimental ABIEncoderV2; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-libs/contracts/libs/LibOrder.sol"; | import "@0x/contracts-exchange-libs/contracts/src/LibOrder.sol"; | ||||||
| import "@0x/contracts-libs/contracts/libs/LibFillResults.sol"; | import "@0x/contracts-exchange-libs/contracts/src/LibFillResults.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract IForwarderCore { | contract IForwarderCore { | ||||||
| @@ -18,10 +18,10 @@ | |||||||
| 
 | 
 | ||||||
| pragma solidity ^0.4.24; | pragma solidity ^0.4.24; | ||||||
| 
 | 
 | ||||||
| import "@0x/contracts-utils/contracts/utils/LibBytes/LibBytes.sol"; | import "@0x/contracts-utils/contracts/src/LibBytes.sol"; | ||||||
| import "@0x/contracts-interfaces/contracts/protocol/Exchange/IExchange.sol"; | import "@0x/contracts-exchange/contracts/src/interfaces/IExchange.sol"; | ||||||
| import "@0x/contracts-tokens/contracts/tokens/EtherToken/IEtherToken.sol"; | import "@0x/contracts-erc20/contracts/src/interfaces/IEtherToken.sol"; | ||||||
| import "@0x/contracts-tokens/contracts/tokens/ERC20Token/IERC20Token.sol"; | import "@0x/contracts-erc20/contracts/src/interfaces/IERC20Token.sol"; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| contract LibConstants { | contract LibConstants { | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user