{
  "tcID":"INT-SOL-084",
  "tcName":"ERC721.safeTransferFromWithData.toERC721Receiver.owner.toERC721Receiver.senderERC721Receiver",
  "deploy":{
    "ERC721Mock":{
      "file":"contracts/mocks/ERC721Mock.sol",
      "constructorParams":[]
    },
    "ERC721ReceiverMock":{
      "file":"contracts/mocks/ERC721ReceiverMock.sol",
      "constructorParams":["0x150b7a02", false]
    }
  },
  "test":[
    {
      "tx":{
        "from":"env.sender",
        "type":"LEGACY",
        "to":"randomMinter",
        "value":"1000000000000000000",
        "gas":100000,
        "data":""
      },
      "expected":{
        "status":true
      }
    },
    {
      "tx":{
        "from":"env.sender",
        "type":"LEGACY",
        "to":"randomOwner",
        "value":"1000000000000000000",
        "gas":100000,
        "data":""
      },
      "expected":{
        "status":true
      }
    },
    {
      "tx":{
        "from":"env.sender",
        "type":"LEGACY",
        "to":"ERC721ReceiverMock",
        "value":"1000000000000000000",
        "gas":100000,
        "data":""
      },
      "expected":{
        "status":true
      }
    },
    {
      "send":{
        "from":"randomMinter",
        "to":"ERC721Mock",
        "gas":100000,
        "method":"mint",
        "params":["randomOwner", "1"]
      },
      "expected":{
        "status":true
      }
    },
    {
      "send":{
        "from":"randomMinter",
        "to":"ERC721Mock",
        "gas":100000,
        "method":"mint",
        "params":["randomOwner", "2"]
      },
      "expected":{
        "status":true
      }
    },
    {
      "send":{
        "from":"randomOwner",
        "to":"ERC721Mock",
        "gas":100000,
        "method":"approve",
        "params":["randomApproved", "1"]
      },
      "expected":{
        "status":true
      }
    },
    {
      "send":{
        "from":"randomOwner",
        "to":"ERC721Mock",
        "gas":100000,
        "method":"setApprovalForAll",
        "params":["randomOperator", true]
      },
      "expected":{
        "status":true
      }
    },
    {
      "send":{
        "from":"randomOwner",
        "to":"ERC721Mock",
        "gas":100000,
        "method":"safeTransferFrom(address,address,uint256,bytes)",
        "params":["ERC721ReceiverMock", "ERC721ReceiverMock", "1", "0x42"]
      },
      "expected":{
        "status":true,
        "receipt": {
          "txError":"0x9",
          "status":false
        }
      }
    }
  ]
}

