@@ -155,7 +155,35 @@ contract('KyberHintHandler', function(accounts) {
155155 Helper . assertEqual ( hint , expected ) ;
156156 } ) ;
157157
158- it ( 'should revert the T2E BEST-OF-ALL HINT if reserveIds or splits is NOT EMPTY' , async ( ) => {
158+ it ( 'should revert the T2E BEST-OF-ALL HINT if reserveIds is NOT EMPTY' , async ( ) => {
159+ t2eOpcode = BEST_OF_ALL ;
160+
161+ await expectRevert (
162+ hintHandler . buildTokenToEthHint (
163+ t2eToken ,
164+ t2eOpcode ,
165+ t2eReserves ,
166+ [ ] ,
167+ ) ,
168+ 'reserveIds and splits must be empty'
169+ ) ;
170+ } ) ;
171+
172+ it ( 'should revert the T2E BEST-OF-ALL HINT if splits is NOT EMPTY' , async ( ) => {
173+ t2eOpcode = BEST_OF_ALL ;
174+
175+ await expectRevert (
176+ hintHandler . buildTokenToEthHint (
177+ t2eToken ,
178+ t2eOpcode ,
179+ [ ] ,
180+ t2eSplits ,
181+ ) ,
182+ 'reserveIds and splits must be empty'
183+ ) ;
184+ } ) ;
185+
186+ it ( 'should revert the T2E BEST-OF-ALL HINT if reserveIds and splits are NOT EMPTY' , async ( ) => {
159187 t2eOpcode = BEST_OF_ALL ;
160188
161189 await expectRevert (
@@ -315,7 +343,35 @@ contract('KyberHintHandler', function(accounts) {
315343 Helper . assertEqual ( hint , expected ) ;
316344 } ) ;
317345
318- it ( 'should revert the E2T BEST-OF-ALL HINT if reserveIds or splits is NOT EMPTY' , async ( ) => {
346+ it ( 'should revert the E2T BEST-OF-ALL HINT if reserveIds is NOT EMPTY' , async ( ) => {
347+ e2tOpcode = BEST_OF_ALL ;
348+
349+ await expectRevert (
350+ hintHandler . buildEthToTokenHint (
351+ e2tToken ,
352+ e2tOpcode ,
353+ e2tReserves ,
354+ [ ] ,
355+ ) ,
356+ 'reserveIds and splits must be empty'
357+ ) ;
358+ } ) ;
359+
360+ it ( 'should revert the E2T BEST-OF-ALL HINT if splits is NOT EMPTY' , async ( ) => {
361+ e2tOpcode = BEST_OF_ALL ;
362+
363+ await expectRevert (
364+ hintHandler . buildEthToTokenHint (
365+ e2tToken ,
366+ e2tOpcode ,
367+ [ ] ,
368+ e2tSplits ,
369+ ) ,
370+ 'reserveIds and splits must be empty'
371+ ) ;
372+ } ) ;
373+
374+ it ( 'should revert the E2T BEST-OF-ALL HINT if reserveIds and splits are NOT EMPTY' , async ( ) => {
319375 e2tOpcode = BEST_OF_ALL ;
320376
321377 await expectRevert (
@@ -779,7 +835,47 @@ contract('KyberHintHandler', function(accounts) {
779835 Helper . assertEqual ( hint , expected ) ;
780836 } ) ;
781837
782- it ( `should revert the T2T hint for T2E BEST-OF-ALL HINT, E2T ${ e2tTradeType } if reserveIds or splits is NOT EMPTY` , async ( ) => {
838+ it ( `should revert the T2T hint for T2E BEST-OF-ALL HINT, E2T ${ e2tTradeType } if T2E reserveIds is NOT EMPTY` , async ( ) => {
839+ t2eOpcode = BEST_OF_ALL ;
840+ e2tOpcode = TRADE_TYPES [ e2tTradeType ] ;
841+ e2tSplits = ( e2tTradeType == 'SPLIT' ) ? BPS_SPLIT : [ ] ;
842+
843+ await expectRevert (
844+ hintHandler . buildTokenToTokenHint (
845+ t2eToken ,
846+ t2eOpcode ,
847+ t2eReserves ,
848+ [ ] ,
849+ e2tToken ,
850+ e2tOpcode ,
851+ e2tReserves ,
852+ e2tSplits ,
853+ ) ,
854+ 'reserveIds and splits must be empty'
855+ ) ;
856+ } ) ;
857+
858+ it ( `should revert the T2T hint for T2E BEST-OF-ALL HINT, E2T ${ e2tTradeType } if T2E splits is NOT EMPTY` , async ( ) => {
859+ t2eOpcode = BEST_OF_ALL ;
860+ e2tOpcode = TRADE_TYPES [ e2tTradeType ] ;
861+ e2tSplits = ( e2tTradeType == 'SPLIT' ) ? BPS_SPLIT : [ ] ;
862+
863+ await expectRevert (
864+ hintHandler . buildTokenToTokenHint (
865+ t2eToken ,
866+ t2eOpcode ,
867+ [ ] ,
868+ t2eSplits ,
869+ e2tToken ,
870+ e2tOpcode ,
871+ e2tReserves ,
872+ e2tSplits ,
873+ ) ,
874+ 'reserveIds and splits must be empty'
875+ ) ;
876+ } ) ;
877+
878+ it ( `should revert the T2T hint for T2E BEST-OF-ALL HINT, E2T ${ e2tTradeType } if T2E reserveIds and splits are NOT EMPTY` , async ( ) => {
783879 t2eOpcode = BEST_OF_ALL ;
784880 e2tOpcode = TRADE_TYPES [ e2tTradeType ] ;
785881 e2tSplits = ( e2tTradeType == 'SPLIT' ) ? BPS_SPLIT : [ ] ;
@@ -830,7 +926,47 @@ contract('KyberHintHandler', function(accounts) {
830926 Helper . assertEqual ( hint , expected ) ;
831927 } ) ;
832928
833- it ( `should revert the T2T hint for T2E ${ t2eTradeType } , E2T BEST-OF-ALL HINT if reserveIds or splits is NOT EMPTY` , async ( ) => {
929+ it ( `should revert the T2T hint for T2E ${ t2eTradeType } , E2T BEST-OF-ALL HINT if E2T reserveIds is NOT EMPTY` , async ( ) => {
930+ t2eOpcode = TRADE_TYPES [ t2eTradeType ] ;
931+ t2eSplits = ( t2eTradeType == 'SPLIT' ) ? BPS_SPLIT : [ ] ;
932+ e2tOpcode = BEST_OF_ALL ;
933+
934+ await expectRevert (
935+ hintHandler . buildTokenToTokenHint (
936+ t2eToken ,
937+ t2eOpcode ,
938+ t2eReserves ,
939+ t2eSplits ,
940+ e2tToken ,
941+ e2tOpcode ,
942+ e2tReserves ,
943+ [ ] ,
944+ ) ,
945+ 'reserveIds and splits must be empty'
946+ ) ;
947+ } ) ;
948+
949+ it ( `should revert the T2T hint for T2E ${ t2eTradeType } , E2T BEST-OF-ALL HINT if E2T splits is NOT EMPTY` , async ( ) => {
950+ t2eOpcode = TRADE_TYPES [ t2eTradeType ] ;
951+ t2eSplits = ( t2eTradeType == 'SPLIT' ) ? BPS_SPLIT : [ ] ;
952+ e2tOpcode = BEST_OF_ALL ;
953+
954+ await expectRevert (
955+ hintHandler . buildTokenToTokenHint (
956+ t2eToken ,
957+ t2eOpcode ,
958+ t2eReserves ,
959+ t2eSplits ,
960+ e2tToken ,
961+ e2tOpcode ,
962+ [ ] ,
963+ e2tSplits ,
964+ ) ,
965+ 'reserveIds and splits must be empty'
966+ ) ;
967+ } ) ;
968+
969+ it ( `should revert the T2T hint for T2E ${ t2eTradeType } , E2T BEST-OF-ALL HINT if E2T reserveIds and splits are NOT EMPTY` , async ( ) => {
834970 t2eOpcode = TRADE_TYPES [ t2eTradeType ] ;
835971 t2eSplits = ( t2eTradeType == 'SPLIT' ) ? BPS_SPLIT : [ ] ;
836972 e2tOpcode = BEST_OF_ALL ;
@@ -1285,7 +1421,31 @@ contract('KyberHintHandler', function(accounts) {
12851421 t2eMissingReserves = T2E_MISSING ;
12861422 } ) ;
12871423
1288- it ( 'should revert the T2E BEST-OF-ALL HINT due to reserveIds or splits not empty' , async ( ) => {
1424+ it ( 'should revert the T2E BEST-OF-ALL HINT due to reserveIds not empty' , async ( ) => {
1425+ t2eHintType = BEST_OF_ALL ;
1426+ t2eSplits = BPS_SPLIT ;
1427+
1428+ hint = Helper . buildHint ( 'BEST_OF_ALL' ) ( t2eHintType , t2eReserves , [ ] ) ;
1429+
1430+ await expectRevert (
1431+ hintHandler . parseTokenToEthHint ( t2eToken , hint ) ,
1432+ 'reserveIds and splits must be empty'
1433+ ) ;
1434+ } ) ;
1435+
1436+ it ( 'should revert the T2E BEST-OF-ALL HINT due to splits not empty' , async ( ) => {
1437+ t2eHintType = BEST_OF_ALL ;
1438+ t2eSplits = BPS_SPLIT ;
1439+
1440+ hint = Helper . buildHint ( 'BEST_OF_ALL' ) ( t2eHintType , [ ] , t2eSplits ) ;
1441+
1442+ await expectRevert (
1443+ hintHandler . parseTokenToEthHint ( t2eToken , hint ) ,
1444+ 'reserveIds and splits must be empty'
1445+ ) ;
1446+ } ) ;
1447+
1448+ it ( 'should revert the T2E BEST-OF-ALL HINT due to reserveIds and splits not empty' , async ( ) => {
12891449 t2eHintType = BEST_OF_ALL ;
12901450 t2eSplits = BPS_SPLIT ;
12911451
@@ -1456,7 +1616,31 @@ contract('KyberHintHandler', function(accounts) {
14561616 e2tMissingReserves = E2T_MISSING ;
14571617 } ) ;
14581618
1459- it ( 'should revert the E2T BEST-OF-ALL HINT due to reserveIds or splits not empty' , async ( ) => {
1619+ it ( 'should revert the E2T BEST-OF-ALL HINT due to reserveIds not empty' , async ( ) => {
1620+ e2tHintType = BEST_OF_ALL ;
1621+ e2tSplits = BPS_SPLIT ;
1622+
1623+ hint = Helper . buildHint ( 'BEST_OF_ALL' ) ( e2tHintType , e2tReserves , [ ] ) ;
1624+
1625+ await expectRevert (
1626+ hintHandler . parseEthToTokenHint ( e2tToken , hint ) ,
1627+ 'reserveIds and splits must be empty'
1628+ ) ;
1629+ } ) ;
1630+
1631+ it ( 'should revert the E2T BEST-OF-ALL HINT due to splits not empty' , async ( ) => {
1632+ e2tHintType = BEST_OF_ALL ;
1633+ e2tSplits = BPS_SPLIT ;
1634+
1635+ hint = Helper . buildHint ( 'BEST_OF_ALL' ) ( e2tHintType , [ ] , e2tSplits ) ;
1636+
1637+ await expectRevert (
1638+ hintHandler . parseEthToTokenHint ( e2tToken , hint ) ,
1639+ 'reserveIds and splits must be empty'
1640+ ) ;
1641+ } ) ;
1642+
1643+ it ( 'should revert the E2T BEST-OF-ALL HINT due to reserveIds and splits not empty' , async ( ) => {
14601644 e2tHintType = BEST_OF_ALL ;
14611645 e2tSplits = BPS_SPLIT ;
14621646
@@ -1635,7 +1819,53 @@ contract('KyberHintHandler', function(accounts) {
16351819 } ) ;
16361820
16371821 Object . keys ( TRADE_TYPES ) . forEach ( e2tTradeType => {
1638- it ( `should revert the T2T hint for T2E BEST-OF-ALL HINT, E2T ${ e2tTradeType } due to reserveIds or splits not empty` , async ( ) => {
1822+ it ( `should revert the T2T hint for T2E BEST-OF-ALL HINT, E2T ${ e2tTradeType } due to T2E reserveIds not empty` , async ( ) => {
1823+ t2eHintType = BEST_OF_ALL ;
1824+ t2eSplits = [ ] ;
1825+ e2tHintType = TRADE_TYPES [ e2tTradeType ] ;
1826+ e2tSplits = ( e2tTradeType == 'SPLIT' ) ? BPS_SPLIT : [ ] ;
1827+
1828+ hint = Helper . buildHintT2T (
1829+ 'BEST_OF_ALL' ,
1830+ t2eHintType ,
1831+ t2eReserves ,
1832+ t2eSplits ,
1833+ e2tTradeType ,
1834+ e2tHintType ,
1835+ e2tReserves ,
1836+ e2tSplits ,
1837+ ) ;
1838+
1839+ await expectRevert (
1840+ hintHandler . parseTokenToTokenHint ( t2eToken , e2tToken , hint ) ,
1841+ 'reserveIds and splits must be empty'
1842+ ) ;
1843+ } ) ;
1844+
1845+ it ( `should revert the T2T hint for T2E BEST-OF-ALL HINT, E2T ${ e2tTradeType } due to T2E splits not empty` , async ( ) => {
1846+ t2eHintType = BEST_OF_ALL ;
1847+ t2eSplits = BPS_SPLIT ;
1848+ e2tHintType = TRADE_TYPES [ e2tTradeType ] ;
1849+ e2tSplits = ( e2tTradeType == 'SPLIT' ) ? BPS_SPLIT : [ ] ;
1850+
1851+ hint = Helper . buildHintT2T (
1852+ 'BEST_OF_ALL' ,
1853+ t2eHintType ,
1854+ [ ] ,
1855+ t2eSplits ,
1856+ e2tTradeType ,
1857+ e2tHintType ,
1858+ e2tReserves ,
1859+ e2tSplits ,
1860+ ) ;
1861+
1862+ await expectRevert (
1863+ hintHandler . parseTokenToTokenHint ( t2eToken , e2tToken , hint ) ,
1864+ 'reserveIds and splits must be empty'
1865+ ) ;
1866+ } ) ;
1867+
1868+ it ( `should revert the T2T hint for T2E BEST-OF-ALL HINT, E2T ${ e2tTradeType } due to T2E reserveIds and splits not empty` , async ( ) => {
16391869 t2eHintType = BEST_OF_ALL ;
16401870 t2eSplits = BPS_SPLIT ;
16411871 e2tHintType = TRADE_TYPES [ e2tTradeType ] ;
@@ -1660,7 +1890,53 @@ contract('KyberHintHandler', function(accounts) {
16601890 } ) ;
16611891
16621892 Object . keys ( TRADE_TYPES ) . forEach ( t2eTradeType => {
1663- it ( `should revert the T2T hint for T2E ${ t2eTradeType } , E2T BEST-OF-ALL HINT due to reserveIds or splits not empty` , async ( ) => {
1893+ it ( `should revert the T2T hint for T2E ${ t2eTradeType } , E2T BEST-OF-ALL HINT due to E2T reserveIds not empty` , async ( ) => {
1894+ t2eHintType = TRADE_TYPES [ t2eTradeType ] ;
1895+ t2eSplits = ( t2eTradeType == 'SPLIT' ) ? BPS_SPLIT : [ ] ;
1896+ e2tHintType = BEST_OF_ALL ;
1897+ e2tSplits = [ ] ;
1898+
1899+ hint = Helper . buildHintT2T (
1900+ t2eTradeType ,
1901+ t2eHintType ,
1902+ t2eReserves ,
1903+ t2eSplits ,
1904+ 'BEST_OF_ALL' ,
1905+ e2tHintType ,
1906+ e2tReserves ,
1907+ e2tSplits ,
1908+ ) ;
1909+
1910+ await expectRevert (
1911+ hintHandler . parseTokenToTokenHint ( t2eToken , e2tToken , hint ) ,
1912+ 'reserveIds and splits must be empty'
1913+ ) ;
1914+ } ) ;
1915+
1916+ it ( `should revert the T2T hint for T2E ${ t2eTradeType } , E2T BEST-OF-ALL HINT due to E2T splits not empty` , async ( ) => {
1917+ t2eHintType = TRADE_TYPES [ t2eTradeType ] ;
1918+ t2eSplits = ( t2eTradeType == 'SPLIT' ) ? BPS_SPLIT : [ ] ;
1919+ e2tHintType = BEST_OF_ALL ;
1920+ e2tSplits = BPS_SPLIT ;
1921+
1922+ hint = Helper . buildHintT2T (
1923+ t2eTradeType ,
1924+ t2eHintType ,
1925+ t2eReserves ,
1926+ t2eSplits ,
1927+ 'BEST_OF_ALL' ,
1928+ e2tHintType ,
1929+ [ ] ,
1930+ e2tSplits ,
1931+ ) ;
1932+
1933+ await expectRevert (
1934+ hintHandler . parseTokenToTokenHint ( t2eToken , e2tToken , hint ) ,
1935+ 'reserveIds and splits must be empty'
1936+ ) ;
1937+ } ) ;
1938+
1939+ it ( `should revert the T2T hint for T2E ${ t2eTradeType } , E2T BEST-OF-ALL HINT due to E2T reserveIds splits not empty` , async ( ) => {
16641940 t2eHintType = TRADE_TYPES [ t2eTradeType ] ;
16651941 t2eSplits = ( t2eTradeType == 'SPLIT' ) ? BPS_SPLIT : [ ] ;
16661942 e2tHintType = BEST_OF_ALL ;
0 commit comments