Feature/fees (#330)

Fees
This commit is contained in:
Alex Coseru 2022-02-17 12:26:05 +02:00 committed by GitHub
parent 96f8ec0604
commit 11b14081e9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 226 additions and 187 deletions

198
package-lock.json generated
View File

@ -9,7 +9,7 @@
"version": "1.2.0",
"license": "Apache-2.0",
"dependencies": {
"@oceanprotocol/lib": "^1.0.0-next.20",
"@oceanprotocol/lib": "^1.0.0-next.21",
"cross-fetch": "^3.1.4"
},
"devDependencies": {
@ -1660,9 +1660,9 @@
}
},
"node_modules/@oceanprotocol/contracts": {
"version": "1.0.0-alpha.20",
"resolved": "https://registry.npmjs.org/@oceanprotocol/contracts/-/contracts-1.0.0-alpha.20.tgz",
"integrity": "sha512-Z+zP7XzYjZfd0+URupld2LLZ91E07EWM4wlxpRGOhXEZ7oL3iQAlRJGq6SZN7C65LSUaMQuhj+n5C8aYOXUdwQ==",
"version": "1.0.0-alpha.21",
"resolved": "https://registry.npmjs.org/@oceanprotocol/contracts/-/contracts-1.0.0-alpha.21.tgz",
"integrity": "sha512-aYMEwkclqBtHEgjeDAmEuGnWQ3yZLIeHWr3XtiuscDxF48eCG0wUYtdtuqzbLNEUqgdpNVxVNTLW2x0w2PAQDA==",
"dependencies": {
"@openzeppelin/contracts": "^4.3.3",
"@openzeppelin/test-helpers": "^0.5.15",
@ -1674,11 +1674,11 @@
}
},
"node_modules/@oceanprotocol/lib": {
"version": "1.0.0-next.20",
"resolved": "https://registry.npmjs.org/@oceanprotocol/lib/-/lib-1.0.0-next.20.tgz",
"integrity": "sha512-UUFkYCdFk9ST/7F8AwzW+dWjxhMFzyp9BWPjI5MjY8jBOp1MLdY6mtZeA6wIRsPDqGGL4nBIzlVS1G3t2DlF0g==",
"version": "1.0.0-next.21",
"resolved": "https://registry.npmjs.org/@oceanprotocol/lib/-/lib-1.0.0-next.21.tgz",
"integrity": "sha512-S3xtsPE9Z+sxUlcsHy6fvimU6EVWyM+C/OFzr5EmJNbOIfEKOjeN1T9e0c0Zj+5gqSSNgGiOp1qKwEOBckA6bQ==",
"dependencies": {
"@oceanprotocol/contracts": "1.0.0-alpha.20",
"@oceanprotocol/contracts": "1.0.0-alpha.21",
"bignumber.js": "^9.0.2",
"cross-fetch": "^3.1.5",
"crypto-js": "^4.1.1",
@ -5636,7 +5636,6 @@
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
"peer": true,
"engines": {
"node": ">= 0.6"
}
@ -5663,9 +5662,9 @@
}
},
"node_modules/core-js-compat": {
"version": "3.21.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz",
"integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==",
"version": "3.21.1",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz",
"integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==",
"dependencies": {
"browserslist": "^4.19.1",
"semver": "7.0.0"
@ -5684,9 +5683,9 @@
}
},
"node_modules/core-js-pure": {
"version": "3.21.0",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.0.tgz",
"integrity": "sha512-VaJUunCZLnxuDbo1rNOzwbet9E1K9joiXS5+DQMPtgxd24wfsZbJZMMfQLGYMlCUvSxLfsRUUhoOR2x28mFfeg==",
"version": "3.21.1",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz",
"integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==",
"hasInstallScript": true,
"peer": true,
"funding": {
@ -8998,16 +8997,16 @@
"dev": true
},
"node_modules/express": {
"version": "4.17.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
"integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==",
"version": "4.17.3",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz",
"integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==",
"dependencies": {
"accepts": "~1.3.7",
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.19.1",
"body-parser": "1.19.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.4.1",
"cookie": "0.4.2",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "~1.1.2",
@ -9022,7 +9021,7 @@
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
"qs": "6.9.6",
"qs": "6.9.7",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.17.2",
@ -9037,42 +9036,6 @@
"node": ">= 0.10.0"
}
},
"node_modules/express/node_modules/body-parser": {
"version": "1.19.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz",
"integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==",
"dependencies": {
"bytes": "3.1.1",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "~1.1.2",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"on-finished": "~2.3.0",
"qs": "6.9.6",
"raw-body": "2.4.2",
"type-is": "~1.6.18"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/express/node_modules/bytes": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz",
"integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/express/node_modules/cookie": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/express/node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@ -9087,9 +9050,9 @@
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"node_modules/express/node_modules/qs": {
"version": "6.9.6",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
"integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
"version": "6.9.7",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
"integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==",
"engines": {
"node": ">=0.6"
},
@ -9097,20 +9060,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/express/node_modules/raw-body": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
"integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
"dependencies": {
"bytes": "3.1.1",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
"engines": {
"node": ">= 0.8"
}
},
"node_modules/ext": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz",
@ -10957,9 +10906,9 @@
}
},
"node_modules/highlightjs-solidity": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.3.tgz",
"integrity": "sha512-tjFm5dtIE61VQBzjlZmkCtY5fLs3CaEABbVuUNyXeW+UuOCsxMg3MsPFy0kCelHP74hPpkoqDejLrbnV1axAIw=="
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.4.tgz",
"integrity": "sha512-jsmfDXrjjxt4LxWfzp27j4CX6qYk6B8uK8sxzEDyGts8Ut1IuVlFCysAu6n5RrgHnuEKA+SCIcGPweO7qlPhCg=="
},
"node_modules/hmac-drbg": {
"version": "1.0.1",
@ -21538,9 +21487,9 @@
}
},
"@oceanprotocol/contracts": {
"version": "1.0.0-alpha.20",
"resolved": "https://registry.npmjs.org/@oceanprotocol/contracts/-/contracts-1.0.0-alpha.20.tgz",
"integrity": "sha512-Z+zP7XzYjZfd0+URupld2LLZ91E07EWM4wlxpRGOhXEZ7oL3iQAlRJGq6SZN7C65LSUaMQuhj+n5C8aYOXUdwQ==",
"version": "1.0.0-alpha.21",
"resolved": "https://registry.npmjs.org/@oceanprotocol/contracts/-/contracts-1.0.0-alpha.21.tgz",
"integrity": "sha512-aYMEwkclqBtHEgjeDAmEuGnWQ3yZLIeHWr3XtiuscDxF48eCG0wUYtdtuqzbLNEUqgdpNVxVNTLW2x0w2PAQDA==",
"requires": {
"@openzeppelin/contracts": "^4.3.3",
"@openzeppelin/test-helpers": "^0.5.15",
@ -21552,11 +21501,11 @@
}
},
"@oceanprotocol/lib": {
"version": "1.0.0-next.20",
"resolved": "https://registry.npmjs.org/@oceanprotocol/lib/-/lib-1.0.0-next.20.tgz",
"integrity": "sha512-UUFkYCdFk9ST/7F8AwzW+dWjxhMFzyp9BWPjI5MjY8jBOp1MLdY6mtZeA6wIRsPDqGGL4nBIzlVS1G3t2DlF0g==",
"version": "1.0.0-next.21",
"resolved": "https://registry.npmjs.org/@oceanprotocol/lib/-/lib-1.0.0-next.21.tgz",
"integrity": "sha512-S3xtsPE9Z+sxUlcsHy6fvimU6EVWyM+C/OFzr5EmJNbOIfEKOjeN1T9e0c0Zj+5gqSSNgGiOp1qKwEOBckA6bQ==",
"requires": {
"@oceanprotocol/contracts": "1.0.0-alpha.20",
"@oceanprotocol/contracts": "1.0.0-alpha.21",
"bignumber.js": "^9.0.2",
"cross-fetch": "^3.1.5",
"crypto-js": "^4.1.1",
@ -24809,8 +24758,7 @@
"cookie": {
"version": "0.4.2",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==",
"peer": true
"integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
},
"cookie-signature": {
"version": "1.0.6",
@ -24829,9 +24777,9 @@
"dev": true
},
"core-js-compat": {
"version": "3.21.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.0.tgz",
"integrity": "sha512-OSXseNPSK2OPJa6GdtkMz/XxeXx8/CJvfhQWTqd6neuUraujcL4jVsjkLQz1OWnax8xVQJnRPe0V2jqNWORA+A==",
"version": "3.21.1",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.21.1.tgz",
"integrity": "sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==",
"requires": {
"browserslist": "^4.19.1",
"semver": "7.0.0"
@ -24845,9 +24793,9 @@
}
},
"core-js-pure": {
"version": "3.21.0",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.0.tgz",
"integrity": "sha512-VaJUunCZLnxuDbo1rNOzwbet9E1K9joiXS5+DQMPtgxd24wfsZbJZMMfQLGYMlCUvSxLfsRUUhoOR2x28mFfeg==",
"version": "3.21.1",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.21.1.tgz",
"integrity": "sha512-12VZfFIu+wyVbBebyHmRTuEE/tZrB4tJToWcwAMcsp3h4+sHR+fMJWbKpYiCRWlhFBq+KNyO8rIV9rTkeVmznQ==",
"peer": true
},
"core-util-is": {
@ -27615,16 +27563,16 @@
"dev": true
},
"express": {
"version": "4.17.2",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
"integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==",
"version": "4.17.3",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz",
"integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==",
"requires": {
"accepts": "~1.3.7",
"accepts": "~1.3.8",
"array-flatten": "1.1.1",
"body-parser": "1.19.1",
"body-parser": "1.19.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
"cookie": "0.4.1",
"cookie": "0.4.2",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "~1.1.2",
@ -27639,7 +27587,7 @@
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
"qs": "6.9.6",
"qs": "6.9.7",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.17.2",
@ -27651,33 +27599,6 @@
"vary": "~1.1.2"
},
"dependencies": {
"body-parser": {
"version": "1.19.1",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz",
"integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==",
"requires": {
"bytes": "3.1.1",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "~1.1.2",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"on-finished": "~2.3.0",
"qs": "6.9.6",
"raw-body": "2.4.2",
"type-is": "~1.6.18"
}
},
"bytes": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz",
"integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg=="
},
"cookie": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
"integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@ -27692,20 +27613,9 @@
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"qs": {
"version": "6.9.6",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
"integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ=="
},
"raw-body": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
"integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
"requires": {
"bytes": "3.1.1",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
}
"version": "6.9.7",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
"integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw=="
}
}
},
@ -29143,9 +29053,9 @@
"integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A=="
},
"highlightjs-solidity": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.3.tgz",
"integrity": "sha512-tjFm5dtIE61VQBzjlZmkCtY5fLs3CaEABbVuUNyXeW+UuOCsxMg3MsPFy0kCelHP74hPpkoqDejLrbnV1axAIw=="
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/highlightjs-solidity/-/highlightjs-solidity-2.0.4.tgz",
"integrity": "sha512-jsmfDXrjjxt4LxWfzp27j4CX6qYk6B8uK8sxzEDyGts8Ut1IuVlFCysAu6n5RrgHnuEKA+SCIcGPweO7qlPhCg=="
},
"hmac-drbg": {
"version": "1.0.1",

View File

@ -74,7 +74,7 @@
"typescript": "^4.5.5"
},
"dependencies": {
"@oceanprotocol/lib": "^1.0.0-next.20",
"@oceanprotocol/lib": "^1.0.0-next.21",
"cross-fetch": "^3.1.4"
},
"repository": {

View File

@ -167,6 +167,16 @@ type Pool @entity {
shares: [PoolShare!] @derivedFrom(field: "pool")
transactions: [PoolTransaction!] @derivedFrom(field: "pool")
"address of the market where the datatoken was created. This address collects market fees."
publishMarketFeeAddress: String
"fee amount. Fixed value, expressed in wei in contracts, needs conversion in decimals."
publishMarketSwapFee: BigDecimal
"LP fee amount. Fixed value, expressed in wei in contracts, needs conversion in decimals."
liquidityProviderSwapFee: BigDecimal
}
# we will need to track pool share tx between users - bpool transfer tx event
@ -299,6 +309,13 @@ type FixedRateExchange @entity {
createdTimestamp: Int!
tx: String!
block: Int!
"address of the market where the datatoken was created. This address collects market fees."
publishMarketFeeAddress: String
"fee amount. Fixed value, expressed in wei in contracts, needs conversion in decimals."
publishMarketSwapFee: BigDecimal
}
type FixedRateExchangeUpdate @entity {

View File

@ -60,6 +60,8 @@ dataSources:
handler: handleAllowedSwapperChanged
- event: Swapped(indexed bytes32,indexed address,uint256,uint256,address,uint256,uint256,uint256)
handler: handleSwap
- event: PublishMarketFeeChanged(indexed bytes32,address,address,uint256)
handler: handlePublishMarketFeeChanged
- kind: ethereum/contract
name: Dispenser
network: __NETWORK__
@ -141,7 +143,8 @@ templates:
handler: handleNewPaymentCollector
- event: PublishMarketFee(indexed address,indexed address,uint256)
handler: handlePublishMarketFee
- event: PublishMarketFeeChanged(address,address,address,uint256)
handler: handlePublishMarketFeeChanged
- name: BPool
kind: ethereum/contract
network: __NETWORK__
@ -174,6 +177,10 @@ templates:
handler: handleSetup
- event: Transfer(indexed address,indexed address,uint256)
handler: handlerBptTransfer
- event: PublishMarketFeeChanged(address,address,uint256)
handler: handlePublishMarketFeeChanged
- event: SwapFeeChanged(address,uint256)
handler: handleSwapFeeChanged
- name: ERC721Template
kind: ethereum/contract

View File

@ -1,8 +1,10 @@
import { Order } from '../@types/schema'
import { BigInt } from '@graphprotocol/graph-ts'
import {
NewPaymentCollector,
OrderStarted,
PublishMarketFee
PublishMarketFee,
PublishMarketFeeChanged
} from '../@types/templates/ERC20Template/ERC20Template'
import { integer } from './utils/constants'
@ -62,7 +64,29 @@ export function handleOrderStarted(event: OrderStarted): void {
export function handleNewPaymentCollector(event: NewPaymentCollector): void {}
export function handlePublishMarketFee(event: PublishMarketFee): void {}
export function handlePublishMarketFeeChanged(
event: PublishMarketFeeChanged
): void {
const token = getToken(event.address.toHex())
if (token != null) {
token.publishMarketFeeAddress =
event.params.PublishMarketFeeAddress.toHexString()
token.publishMarketFeeToken =
event.params.PublishMarketFeeToken.toHexString()
let decimals = BigInt.fromI32(18).toI32()
if (
token.publishMarketFeeToken !=
'0x0000000000000000000000000000000000000000'
)
decimals = BigInt.fromI32(token.decimals).toI32()
token.publishMarketFeeAmmount = weiToDecimal(
event.params.PublishMarketFeeAmount.toBigDecimal(),
decimals
)
token.save()
// TODO - shold we have a history
}
}
// export function handlePublishMarketFees(event: PublishMarketFees): void {
// const order = Order.load(
// getOrderId(

View File

@ -6,7 +6,8 @@ import {
ExchangeDeactivated,
ExchangeMintStateChanged,
ExchangeRateChanged,
Swapped
Swapped,
PublishMarketFeeChanged
} from '../@types/FixedRateExchange/FixedRateExchange'
import {
FixedRateExchange,
@ -180,3 +181,20 @@ export function handleSwap(event: Swapped): void {
swap.save()
}
export function handlePublishMarketFeeChanged(
event: PublishMarketFeeChanged
): void {
const fixedRateExchange = getFixedRateExchange(
event.params.exchangeId.toHex()
)
if (fixedRateExchange) {
fixedRateExchange.publishMarketFeeAddress =
event.params.newMarketCollector.toHexString()
fixedRateExchange.publishMarketSwapFee = weiToDecimal(
event.params.swapFee.toBigDecimal(),
BigInt.fromI32(18).toI32()
)
fixedRateExchange.save()
}
}

View File

@ -1,8 +1,11 @@
import { BigInt } from '@graphprotocol/graph-ts'
import {
LOG_EXIT,
LOG_JOIN,
LOG_SETUP,
LOG_SWAP
LOG_SWAP,
PublishMarketFeeChanged,
SwapFeeChanged
} from '../@types/templates/BPool/BPool'
import { Transfer } from '../@types/templates/BPool/BToken'
import { integer, PoolTransactionType, ZERO_ADDRESS } from './utils/constants'
@ -284,3 +287,28 @@ export function handlerBptTransfer(event: Transfer): void {
poolTx.save()
poolSnapshot.save()
}
export function handlePublishMarketFeeChanged(
event: PublishMarketFeeChanged
): void {
const pool = getPool(event.address.toHex())
if (pool) {
pool.publishMarketFeeAddress = event.params.newMarketCollector.toHexString()
pool.publishMarketSwapFee = weiToDecimal(
event.params.swapFee.toBigDecimal(),
BigInt.fromI32(18).toI32()
)
pool.save()
}
}
export function handleSwapFeeChanged(event: SwapFeeChanged): void {
const pool = getPool(event.address.toHex())
if (pool) {
pool.liquidityProviderSwapFee = weiToDecimal(
event.params.amount.toBigDecimal(),
BigInt.fromI32(18).toI32()
)
pool.save()
}
}

View File

@ -8,9 +8,9 @@ dataSources:
name: ERC721Factory
network: moonbase
source:
address: '0xEcD0C3519a081e3924D6F3197f86980eA7dfCf71'
address: '0x1Af3CC30fD18af837f7630Aff12aE2b826bD3c5D'
abi: ERC721Factory
startBlock: 1708548
startBlock: 1712628
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -30,9 +30,9 @@ dataSources:
name: FixedRateExchange
network: moonbase
source:
address: '0x0Ee8b03Dafc868a0899ebE1c12d734D53A957250'
address: '0x3EFDD8f728c8e774aB81D14d0B2F07a8238960f4'
abi: FixedRateExchange
startBlock: 1708548
startBlock: 1712628
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -60,13 +60,15 @@ dataSources:
handler: handleAllowedSwapperChanged
- event: Swapped(indexed bytes32,indexed address,uint256,uint256,address,uint256,uint256,uint256)
handler: handleSwap
- event: PublishMarketFeeChanged(indexed bytes32,address,address,uint256)
handler: handlePublishMarketFeeChanged
- kind: ethereum/contract
name: Dispenser
network: moonbase
source:
address: '0x0Ee8b03Dafc868a0899ebE1c12d734D53A957250'
address: '0x3EFDD8f728c8e774aB81D14d0B2F07a8238960f4'
abi: Dispenser
startBlock: 1708548
startBlock: 1712628
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -95,9 +97,9 @@ dataSources:
name: FactoryRouter
network: moonbase
source:
address: '0xA0329eFFa1370eAb1DC5998Db4292ae0F535a282'
address: '0xb28Ab1AaDe4c75F8cF013136fc0c290AeaeA9BA6'
abi: FactoryRouter
startBlock: 1708548
startBlock: 1712628
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -141,7 +143,8 @@ templates:
handler: handleNewPaymentCollector
- event: PublishMarketFee(indexed address,indexed address,uint256)
handler: handlePublishMarketFee
- event: PublishMarketFeeChanged(address,address,address,uint256)
handler: handlePublishMarketFeeChanged
- name: BPool
kind: ethereum/contract
network: moonbase
@ -174,6 +177,10 @@ templates:
handler: handleSetup
- event: Transfer(indexed address,indexed address,uint256)
handler: handlerBptTransfer
- event: PublishMarketFeeChanged(address,address,uint256)
handler: handlePublishMarketFeeChanged
- event: SwapFeeChanged(address,uint256)
handler: handleSwapFeeChanged
- name: ERC721Template
kind: ethereum/contract

View File

@ -8,9 +8,9 @@ dataSources:
name: ERC721Factory
network: mumbai
source:
address: '0x9B9581B3928BFB3f670FE5af1CF58DAfAb509F6b'
address: '0xf02e3163Dc3409D69D88D7AcDA613432E9A18741'
abi: ERC721Factory
startBlock: 24988725
startBlock: 25018956
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -30,9 +30,9 @@ dataSources:
name: FixedRateExchange
network: mumbai
source:
address: '0xA5BB079f8DE82E9B38dD5AE0918f9B1A514beaFA'
address: '0xB219578a03474dDE345AC50B93198E7bf3e2a4BF'
abi: FixedRateExchange
startBlock: 24988725
startBlock: 25018956
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -60,13 +60,15 @@ dataSources:
handler: handleAllowedSwapperChanged
- event: Swapped(indexed bytes32,indexed address,uint256,uint256,address,uint256,uint256,uint256)
handler: handleSwap
- event: PublishMarketFeeChanged(indexed bytes32,address,address,uint256)
handler: handlePublishMarketFeeChanged
- kind: ethereum/contract
name: Dispenser
network: mumbai
source:
address: '0xA5BB079f8DE82E9B38dD5AE0918f9B1A514beaFA'
address: '0xB219578a03474dDE345AC50B93198E7bf3e2a4BF'
abi: Dispenser
startBlock: 24988725
startBlock: 25018956
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -95,9 +97,9 @@ dataSources:
name: FactoryRouter
network: mumbai
source:
address: '0x09c9a4010E106b9673DcD58AB021a2C84457f323'
address: '0xf9FB1f54eA825734E3a77e73A3864f4B46C815d9'
abi: FactoryRouter
startBlock: 24988725
startBlock: 25018956
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -141,7 +143,8 @@ templates:
handler: handleNewPaymentCollector
- event: PublishMarketFee(indexed address,indexed address,uint256)
handler: handlePublishMarketFee
- event: PublishMarketFeeChanged(address,address,address,uint256)
handler: handlePublishMarketFeeChanged
- name: BPool
kind: ethereum/contract
network: mumbai
@ -174,6 +177,10 @@ templates:
handler: handleSetup
- event: Transfer(indexed address,indexed address,uint256)
handler: handlerBptTransfer
- event: PublishMarketFeeChanged(address,address,uint256)
handler: handlePublishMarketFeeChanged
- event: SwapFeeChanged(address,uint256)
handler: handleSwapFeeChanged
- name: ERC721Template
kind: ethereum/contract

View File

@ -8,9 +8,9 @@ dataSources:
name: ERC721Factory
network: rinkeby
source:
address: '0x804D4424C5D991030501112fd473cC8E1196f7B5'
address: '0x1b1FE18bE79249AE8A30b3cEef03d70ca299a75b'
abi: ERC721Factory
startBlock: 10176994
startBlock: 10182337
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -30,9 +30,9 @@ dataSources:
name: FixedRateExchange
network: rinkeby
source:
address: '0x32eC399A16AABcd0ecBcBc5a4fc3A568409a4911'
address: '0x7C4Cb9BCeaB61c99012ECb7Ab1722FbCae7C007d'
abi: FixedRateExchange
startBlock: 10176994
startBlock: 10182337
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -60,13 +60,15 @@ dataSources:
handler: handleAllowedSwapperChanged
- event: Swapped(indexed bytes32,indexed address,uint256,uint256,address,uint256,uint256,uint256)
handler: handleSwap
- event: PublishMarketFeeChanged(indexed bytes32,address,address,uint256)
handler: handlePublishMarketFeeChanged
- kind: ethereum/contract
name: Dispenser
network: rinkeby
source:
address: '0x32eC399A16AABcd0ecBcBc5a4fc3A568409a4911'
address: '0x7C4Cb9BCeaB61c99012ECb7Ab1722FbCae7C007d'
abi: Dispenser
startBlock: 10176994
startBlock: 10182337
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -95,9 +97,9 @@ dataSources:
name: FactoryRouter
network: rinkeby
source:
address: '0x25aF54F0979Aa4aAa53865C8D413048F6C96ce86'
address: '0x6CE85a8B9dF0aEbd6deE3593d4E9cde7398ff842'
abi: FactoryRouter
startBlock: 10176994
startBlock: 10182337
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -141,7 +143,8 @@ templates:
handler: handleNewPaymentCollector
- event: PublishMarketFee(indexed address,indexed address,uint256)
handler: handlePublishMarketFee
- event: PublishMarketFeeChanged(address,address,address,uint256)
handler: handlePublishMarketFeeChanged
- name: BPool
kind: ethereum/contract
network: rinkeby
@ -174,6 +177,10 @@ templates:
handler: handleSetup
- event: Transfer(indexed address,indexed address,uint256)
handler: handlerBptTransfer
- event: PublishMarketFeeChanged(address,address,uint256)
handler: handlePublishMarketFeeChanged
- event: SwapFeeChanged(address,uint256)
handler: handleSwapFeeChanged
- name: ERC721Template
kind: ethereum/contract

View File

@ -8,9 +8,9 @@ dataSources:
name: ERC721Factory
network: ropsten
source:
address: '0xf9FB1f54eA825734E3a77e73A3864f4B46C815d9'
address: '0x5D7a9F0c8E9E9af5674DEE832Cc97FC425b655Bc'
abi: ERC721Factory
startBlock: 11973964
startBlock: 11978747
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -30,9 +30,9 @@ dataSources:
name: FixedRateExchange
network: ropsten
source:
address: '0x8e1c4335E38710C36a5AF59A5d4222286aEA07Df'
address: '0x292f3108Fe22BaF215133fEc6Ad1a99312daC8E5'
abi: FixedRateExchange
startBlock: 11973964
startBlock: 11978747
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -60,13 +60,15 @@ dataSources:
handler: handleAllowedSwapperChanged
- event: Swapped(indexed bytes32,indexed address,uint256,uint256,address,uint256,uint256,uint256)
handler: handleSwap
- event: PublishMarketFeeChanged(indexed bytes32,address,address,uint256)
handler: handlePublishMarketFeeChanged
- kind: ethereum/contract
name: Dispenser
network: ropsten
source:
address: '0x8e1c4335E38710C36a5AF59A5d4222286aEA07Df'
address: '0x292f3108Fe22BaF215133fEc6Ad1a99312daC8E5'
abi: Dispenser
startBlock: 11973964
startBlock: 11978747
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -95,9 +97,9 @@ dataSources:
name: FactoryRouter
network: ropsten
source:
address: '0x153bE7bbcf91a6E2c5D30c78E6f6c3Bce7D1B046'
address: '0x9CF7215De4D862497CEdc86012EB3177044C523A'
abi: FactoryRouter
startBlock: 11973964
startBlock: 11978747
mapping:
kind: ethereum/events
apiVersion: 0.0.6
@ -141,7 +143,8 @@ templates:
handler: handleNewPaymentCollector
- event: PublishMarketFee(indexed address,indexed address,uint256)
handler: handlePublishMarketFee
- event: PublishMarketFeeChanged(address,address,address,uint256)
handler: handlePublishMarketFeeChanged
- name: BPool
kind: ethereum/contract
network: ropsten
@ -174,6 +177,10 @@ templates:
handler: handleSetup
- event: Transfer(indexed address,indexed address,uint256)
handler: handlerBptTransfer
- event: PublishMarketFeeChanged(address,address,uint256)
handler: handlePublishMarketFeeChanged
- event: SwapFeeChanged(address,uint256)
handler: handleSwapFeeChanged
- name: ERC721Template
kind: ethereum/contract

View File

@ -60,6 +60,8 @@ dataSources:
handler: handleAllowedSwapperChanged
- event: Swapped(indexed bytes32,indexed address,uint256,uint256,address,uint256,uint256,uint256)
handler: handleSwap
- event: PublishMarketFeeChanged(indexed bytes32,address,address,uint256)
handler: handlePublishMarketFeeChanged
- kind: ethereum/contract
name: Dispenser
network: development
@ -141,7 +143,8 @@ templates:
handler: handleNewPaymentCollector
- event: PublishMarketFee(indexed address,indexed address,uint256)
handler: handlePublishMarketFee
- event: PublishMarketFeeChanged(address,address,address,uint256)
handler: handlePublishMarketFeeChanged
- name: BPool
kind: ethereum/contract
network: development
@ -174,6 +177,10 @@ templates:
handler: handleSetup
- event: Transfer(indexed address,indexed address,uint256)
handler: handlerBptTransfer
- event: PublishMarketFeeChanged(address,address,uint256)
handler: handlePublishMarketFeeChanged
- event: SwapFeeChanged(address,uint256)
handler: handleSwapFeeChanged
- name: ERC721Template
kind: ethereum/contract