@@ -798,24 +798,81 @@ describe("TicketBroker", () => {
798798 ) . to . be . revertedWith ( "ticket sender is null address" )
799799 } )
800800
801- it ( "reverts if ticket auxData != 64 bytes" , async ( ) => {
802- const auxData = ethers . constants . HashZero
801+ it ( "reverts if ticket auxData length is less than 64 bytes" , async ( ) => {
802+ await expect (
803+ broker . redeemWinningTicket (
804+ createTicket ( {
805+ recipient,
806+ sender,
807+ auxData : ethers . constants . HashZero
808+ } ) ,
809+ web3 . utils . asciiToHex ( "sig" ) ,
810+ 5
811+ )
812+ ) . to . be . revertedWith (
813+ "invalid length for ticket auxData: must be between 64 and 96 bytes"
814+ )
815+ } )
803816
817+ it ( "reverts if ticket auxData is greater than 96 bytes" , async ( ) => {
804818 await expect (
805819 broker . redeemWinningTicket (
806820 createTicket ( {
807821 recipient,
808822 sender,
809- auxData
823+ auxData : ethers . utils . hexConcat ( [
824+ createAuxData (
825+ currentRound ,
826+ DUMMY_TICKET_CREATION_ROUND_BLOCK_HASH
827+ ) ,
828+ ethers . constants . HashZero ,
829+ ethers . constants . HashZero
830+ ] )
810831 } ) ,
811832 web3 . utils . asciiToHex ( "sig" ) ,
812833 5
813834 )
814835 ) . to . be . revertedWith (
815- "invalid length for ticket auxData: must be 64 bytes"
836+ "invalid length for ticket auxData: must be between 64 and 96 bytes"
816837 )
817838 } )
818839
840+ it ( "accepts 96-byte ticket auxData" , async ( ) => {
841+ const recipientRand = 5
842+ const faceValue = 1
843+
844+ await broker . fundDeposit ( { value : faceValue } )
845+ const auxData = ethers . utils . hexConcat ( [
846+ createAuxData (
847+ currentRound ,
848+ DUMMY_TICKET_CREATION_ROUND_BLOCK_HASH
849+ ) ,
850+ ethers . constants . HashZero
851+ ] )
852+
853+ const ticket = createWinningTicket (
854+ recipient ,
855+ sender ,
856+ recipientRand ,
857+ faceValue ,
858+ auxData
859+ )
860+ const senderSig = await signMsg ( getTicketHash ( ticket ) , sender )
861+
862+ try {
863+ await broker . redeemWinningTicket (
864+ ticket ,
865+ senderSig ,
866+ recipientRand
867+ )
868+ } catch ( error ) {
869+ console . log (
870+ error . reason || error . error ?. message || error . message
871+ )
872+ throw error
873+ }
874+ } )
875+
819876 it ( "reverts if block hash for ticket creationRound is null" , async ( ) => {
820877 await fixture . roundsManager . setMockBytes32 (
821878 functionSig ( "blockHashForRound(uint256)" ) ,
0 commit comments