Skip to content

Commit

Permalink
Merge branch 'develop' into feature-download-encryption
Browse files Browse the repository at this point in the history
  • Loading branch information
paulo-ocean authored Nov 6, 2023
2 parents acda330 + f65f0b2 commit 6e42104
Show file tree
Hide file tree
Showing 7 changed files with 459 additions and 2 deletions.
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
*.js
dist/
.eslintrc

4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-node@v2
with:
node-version: '16.20.2'
node-version: '20.9.0'
- name: Cache node_modules
uses: actions/cache@v2
env:
Expand All @@ -37,7 +37,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
node: ['16.20.2']
node: ['20.9.0']

steps:
- uses: actions/checkout@v3
Expand Down
91 changes: 91 additions & 0 deletions data/DDO_example_1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
{
"@context": [
"https://w3id.org/did/v1"
],
"id": "did:op:fa0e8fa9550e8eb13392d6eeb9ba9f8111801b332c8d2345b350b3bc66b379d5",
"nftAddress": "0xBB1081DbF3227bbB233Db68f7117114baBb43656",
"version": "4.1.0",
"chainId": 137,
"metadata": {
"created": "2022-12-30T08:40:06Z",
"updated": "2022-12-30T08:40:06Z",
"type": "dataset",
"name": "DEX volume in details",
"description": "Volume traded and locked of Decentralized Exchanges (Uniswap, Sushiswap, Curve, Balancer, ...), daily in details",
"tags": [
"index",
"defi",
"tvl"
],
"author": "DEX",
"license": "https://market.oceanprotocol.com/terms",
"additionalInformation": {
"termsAndConditions": true
}
},
"services": [
{
"id": "24654b91482a3351050510ff72694d88edae803cf31a5da993da963ba0087648",
"type": "access",
"files": "0x04beba2f90639ff7559618160df5a81729904022578e6bd5f60c3bebfe5cb2aca59d7e062228a98ed88c4582c290045f47cdf3824d1c8bb25b46b8e10eb9dc0763ce82af826fd347517011855ce1396ac94af8cc6f29b78012b679cb78a594d9064b6f6f4a8229889f0bb53262b6ab62b56fa5c608ea126ba228dd0f87290c0628fe07023416280c067beb01a42d0a4df95fdb5a857f1f59b3e6a13b0ae4619080369ba5bede6c7beff6afc7fc31c71ed8100e7817d965d1f8f1abfaace3c01f0bd5d0127df308175941088a1f120a4d9a0290be590d65a7b4de01ae1efe24286d7a06fadeeafba83b5eab25b90961abf1f24796991f06de6c8e1c2357fbfb31f484a94e87e7dba80a489e12fffa1adde89f113b4c8c4c8877914911a008dbed0a86bdd9d14598c35894395fb4a8ea764ed2f9459f6acadac66e695b3715536338f6cdee616b721b0130f726c78ca60ec02fc86c",
"datatokenAddress": "0xfF4AE9869Cafb5Ff725f962F3Bbc22Fb303A8aD8",
"serviceEndpoint": "https://v4.provider.polygon.oceanprotocol.com",
"timeout": 604800
}
],
"event": {
"tx": "0xceb617f13a8db82ba9ef24efcee72e90d162915fd702f07ac6012427c31ac952",
"block": 39326976,
"from": "0x0DB823218e337a6817e6D7740eb17635DEAdafAF",
"contract": "0xBB1081DbF3227bbB233Db68f7117114baBb43656",
"datetime": "2023-02-15T16:42:22"
},
"nft": {
"address": "0xBB1081DbF3227bbB233Db68f7117114baBb43656",
"name": "Ocean Data NFT",
"symbol": "OCEAN-NFT",
"state": 0,
"tokenURI": "data:application/json;base64,eyJuYW1lIjoiT2NlYW4gRGF0YSBORlQiLCJzeW1ib2wiOiJPQ0VBTi1ORlQiLCJkZXNjcmlwdGlvbiI6IlRoaXMgTkZUIHJlcHJlc2VudHMgYW4gYXNzZXQgaW4gdGhlIE9jZWFuIFByb3RvY29sIHY0IGVjb3N5c3RlbS5cblxuVmlldyBvbiBPY2VhbiBNYXJrZXQ6IGh0dHBzOi8vbWFya2V0Lm9jZWFucHJvdG9jb2wuY29tL2Fzc2V0L2RpZDpvcDpmYTBlOGZhOTU1MGU4ZWIxMzM5MmQ2ZWViOWJhOWY4MTExODAxYjMzMmM4ZDIzNDViMzUwYjNiYzY2YjM3OWQ1IiwiZXh0ZXJuYWxfdXJsIjoiaHR0cHM6Ly9tYXJrZXQub2NlYW5wcm90b2NvbC5jb20vYXNzZXQvZGlkOm9wOmZhMGU4ZmE5NTUwZThlYjEzMzkyZDZlZWI5YmE5ZjgxMTE4MDFiMzMyYzhkMjM0NWIzNTBiM2JjNjZiMzc5ZDUiLCJiYWNrZ3JvdW5kX2NvbG9yIjoiMTQxNDE0IiwiaW1hZ2VfZGF0YSI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgdmlld0JveD0nMCAwIDk5IDk5JyBmaWxsPSd1bmRlZmluZWQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGZpbGw9JyUyM2ZmNDA5Mjc3JyBkPSdNMCw5OUwwLDIzQzEzLDIwIDI3LDE4IDM3LDE4QzQ2LDE3IDUyLDE4IDYyLDIwQzcxLDIxIDg1LDI0IDk5LDI3TDk5LDk5WicvJTNFJTNDcGF0aCBmaWxsPSclMjNmZjQwOTJiYicgZD0nTTAsOTlMMCw1MkMxMSw0OCAyMyw0NCAzMyw0NEM0Miw0MyA1MCw0NSA2MSw0OEM3MSw1MCA4NSw1MiA5OSw1NUw5OSw5OVonJTNFJTNDL3BhdGglM0UlM0NwYXRoIGZpbGw9JyUyM2ZmNDA5MmZmJyBkPSdNMCw5OUwwLDcyQzgsNzMgMTcsNzUgMjksNzZDNDAsNzYgNTMsNzYgNjYsNzdDNzgsNzcgODgsNzcgOTksNzhMOTksOTlaJyUzRSUzQy9wYXRoJTNFJTNDL3N2ZyUzRSJ9",
"owner": "0x0DB823218e337a6817e6D7740eb17635DEAdafAF",
"created": "2022-12-30T08:40:43"
},
"purgatory": {
"state": false
},
"datatokens": [
{
"address": "0xfF4AE9869Cafb5Ff725f962F3Bbc22Fb303A8aD8",
"name": "Boorish Fish Token",
"symbol": "BOOFIS-23",
"serviceId": "24654b91482a3351050510ff72694d88edae803cf31a5da993da963ba0087648"
}
],
"stats": {
"allocated": 5211144,
"orders": 36,
"price": {
"value": 1000,
"tokenAddress": "0x282d8efCe846A88B159800bd4130ad77443Fa1A1",
"tokenSymbol": "mOCEAN"
}
},
"accessDetails": {
"templateId": 2,
"publisherMarketOrderFee": "0",
"type": "fixed",
"addressOrId": "0xd829c22afa50a25ad965e2c2f3d89940a6a27dbfabc2631964ea882883bc7d11",
"price": "1000",
"isPurchasable": true,
"baseToken": {
"address": "0x282d8efce846a88b159800bd4130ad77443fa1a1",
"name": "Ocean Token (PoS)",
"symbol": "mOCEAN",
"decimals": 18
},
"datatoken": {
"address": "0xff4ae9869cafb5ff725f962f3bbc22fb303a8ad8",
"name": "Boorish Fish Token",
"symbol": "BOOFIS-23"
}
}
}
92 changes: 92 additions & 0 deletions data/DDO_example_2.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
{
"@context": [
"https://w3id.org/did/v1"
],
"id": "did:op:ce3f161fb98c64a2ded37fd34e25f28343f2c88d0c8205242df9c621770d4b3b",
"nftAddress": "0x12C79518E69339849ec646CdAF491C25E9c73238",
"version": "4.1.0",
"chainId": 137,
"metadata": {
"created": "2022-10-15T20:42:54Z",
"updated": "2022-10-15T20:42:54Z",
"type": "dataset",
"name": "BTC/USDT orderbook",
"description": "Real time BTC/USDT orderbook\n\nTo take the bid orders, access data.bids array\nTo take the ask orders, access data.asks array\n\nResponse schema:\n\n```json\n{\n \"code\":\"200000\",\n \"data\":\n {\n \"time\":1665865828392,\n \"sequence\":\"357821345\",\n \"bids\":\n [\n [\"19099.9\",\"0.00078381\"],\n [\"19099.8\",\"0.02901545\"],\n ....\n ],\n \"asks\":\n [\n [\"19100.3\",\"0.0288382\"],\n [\"19100.4\",\"0.00167897\"],\n ...\n ]\n }\n}\n```\n\nAccess is permited for 1 day after buying.",
"tags": [
"defi",
"orderbook"
],
"author": "0x4Ab0C24005c410111e21aE16Df5e19180fAD0f6a",
"license": "https://market.oceanprotocol.com/terms",
"additionalInformation": {
"termsAndConditions": true
}
},
"services": [
{
"id": "a8ad09aeb572ba2b5f72af4970d94d0220be112bbdc53995e31b6dac083b7d2f",
"type": "access",
"files": "0x046f268901ed5ed2216fdca7aa435db08e1cf07d5a7f078d85b59a78c4a83929ee746236ef0130852b57f0d748e3ceae5ff7ad43f68a10361caefec521b25927266d320397be69d13841b333a6be8e067a178570c7d80fa37829a0e216d5ba6fc0a935040a5f97bf06e81f2387557ddd59def3eaadf22655aa50b66379cfc8ac61dd1ace0b1badbaa79cd2aa6ff8142d030f7e2726f86b07b312febd0bfa5409044216d3170eb069b51da54a322d2203ef6c873ce84a4f1728a137c2bd645a473ac6c7b94547bb5f882aa2a2ad795510177a75c02bc9a1cb28811b62db23a41908a45592653cc60b42d22d4abde72e0f7db3fb7fdf0297afa1d83dd59cca83b3ad02a9ab8cff70bc6b33900844c03db1bceef2105792eb73a8c54725fcc12af3e224a3c0db5bf918de068f81e959d687d11a58d7b6a929d4a4e879a0c950578a2acc4c2ecc23fa6acf8ef4bdb2a76d59ce0e6fcd3bbb70f483032fe3894c3e",
"datatokenAddress": "0x506fD5caA79bD5F8aB4268c69690e5bD6B9e7c4f",
"serviceEndpoint": "https://v4.provider.polygon.oceanprotocol.com",
"timeout": 86400
}
],
"event": {
"tx": "0x613f27ad6a08dae917effaeae8db0a97423cdfdf61ece130b5a973fd74b994c2",
"block": 34389215,
"from": "0x4Ab0C24005c410111e21aE16Df5e19180fAD0f6a",
"contract": "0x12C79518E69339849ec646CdAF491C25E9c73238",
"datetime": "2022-10-15T20:43:06"
},
"nft": {
"address": "0x12C79518E69339849ec646CdAF491C25E9c73238",
"name": "Ocean Data NFT",
"symbol": "OCEAN-NFT",
"state": 0,
"tokenURI": "data:application/json;base64,eyJuYW1lIjoiT2NlYW4gRGF0YSBORlQiLCJzeW1ib2wiOiJPQ0VBTi1ORlQiLCJkZXNjcmlwdGlvbiI6IlRoaXMgTkZUIHJlcHJlc2VudHMgYW4gYXNzZXQgaW4gdGhlIE9jZWFuIFByb3RvY29sIHY0IGVjb3N5c3RlbS5cblxuVmlldyBvbiBPY2VhbiBNYXJrZXQ6IGh0dHBzOi8vbWFya2V0Lm9jZWFucHJvdG9jb2wuY29tL2Fzc2V0L2RpZDpvcDpjZTNmMTYxZmI5OGM2NGEyZGVkMzdmZDM0ZTI1ZjI4MzQzZjJjODhkMGM4MjA1MjQyZGY5YzYyMTc3MGQ0YjNiIiwiZXh0ZXJuYWxfdXJsIjoiaHR0cHM6Ly9tYXJrZXQub2NlYW5wcm90b2NvbC5jb20vYXNzZXQvZGlkOm9wOmNlM2YxNjFmYjk4YzY0YTJkZWQzN2ZkMzRlMjVmMjgzNDNmMmM4OGQwYzgyMDUyNDJkZjljNjIxNzcwZDRiM2IiLCJiYWNrZ3JvdW5kX2NvbG9yIjoiMTQxNDE0IiwiaW1hZ2VfZGF0YSI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgdmlld0JveD0nMCAwIDk5IDk5JyBmaWxsPSd1bmRlZmluZWQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGZpbGw9JyUyM2ZmNDA5Mjc3JyBkPSdNMCw5OUwwLDE5QzcsMjEgMTUsMjQgMjMsMjdDMzAsMjkgMzcsMzEgNDUsMzBDNTIsMjggNjEsMjMgNzEsMjNDODAsMjIgODksMjYgOTksMzFMOTksOTlaJy8lM0UlM0NwYXRoIGZpbGw9JyUyM2ZmNDA5MmJiJyBkPSdNMCw5OUwwLDQ2QzcsNDMgMTUsNDEgMjUsNDFDMzQsNDAgNDQsNDMgNTIsNDdDNTksNTEgNjMsNTYgNzEsNTdDNzgsNTcgODgsNTEgOTksNDZMOTksOTlaJyUzRSUzQy9wYXRoJTNFJTNDcGF0aCBmaWxsPSclMjNmZjQwOTJmZicgZD0nTTAsOTlMMCw2OEM1LDc0IDExLDgwIDIxLDgxQzMwLDgxIDQyLDc1IDUxLDczQzU5LDcwIDY1LDcyIDczLDc0QzgwLDc1IDg5LDc1IDk5LDc1TDk5LDk5WiclM0UlM0MvcGF0aCUzRSUzQy9zdmclM0UifQ==",
"owner": "0x4Ab0C24005c410111e21aE16Df5e19180fAD0f6a",
"created": "2022-10-15T20:43:06"
},
"datatokens": [
{
"address": "0x506fD5caA79bD5F8aB4268c69690e5bD6B9e7c4f",
"name": "Pleasant Turtle Token",
"symbol": "PLETUR-55",
"serviceId": "a8ad09aeb572ba2b5f72af4970d94d0220be112bbdc53995e31b6dac083b7d2f"
}
],
"stats": {
"allocated": 2746640.5,
"orders": 43,
"price": {
"value": 18071,
"tokenAddress": "0x282d8efCe846A88B159800bd4130ad77443Fa1A1",
"tokenSymbol": "mOCEAN"
}
},
"purgatory": {
"state": false
},
"accessDetails": {
"templateId": 2,
"publisherMarketOrderFee": "0",
"type": "fixed",
"addressOrId": "0x7741a1e03ac7fa984e2a6118315d2ff26ac7f7b94316b98df02c636b3a2e6b76",
"price": "18071",
"isPurchasable": true,
"baseToken": {
"address": "0x282d8efce846a88b159800bd4130ad77443fa1a1",
"name": "Ocean Token (PoS)",
"symbol": "mOCEAN",
"decimals": 18
},
"datatoken": {
"address": "0x506fd5caa79bd5f8ab4268c69690e5bd6b9e7c4f",
"name": "Pleasant Turtle Token",
"symbol": "PLETUR-55"
}
}
}


91 changes: 91 additions & 0 deletions data/DDO_example_3.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
{
"@context": [
"https://w3id.org/did/v1"
],
"id": "did:op:6637c63a7be53c4d7c6204b92e1508c928f9090ca822cec42782c8b1ec33bb2f",
"nftAddress": "0xc8bF9f20fC169c3d74F0Ec3Ba1cd933b8BEaafAf",
"version": "4.1.0",
"chainId": 137,
"metadata": {
"created": "2022-10-15T20:50:56Z",
"updated": "2022-10-15T20:50:56Z",
"type": "dataset",
"name": "OCEAN/USDT orderbook",
"description": "Real time OCEAN/USDT orderbook\n\nTo take the bid orders, access data.bids array\nTo take the ask orders, access data.asks array\n\nResponse schema:\n\n```json\n{\n \"code\":\"200000\",\n \"data\":\n {\n \"time\":1665865828392,\n \"sequence\":\"357821345\",\n \"bids\":\n [\n [\"0.1480\",\"0.00078381\"],\n [\"0.1481\",\"0.02901545\"],\n ....\n ],\n \"asks\":\n [\n [\"0.1482\",\"0.0288382\"],\n [\"0.1483\",\"0.00167897\"],\n ...\n ]\n }\n}\n```\n\nAccess is permited for 1 day after buying.",
"tags": [
"defi",
"orderbook"
],
"author": "0x4Ab0C24005c410111e21aE16Df5e19180fAD0f6a",
"license": "https://market.oceanprotocol.com/terms",
"additionalInformation": {
"termsAndConditions": true
}
},
"services": [
{
"id": "2ef4d2e85a682db7c8090c1a2447544d30a4399ca6bb6d4569884ed11aeaa3ac",
"type": "access",
"files": "0x0459544840d4aae9a80ecad9b3cf3368595e9df9a055f4491ca80155b346848211be196d708e66b51de6a972de5976fe400a8972e54f60d7587e6609cd9460a87bf6883b79d6243f74fa11edb8250c2e6fbd5a52fc68f368ef26c27b9e29c82a3dbdeb2abf9a754de5272782638a17bb8d9f804bde927a9497b9540f137d8964da5e8e49aecc75fb4726a0fb9ce2d1abe206a15f554df562e6a3cd0bf6349bfb167b395bfce02d69070b051a644a88007b3886ca554b82fd0c22713f8a3c76121427e8b8f2ece0cd002d596ed9f31334765c6533b421b8e20bc4418b5d014f0c67fba105f3ffe45a5977fdcbf4db9025da06cfa13c33a27ce806bf7603f166d7975b8a9bef99f59a9f247ba879d1b8dbb64920eecb4dd835ee108bb5daafbbe6d6e508e05dd4677d25816db165a0388237c0094c1bb07980232af4ae38f259e66c868a86f7b484cf6784ea477c832e9c8d007d93eb57a6a35c0b94150f6f63bad8f5",
"datatokenAddress": "0x63783477Ee79c5078B2C42fCc75c4d3C8ec87818",
"serviceEndpoint": "https://v4.provider.polygon.oceanprotocol.com",
"timeout": 86400
}
],
"event": {
"tx": "0xc026863eca6355bc8e66906fbe56ac73dc2619c3d34162b5e0c63d5cc238c0db",
"block": 34389442,
"from": "0x4Ab0C24005c410111e21aE16Df5e19180fAD0f6a",
"contract": "0xc8bF9f20fC169c3d74F0Ec3Ba1cd933b8BEaafAf",
"datetime": "2022-10-15T20:51:06"
},
"nft": {
"address": "0xc8bF9f20fC169c3d74F0Ec3Ba1cd933b8BEaafAf",
"name": "Ocean Data NFT",
"symbol": "OCEAN-NFT",
"state": 0,
"tokenURI": "data:application/json;base64,eyJuYW1lIjoiT2NlYW4gRGF0YSBORlQiLCJzeW1ib2wiOiJPQ0VBTi1ORlQiLCJkZXNjcmlwdGlvbiI6IlRoaXMgTkZUIHJlcHJlc2VudHMgYW4gYXNzZXQgaW4gdGhlIE9jZWFuIFByb3RvY29sIHY0IGVjb3N5c3RlbS5cblxuVmlldyBvbiBPY2VhbiBNYXJrZXQ6IGh0dHBzOi8vbWFya2V0Lm9jZWFucHJvdG9jb2wuY29tL2Fzc2V0L2RpZDpvcDo2NjM3YzYzYTdiZTUzYzRkN2M2MjA0YjkyZTE1MDhjOTI4ZjkwOTBjYTgyMmNlYzQyNzgyYzhiMWVjMzNiYjJmIiwiZXh0ZXJuYWxfdXJsIjoiaHR0cHM6Ly9tYXJrZXQub2NlYW5wcm90b2NvbC5jb20vYXNzZXQvZGlkOm9wOjY2MzdjNjNhN2JlNTNjNGQ3YzYyMDRiOTJlMTUwOGM5MjhmOTA5MGNhODIyY2VjNDI3ODJjOGIxZWMzM2JiMmYiLCJiYWNrZ3JvdW5kX2NvbG9yIjoiMTQxNDE0IiwiaW1hZ2VfZGF0YSI6ImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0Nzdmcgdmlld0JveD0nMCAwIDk5IDk5JyBmaWxsPSd1bmRlZmluZWQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyclM0UlM0NwYXRoIGZpbGw9JyUyM2ZmNDA5Mjc3JyBkPSdNMCw5OUwwLDMwQzEwLDI3IDIwLDI1IDI4LDI2QzM1LDI2IDM5LDMxIDQ4LDMyQzU2LDMyIDY3LDMwIDc3LDI5Qzg2LDI3IDkyLDI2IDk5LDI2TDk5LDk5WicvJTNFJTNDcGF0aCBmaWxsPSclMjNmZjQwOTJiYicgZD0nTTAsOTlMMCw1NUM4LDU1IDE2LDU1IDI1LDUzQzMzLDUwIDQzLDQ0IDUyLDQzQzYwLDQxIDY2LDQ1IDc0LDQ3QzgxLDQ4IDkwLDQ4IDk5LDQ4TDk5LDk5WiclM0UlM0MvcGF0aCUzRSUzQ3BhdGggZmlsbD0nJTIzZmY0MDkyZmYnIGQ9J00wLDk5TDAsNzRDNyw3MCAxNCw2NiAyMyw2OEMzMSw2OSA0MCw3NyA0OSw4MUM1Nyw4NCA2NCw4MiA3Myw4MEM4MSw3NyA5MCw3NCA5OSw3MUw5OSw5OVonJTNFJTNDL3BhdGglM0UlM0Mvc3ZnJTNFIn0=",
"owner": "0x4Ab0C24005c410111e21aE16Df5e19180fAD0f6a",
"created": "2022-10-15T20:51:06"
},
"datatokens": [
{
"address": "0x63783477Ee79c5078B2C42fCc75c4d3C8ec87818",
"name": "Voracious Seal Token",
"symbol": "VORSEA-76",
"serviceId": "2ef4d2e85a682db7c8090c1a2447544d30a4399ca6bb6d4569884ed11aeaa3ac"
}
],
"stats": {
"allocated": 2634008,
"orders": 44,
"price": {
"value": 18071,
"tokenAddress": "0x282d8efCe846A88B159800bd4130ad77443Fa1A1",
"tokenSymbol": "mOCEAN"
}
},
"purgatory": {
"state": false
},
"accessDetails": {
"templateId": 2,
"publisherMarketOrderFee": "0",
"type": "fixed",
"addressOrId": "0x74fb23236669663bd76d500c423feec455d8422e7939e74f7b5f7df3462dc9a2",
"price": "18071",
"isPurchasable": true,
"baseToken": {
"address": "0x282d8efce846a88b159800bd4130ad77443fa1a1",
"name": "Ocean Token (PoS)",
"symbol": "mOCEAN",
"decimals": 18
},
"datatoken": {
"address": "0x63783477ee79c5078b2c42fcc75c4d3c8ec87818",
"name": "Voracious Seal Token",
"symbol": "VORSEA-76"
}
}
}

Loading

0 comments on commit 6e42104

Please sign in to comment.