Fulfillment Data Integer Serialization
March 21st, 2023
We're changing the way we serialize potentially large integer values in our fulfillment data payloads. Before the change, we were encoding these large integers as numbers in our JSON response, but we'll be encoding them as strings going forward. This is intended to address issues with languages like JavaScript that have difficulty parsing large integers.
These changes affect:
The change will be going live on Wednesday March 22.
Here's a sample of the before payload:
{
"protocol": "seaport1.4",
"fulfillment_data":
{
"transaction":
{
"function": "fulfillBasicOrder_efficient_6GL6yc((address,uint256,uint256,address,address,address,uint256,uint256,uint8,uint256,uint256,bytes32,uint256,bytes32,bytes32,uint256,(uint256,address)[],bytes))",
"chain": 1,
"to": "0x00000000000001ad428e4906ae43d8f9852d0dd6",
"value": 0,
"input_data":
{
"parameters":
{
"considerationToken": "0x2881579d1069e7b19aeee06de5c2b40ca23ab450",
"considerationIdentifier": 9,
"considerationAmount": 1,
"offerer": "0xf00d12687dfeb8a7ee8349cbcd18393108c4c29f",
"zone": "0x0000000000000000000000000000000000000000",
"offerToken": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"offerIdentifier": 0,
"offerAmount": 3130000000000000,
"basicOrderType": 16,
"startTime": 1679405383,
"endTime": 1679406284,
"zoneHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"salt": 47405,
"offererConduitKey": "0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000",
"fulfillerConduitKey": "0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000",
"totalOriginalAdditionalRecipients": 2,
"additionalRecipients":
[
{
"amount": 15650000000000,
"recipient": "0x0000a26b00c1f0df003000390027140000faa719"
},
{
"amount": 156500000000000,
"recipient": "0x1108f964b384f1dcda03658b24310ccbc48e226f"
}
],
"signature": "0x63c5161e81858bef67788e2f595f68712dd9e2448975451adee3e56c3d13509e931b9e6acab3cb1a26d2685cbfc13e610ed1b3f0a71e02338c7a025477e75765"
}
}
}
},
"orders": [...]
}
Here's a sample after payload:
{
"protocol": "seaport1.4",
"fulfillment_data":
{
"transaction":
{
"function": "fulfillBasicOrder_efficient_6GL6yc((address,uint256,uint256,address,address,address,uint256,uint256,uint8,uint256,uint256,bytes32,uint256,bytes32,bytes32,uint256,(uint256,address)[],bytes))",
"chain": 1,
"to": "0x00000000000001ad428e4906ae43d8f9852d0dd6",
"value": 0,
"input_data":
{
"parameters":
{
"considerationToken": "0x2881579d1069e7b19aeee06de5c2b40ca23ab450",
"considerationIdentifier": "9",
"considerationAmount": "1",
"offerer": "0xf00d12687dfeb8a7ee8349cbcd18393108c4c29f",
"zone": "0x0000000000000000000000000000000000000000",
"offerToken": "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
"offerIdentifier": "0",
"offerAmount": "3130000000000000",
"basicOrderType": 16,
"startTime": "1679405383",
"endTime": "1679406284",
"zoneHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"salt": "47405",
"offererConduitKey": "0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000",
"fulfillerConduitKey": "0x0000007b02230091a7ed01230072f7006a004d60a8d4e71d599b8104250f0000",
"totalOriginalAdditionalRecipients": "2",
"additionalRecipients":
[
{
"amount": "15650000000000",
"recipient": "0x0000a26b00c1f0df003000390027140000faa719"
},
{
"amount": "156500000000000",
"recipient": "0x1108f964b384f1dcda03658b24310ccbc48e226f"
}
],
"signature": "0x63c5161e81858bef67788e2f595f68712dd9e2448975451adee3e56c3d13509e931b9e6acab3cb1a26d2685cbfc13e610ed1b3f0a71e02338c7a025477e75765"
}
}
}
},
"orders": [...]
}