JSON body for BidBidderNotification is same as before with the addition of a "counterbid" boolean field. Note that the "owner" field containers either a user object or an Ethereum address for a non-user.
```
{
"bidder": {
"username": "Becky",
"id": 5,
"avatar": "https://ipfs.pixura.io/ipfs/QmZB7Y1sj5w28ovtSy6EFM9siFx9Sejor1opdL4zWv9WAH",
"ethereumAddress": "0xb794f5ea0ba39494ce839613fffba74279579268"
},
"owner": {
"username": "Owen",
"id": 6,
"ethereumAddress": "0xdeadbeef0ba39494ce839613fffba74279579268"
},
"price": 2.5,
"counterbid": true
}
```
JSON body for BidOwnerNotification is same as BidBidderNotification, except that
the owner is definitely a user, and the bidder is either an address or a user.
JSON body for a SetSalePriceOwnerNotification looks like this. The "target" field
is either an address or a user
```
{
"owner": {
"username": "Becky",
"id": 5,
"avatar": "https://ipfs.pixura.io/ipfs/QmZB7Y1sj5w28ovtSy6EFM9siFx9Sejor1opdL4zWv9WAH",
"ethereumAddress": "0xb794f5ea0ba39494ce839613fffba74279579268"
}
"target": {
"username": "Owen",
"id": 6,
"ethereumAddress": "0xdeadbeef0ba39494ce839613fffba74279579268"
}
"price": 2.5,
"currency": {
"address": "0xdeadbeefdeadbeefce839613fffba74279579268",
"description": "Ethereum",
"type": "ETH"
},
"counterask": true
}
```
JSON body for SetSalePriceTargetNotification is same as SetSalePriceOwnerNotification, except that
the target is definitely a user, and the owner is either an address or a user.