1
0
mirror of https://github.com/oceanprotocol/ocean.js.git synced 2024-11-26 20:39:05 +01:00

fixed dispenser create unit test wip updated contracts

This commit is contained in:
Bogdan Fazakas 2021-11-24 18:18:21 +02:00
parent 86a996184f
commit 54e198c30a
14 changed files with 292 additions and 267 deletions

345
package-lock.json generated
View File

@ -10,7 +10,7 @@
"license": "Apache-2.0",
"dependencies": {
"@ethereum-navigator/navigator": "^0.5.3",
"@oceanprotocol/contracts": "github:oceanprotocol/contracts#v4main",
"@oceanprotocol/contracts": "github:oceanprotocol/contracts#v4main_postaudit",
"cross-fetch": "^3.1.4",
"crypto-js": "^4.0.0",
"decimal.js": "^10.2.1",
@ -2102,9 +2102,9 @@
}
},
"node_modules/@ethereumjs/blockchain": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.0.tgz",
"integrity": "sha512-879YVmWbM8OUKLVj+OuEZ+sZFkQOnXYGeak5oi7O1hOjaRv//je+fK2axGP04cbttu7sPCp41zy7O6xw4cut8A==",
"version": "5.5.1",
"resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.1.tgz",
"integrity": "sha512-JS2jeKxl3tlaa5oXrZ8mGoVBCz6YqsGG350XVNtHAtNZXKk7pU3rH4xzF2ru42fksMMqzFLzKh9l4EQzmNWDqA==",
"peer": true,
"dependencies": {
"@ethereumjs/block": "^3.6.0",
@ -3051,7 +3051,7 @@
"node_modules/@oceanprotocol/contracts": {
"name": "hardhat-project",
"version": "v1.0.0-alpha.1",
"resolved": "git+ssh://git@github.com/oceanprotocol/contracts.git#c1bea5033dfc9071105a11b63ce86d8e8f612b7b",
"resolved": "git+ssh://git@github.com/oceanprotocol/contracts.git#f72642e81064777242625f7a1b31af92a925f292",
"dependencies": {
"@balancer-labs/v2-pool-utils": "^1.0.0",
"@openzeppelin/contracts": "^4.2.0",
@ -3217,9 +3217,9 @@
}
},
"node_modules/@openzeppelin/contracts": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.2.tgz",
"integrity": "sha512-AybF1cesONZStg5kWf6ao9OlqTZuPqddvprc0ky7lrUVOjXeKpmQ2Y9FK+6ygxasb+4aic4O5pneFBfwVsRRRg=="
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz",
"integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g=="
},
"node_modules/@openzeppelin/test-helpers": {
"version": "0.5.15",
@ -3550,9 +3550,9 @@
"integrity": "sha512-BFo/nyxwhoHqPrqBQA1EAmSxeNnspGLiOCMa9pAL7WYSjyNBlrHaqCMO/F2O87G+NUK/u06E70DiSP2BFP0ZZw=="
},
"node_modules/@truffle/codec": {
"version": "0.11.18",
"resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.11.18.tgz",
"integrity": "sha512-OCsKQHOBAmjr+9DypTkTxWYqHmCd388astUvC+ycwlmAqGKIYy2GzpOIX4pX7YX0q/g2iuixEMCTlF440YiNMA==",
"version": "0.11.19",
"resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.11.19.tgz",
"integrity": "sha512-ZxsfRWBE4wcQ01NCpMWH6VRJ/q3mGTl3ku8ln+WJ2P6McIMsS37imO3d8N9NWiQ49klc9kJfT3mKnOVMLTJhIg==",
"dependencies": {
"@truffle/abi-utils": "^0.2.4",
"@truffle/compile-common": "^0.7.22",
@ -3651,14 +3651,14 @@
}
},
"node_modules/@truffle/contract": {
"version": "4.3.39",
"resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.3.39.tgz",
"integrity": "sha512-ZBCrFUWaTtOvKlJw2J2bDwaBghGDvb5AeVU1WxHvwLnzGqCHzIE6dhZixItdFQgbuZ2gJAxzFQVT38miiK7ufA==",
"version": "4.3.42",
"resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.3.42.tgz",
"integrity": "sha512-CWbKz3L6ldAoh0JX14nNzOyXxWsLiGX5PYpswrwOy0Uk4JYpbVtpSzoQxJbnDTfLUciowfCdG/4QMZ+zo2WVqA==",
"dependencies": {
"@ensdomains/ensjs": "^2.0.1",
"@truffle/blockchain-utils": "^0.0.31",
"@truffle/contract-schema": "^3.4.3",
"@truffle/debug-utils": "^5.1.19",
"@truffle/debug-utils": "^6.0.0",
"@truffle/error": "^0.0.14",
"@truffle/interface-adapter": "^0.5.8",
"bignumber.js": "^7.2.1",
@ -4146,16 +4146,16 @@
}
},
"node_modules/@truffle/debug-utils": {
"version": "5.1.19",
"resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-5.1.19.tgz",
"integrity": "sha512-MWk2DszA6Alme1r4SrWu7BZgz7RNf1TsxdJuSToSltGiJE7DDwV+qsfQ+AGY/PoLKPTQ2xW/sd23BQheA+W9qA==",
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.0.tgz",
"integrity": "sha512-MoN8aQQX2DLLEMMlfF+8ZFtjh0FJsPYwuI4NDcn7upoORe/QoRHeypIhQgaepOXBKwIXW0mplBkAk/nm+cQp8A==",
"dependencies": {
"@truffle/codec": "^0.11.18",
"@truffle/codec": "^0.11.19",
"@trufflesuite/chromafi": "^2.2.2",
"bn.js": "^5.1.3",
"chalk": "^2.4.2",
"debug": "^4.3.1",
"highlightjs-solidity": "^2.0.1"
"highlightjs-solidity": "^2.0.2"
}
},
"node_modules/@truffle/debug-utils/node_modules/bn.js": {
@ -7175,7 +7175,6 @@
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@ -7186,7 +7185,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"engines": {
"node": ">=8"
}
@ -7195,7 +7193,6 @@
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
@ -11284,104 +11281,7 @@
"bundleDependencies": [
"source-map-support",
"yargs",
"ethereumjs-util",
"@types/bn.js",
"@types/node",
"@types/pbkdf2",
"@types/secp256k1",
"ansi-regex",
"ansi-styles",
"base-x",
"blakejs",
"bn.js",
"brorand",
"browserify-aes",
"bs58",
"bs58check",
"buffer-from",
"buffer-xor",
"camelcase",
"cipher-base",
"cliui",
"color-convert",
"color-name",
"create-hash",
"create-hmac",
"cross-spawn",
"decamelize",
"elliptic",
"emoji-regex",
"end-of-stream",
"ethereum-cryptography",
"ethjs-util",
"evp_bytestokey",
"execa",
"find-up",
"get-caller-file",
"get-stream",
"hash-base",
"hash.js",
"hmac-drbg",
"inherits",
"invert-kv",
"is-fullwidth-code-point",
"is-hex-prefixed",
"is-stream",
"isexe",
"keccak",
"lcid",
"locate-path",
"map-age-cleaner",
"md5.js",
"mem",
"mimic-fn",
"minimalistic-assert",
"minimalistic-crypto-utils",
"nice-try",
"node-addon-api",
"node-gyp-build",
"npm-run-path",
"once",
"os-locale",
"p-defer",
"p-finally",
"p-is-promise",
"p-limit",
"p-locate",
"p-try",
"path-exists",
"path-key",
"pbkdf2",
"pump",
"randombytes",
"readable-stream",
"require-directory",
"require-main-filename",
"ripemd160",
"rlp",
"safe-buffer",
"scrypt-js",
"secp256k1",
"semver",
"set-blocking",
"setimmediate",
"sha.js",
"shebang-command",
"shebang-regex",
"signal-exit",
"source-map",
"string_decoder",
"string-width",
"strip-ansi",
"strip-eof",
"strip-hex-prefix",
"util-deprecate",
"which",
"which-module",
"wrap-ansi",
"wrappy",
"y18n",
"yargs-parser"
"ethereumjs-util"
],
"dependencies": {
"ethereumjs-util": "6.2.1",
@ -12787,6 +12687,7 @@
"version": "2.5.4",
"resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-2.5.4.tgz",
"integrity": "sha512-aCMBwp8q/4wrW4QLsF/HYBOSA7TpLKmkVwP3pYQNkEEseW2Rr8Z5Uxc9/h6HX+OG3tuHo+2bINVSihIeBfym6A==",
"deprecated": "Deprecated in favor of '@metamask/eth-sig-util'",
"peer": true,
"dependencies": {
"ethereumjs-abi": "0.6.8",
@ -13384,9 +13285,9 @@
}
},
"node_modules/hardhat/node_modules/ws": {
"version": "7.5.5",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz",
"integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==",
"version": "7.5.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
"integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
"peer": true,
"engines": {
"node": ">=8.3.0"
@ -17633,9 +17534,9 @@
}
},
"node_modules/obliterator": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.0.tgz",
"integrity": "sha512-DJaXYKqe9Rs7c2+Xu08Knkt8P60rTeByyy7IWoXLqyc6ln9ph9NAo6ZbiylDpAshsygzBr81pZL5q6/dqi0RtQ==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.1.tgz",
"integrity": "sha512-XnkiCrrBcIZQitJPAI36mrrpEUvatbte8hLcTcQwKA1v9NkCKasSi+UAguLsLDs/out7MoRzAlmz7VXvY6ph6w==",
"peer": true
},
"node_modules/oboe": {
@ -19426,13 +19327,13 @@
}
},
"node_modules/raw-body": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz",
"integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==",
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
"integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
"peer": true,
"dependencies": {
"bytes": "3.1.0",
"http-errors": "1.7.3",
"bytes": "3.1.1",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
@ -19440,6 +19341,46 @@
"node": ">= 0.8"
}
},
"node_modules/raw-body/node_modules/bytes": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz",
"integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==",
"peer": true,
"engines": {
"node": ">= 0.8"
}
},
"node_modules/raw-body/node_modules/http-errors": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
"integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
"peer": true,
"dependencies": {
"depd": "~1.1.2",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
"statuses": ">= 1.5.0 < 2",
"toidentifier": "1.0.1"
},
"engines": {
"node": ">= 0.6"
}
},
"node_modules/raw-body/node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
"peer": true
},
"node_modules/raw-body/node_modules/toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"peer": true,
"engines": {
"node": ">=0.6"
}
},
"node_modules/rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@ -21396,9 +21337,9 @@
}
},
"node_modules/spdx-license-ids": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz",
"integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA=="
"version": "3.0.11",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz",
"integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g=="
},
"node_modules/split-on-first": {
"version": "1.1.0",
@ -25449,7 +25390,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@ -25466,7 +25406,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true,
"engines": {
"node": ">=8"
}
@ -25475,7 +25414,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@ -25490,7 +25428,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
@ -25501,14 +25438,12 @@
"node_modules/wrap-ansi/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/wrap-ansi/node_modules/strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"dependencies": {
"ansi-regex": "^5.0.1"
},
@ -25654,7 +25589,6 @@
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true,
"engines": {
"node": ">=10"
}
@ -25685,7 +25619,6 @@
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
"dependencies": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
@ -25703,7 +25636,6 @@
"version": "20.2.4",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
"dev": true,
"engines": {
"node": ">=10"
}
@ -27240,9 +27172,9 @@
}
},
"@ethereumjs/blockchain": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.0.tgz",
"integrity": "sha512-879YVmWbM8OUKLVj+OuEZ+sZFkQOnXYGeak5oi7O1hOjaRv//je+fK2axGP04cbttu7sPCp41zy7O6xw4cut8A==",
"version": "5.5.1",
"resolved": "https://registry.npmjs.org/@ethereumjs/blockchain/-/blockchain-5.5.1.tgz",
"integrity": "sha512-JS2jeKxl3tlaa5oXrZ8mGoVBCz6YqsGG350XVNtHAtNZXKk7pU3rH4xzF2ru42fksMMqzFLzKh9l4EQzmNWDqA==",
"peer": true,
"requires": {
"@ethereumjs/block": "^3.6.0",
@ -27855,8 +27787,8 @@
}
},
"@oceanprotocol/contracts": {
"version": "git+ssh://git@github.com/oceanprotocol/contracts.git#c1bea5033dfc9071105a11b63ce86d8e8f612b7b",
"from": "@oceanprotocol/contracts@github:oceanprotocol/contracts#v4main",
"version": "git+ssh://git@github.com/oceanprotocol/contracts.git#f72642e81064777242625f7a1b31af92a925f292",
"from": "@oceanprotocol/contracts@github:oceanprotocol/contracts#v4main_postaudit",
"requires": {
"@balancer-labs/v2-pool-utils": "^1.0.0",
"@openzeppelin/contracts": "^4.2.0",
@ -28013,9 +27945,9 @@
}
},
"@openzeppelin/contracts": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.2.tgz",
"integrity": "sha512-AybF1cesONZStg5kWf6ao9OlqTZuPqddvprc0ky7lrUVOjXeKpmQ2Y9FK+6ygxasb+4aic4O5pneFBfwVsRRRg=="
"version": "4.3.3",
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.3.3.tgz",
"integrity": "sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g=="
},
"@openzeppelin/test-helpers": {
"version": "0.5.15",
@ -28290,9 +28222,9 @@
"integrity": "sha512-BFo/nyxwhoHqPrqBQA1EAmSxeNnspGLiOCMa9pAL7WYSjyNBlrHaqCMO/F2O87G+NUK/u06E70DiSP2BFP0ZZw=="
},
"@truffle/codec": {
"version": "0.11.18",
"resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.11.18.tgz",
"integrity": "sha512-OCsKQHOBAmjr+9DypTkTxWYqHmCd388astUvC+ycwlmAqGKIYy2GzpOIX4pX7YX0q/g2iuixEMCTlF440YiNMA==",
"version": "0.11.19",
"resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.11.19.tgz",
"integrity": "sha512-ZxsfRWBE4wcQ01NCpMWH6VRJ/q3mGTl3ku8ln+WJ2P6McIMsS37imO3d8N9NWiQ49klc9kJfT3mKnOVMLTJhIg==",
"requires": {
"@truffle/abi-utils": "^0.2.4",
"@truffle/compile-common": "^0.7.22",
@ -28385,14 +28317,14 @@
}
},
"@truffle/contract": {
"version": "4.3.39",
"resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.3.39.tgz",
"integrity": "sha512-ZBCrFUWaTtOvKlJw2J2bDwaBghGDvb5AeVU1WxHvwLnzGqCHzIE6dhZixItdFQgbuZ2gJAxzFQVT38miiK7ufA==",
"version": "4.3.42",
"resolved": "https://registry.npmjs.org/@truffle/contract/-/contract-4.3.42.tgz",
"integrity": "sha512-CWbKz3L6ldAoh0JX14nNzOyXxWsLiGX5PYpswrwOy0Uk4JYpbVtpSzoQxJbnDTfLUciowfCdG/4QMZ+zo2WVqA==",
"requires": {
"@ensdomains/ensjs": "^2.0.1",
"@truffle/blockchain-utils": "^0.0.31",
"@truffle/contract-schema": "^3.4.3",
"@truffle/debug-utils": "^5.1.19",
"@truffle/debug-utils": "^6.0.0",
"@truffle/error": "^0.0.14",
"@truffle/interface-adapter": "^0.5.8",
"bignumber.js": "^7.2.1",
@ -28793,16 +28725,16 @@
}
},
"@truffle/debug-utils": {
"version": "5.1.19",
"resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-5.1.19.tgz",
"integrity": "sha512-MWk2DszA6Alme1r4SrWu7BZgz7RNf1TsxdJuSToSltGiJE7DDwV+qsfQ+AGY/PoLKPTQ2xW/sd23BQheA+W9qA==",
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@truffle/debug-utils/-/debug-utils-6.0.0.tgz",
"integrity": "sha512-MoN8aQQX2DLLEMMlfF+8ZFtjh0FJsPYwuI4NDcn7upoORe/QoRHeypIhQgaepOXBKwIXW0mplBkAk/nm+cQp8A==",
"requires": {
"@truffle/codec": "^0.11.18",
"@truffle/codec": "^0.11.19",
"@trufflesuite/chromafi": "^2.2.2",
"bn.js": "^5.1.3",
"chalk": "^2.4.2",
"debug": "^4.3.1",
"highlightjs-solidity": "^2.0.1"
"highlightjs-solidity": "^2.0.2"
},
"dependencies": {
"bn.js": {
@ -31248,7 +31180,6 @@
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
"dev": true,
"requires": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@ -31258,14 +31189,12 @@
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.1"
}
@ -36039,9 +35968,9 @@
}
},
"ws": {
"version": "7.5.5",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.5.tgz",
"integrity": "sha512-BAkMFcAzl8as1G/hArkxOxq3G7pjUqQ3gzYbLL0/5zNkph70e+lCoxBGnm6AW1+/aiNeV4fnKqZ8m4GZewmH2w==",
"version": "7.5.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
"integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
"peer": true,
"requires": {}
},
@ -39361,9 +39290,9 @@
}
},
"obliterator": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.0.tgz",
"integrity": "sha512-DJaXYKqe9Rs7c2+Xu08Knkt8P60rTeByyy7IWoXLqyc6ln9ph9NAo6ZbiylDpAshsygzBr81pZL5q6/dqi0RtQ==",
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/obliterator/-/obliterator-2.0.1.tgz",
"integrity": "sha512-XnkiCrrBcIZQitJPAI36mrrpEUvatbte8hLcTcQwKA1v9NkCKasSi+UAguLsLDs/out7MoRzAlmz7VXvY6ph6w==",
"peer": true
},
"oboe": {
@ -40641,15 +40570,48 @@
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz",
"integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==",
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
"integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
"peer": true,
"requires": {
"bytes": "3.1.0",
"http-errors": "1.7.3",
"bytes": "3.1.1",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
"dependencies": {
"bytes": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz",
"integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg==",
"peer": true
},
"http-errors": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz",
"integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==",
"peer": true,
"requires": {
"depd": "~1.1.2",
"inherits": "2.0.4",
"setprototypeof": "1.2.0",
"statuses": ">= 1.5.0 < 2",
"toidentifier": "1.0.1"
}
},
"setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
"peer": true
},
"toidentifier": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"peer": true
}
}
},
"rc": {
@ -42219,9 +42181,9 @@
}
},
"spdx-license-ids": {
"version": "3.0.10",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz",
"integrity": "sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA=="
"version": "3.0.11",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz",
"integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g=="
},
"split-on-first": {
"version": "1.1.0",
@ -45474,7 +45436,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dev": true,
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@ -45484,14 +45445,12 @@
"ansi-regex": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
@ -45500,7 +45459,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
@ -45508,14 +45466,12 @@
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
"integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.1"
}
@ -45642,8 +45598,7 @@
"y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
},
"yaeti": {
"version": "0.0.6",
@ -45665,7 +45620,6 @@
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dev": true,
"requires": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
@ -45679,8 +45633,7 @@
"yargs-parser": {
"version": "20.2.4",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
"dev": true
"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA=="
},
"yargs-unparser": {
"version": "2.0.0",

View File

@ -30,6 +30,7 @@
"test:dispenser": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/pools/dispenser/Dispenser.test.ts'",
"test:dt": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/Datatoken.test.ts'",
"test:nftDt": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/NFTDatatoken.test.ts'",
"test:factory": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/NFTFactory.test.ts'",
"test:router": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/pools/Router.test.ts'",
"test:unit": "mocha --config=test/unit/.mocharc.json --node-env=test --exit 'test/unit/**/*.test.ts'",
"test:unit:cover": "nyc --report-dir coverage/unit npm run test:unit",
@ -52,7 +53,7 @@
},
"dependencies": {
"@ethereum-navigator/navigator": "^0.5.3",
"@oceanprotocol/contracts": "github:oceanprotocol/contracts#v4main",
"@oceanprotocol/contracts": "github:oceanprotocol/contracts#v4main_postaudit",
"cross-fetch": "^3.1.4",
"crypto-js": "^4.0.0",
"decimal.js": "^10.2.1",

View File

@ -13,7 +13,7 @@ import { FreOrderParams, FreCreationParams } from '../interfaces'
*/
interface Roles {
minter: boolean
feeManager: boolean
paymentManager: boolean
}
export interface OrderParams {
@ -338,6 +338,8 @@ export class Datatoken {
dtContract
)
console.log('dispenserParams', dispenserParams)
// Call createFixedRate contract method
const trxReceipt = await dtContract.methods
.createDispenser(
@ -526,14 +528,14 @@ export class Datatoken {
* Estimate gas for addFeeManager method
* @param {String} dtAddress Datatoken address
* @param {String} address User address
* @param {String} feeManager User which is going to be a Minter
* @param {String} paymentManager User which is going to be a Minter
* @param {Contract} contractInstance optional contract instance
* @return {Promise<any>}
*/
public async estGasAddFeeManager(
public async estGasAddPaymentManager(
dtAddress: string,
address: string,
feeManager: string,
paymentManager: string,
contractInstance?: Contract
): Promise<any> {
const dtContract =
@ -544,7 +546,7 @@ export class Datatoken {
let estGas
try {
estGas = await dtContract.methods
.addFeeManager(feeManager)
.addFeeManager(paymentManager)
.estimateGas({ from: address }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
estGas = gasLimitDefault
@ -554,31 +556,31 @@ export class Datatoken {
}
/**
* Add FeeManager for an ERC20 datatoken
* Add addPaymentManager for an ERC20 datatoken
* only ERC20Deployer can succeed
* @param {String} dtAddress Datatoken address
* @param {String} address User address
* @param {String} feeManager User which is going to be a Minter
* @param {String} paymentManager User which is going to be a Minter
* @return {Promise<TransactionReceipt>} transactionId
*/
public async addFeeManager(
public async addPaymentManager(
dtAddress: string,
address: string,
feeManager: string
paymentManager: string
): Promise<TransactionReceipt> {
const dtContract = new this.web3.eth.Contract(this.datatokensABI, dtAddress)
// should check ERC20Deployer role using erc721 level ..
const estGas = await this.estGasAddFeeManager(
const estGas = await this.estGasAddPaymentManager(
dtAddress,
address,
feeManager,
paymentManager,
dtContract
)
// Call addFeeManager function of the contract
const trxReceipt = await dtContract.methods.addFeeManager(feeManager).send({
// Call addPaymentManager function of the contract
const trxReceipt = await dtContract.methods.addPaymentManager(paymentManager).send({
from: address,
gas: estGas + 1,
gasPrice: await getFairGasPrice(this.web3)
@ -692,7 +694,7 @@ export class Datatoken {
feeCollector: string
): Promise<TransactionReceipt> {
const dtContract = new this.web3.eth.Contract(this.datatokensABI, dtAddress)
if ((await this.getDTPermissions(dtAddress, address)).feeManager !== true) {
if ((await this.getDTPermissions(dtAddress, address)).paymentManager !== true) {
throw new Error(`Caller is not Fee Manager`)
}
@ -1187,6 +1189,16 @@ export class Datatoken {
return decimals
}
/** It returns the token decimals, how many supported decimal points
* @param {String} dtAddress Datatoken adress
* @return {Promise<number>}
*/
public async getNFTAddress(dtAddress: string): Promise<string> {
const dtContract = new this.web3.eth.Contract(this.datatokensABI, dtAddress)
const nftAddress = await dtContract.methods.getERC721Address().call()
return nftAddress
}
/**
* Get Address Balance for datatoken
* @param {String} dtAddress Datatoken adress

View File

@ -32,7 +32,7 @@ export interface NFTCreateData {
name: string
symbol: string
templateIndex: number
baseURI: string
tokenURI: string
}
/**
@ -84,7 +84,7 @@ export class NFTFactory {
nftData.symbol,
nftData.templateIndex,
'0x0000000000000000000000000000000000000000',
nftData.baseURI
nftData.tokenURI
)
.estimateGas({ from: address }, (err, estGas) => (err ? gasLimitDefault : estGas))
} catch (e) {
@ -117,7 +117,7 @@ export class NFTFactory {
nftData.symbol,
nftData.templateIndex,
'0x0000000000000000000000000000000000000000',
nftData.baseURI
nftData.tokenURI
)
.send({
from: address,

View File

@ -13,3 +13,8 @@ export interface PoolCreationParams {
swapFeeLiquidityProvider: number
swapFeeMarketPlaceRunner: number
}
export interface CurrentFees {
tokens: string[]
amounts: string[]
}

View File

@ -8,6 +8,7 @@ import PoolTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/bal
import defaultPool from '@oceanprotocol/contracts/artifacts/contracts/pools/FactoryRouter.sol/FactoryRouter.json'
import defaultERC20ABI from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20Template.sol/ERC20Template.json'
import Decimal from 'decimal.js'
import { CurrentFees } from '../../interfaces'
const BN = require('bn.js')
const MaxUint256 =
@ -511,6 +512,34 @@ export class Pool {
return weight
}
/**
* Get Community Get the current amount of fees which can be withdrawned by the Market
* @return {CurrentFees}
*/
async getCurrentMarketFees(poolAddress: string): Promise<CurrentFees> {
const pool = new this.web3.eth.Contract(this.poolABI, poolAddress)
try {
const currentMarketFees = await pool.methods.getCurrentOPFFees().call()
return currentMarketFees
} catch (e) {
this.logger.error(`ERROR: Failed to get community fees for a token: ${e.message}`)
}
}
/**
* Get getCurrentOPFFees Get the current amount of fees which can be withdrawned by OPF
* @return {CurrentFees}
*/
async getCurrentOPFFees(poolAddress: string): Promise<CurrentFees> {
const pool = new this.web3.eth.Contract(this.poolABI, poolAddress)
try {
const currentMarketFees = await pool.methods.getCurrentOPFFees().call()
return currentMarketFees
} catch (e) {
this.logger.error(`ERROR: Failed to get community fees for a token: ${e.message}`)
}
}
/**
* Get Community Fees available to be collected for a specific token
* @param {String} poolAddress

View File

@ -13,7 +13,7 @@ import OPFCollector from '@oceanprotocol/contracts/artifacts/contracts/community
import MockERC20 from '@oceanprotocol/contracts/artifacts/contracts/utils/mock/MockERC20Decimals.sol/MockERC20Decimals.json'
import { TestContractHandler } from '../TestContractHandler'
import { NFTFactory } from '../../src/factories/NFTFactory'
import { NFTFactory, NFTCreateData } from '../../src/factories/NFTFactory'
import {
Datatoken,
NFTDatatoken,
@ -88,11 +88,11 @@ describe('Datatoken', () => {
web3,
ERC721Factory.abi as AbiItem[]
)
const nftData = {
const nftData: NFTCreateData = {
name: nftName,
symbol: nftSymbol,
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
nftAddress = await nftFactory.createNFT(nftOwner, nftData)
@ -336,6 +336,11 @@ describe('Datatoken', () => {
)
})
it('#getERC721Address - should succeed to get the parent ERC721 address', async () => {
const address = await datatoken.getNFTAddress(datatokenAddress)
assert(address, 'Not able to get the parent ERC721 address')
})
it('#setData - should set a value into 725Y standard, if nftDatatoken has ERC20Deployer permission', async () => {
const data = web3.utils.asciiToHex('SomeData')

View File

@ -13,7 +13,7 @@ import OPFCollector from '@oceanprotocol/contracts/artifacts/contracts/community
import MockERC20 from '@oceanprotocol/contracts/artifacts/contracts/utils/mock/MockERC20Decimals.sol/MockERC20Decimals.json'
import { TestContractHandler } from '../TestContractHandler'
import { NFTFactory } from '../../src/factories/NFTFactory'
import { NFTFactory, NFTCreateData } from '../../src/factories/NFTFactory'
import { NFTDatatoken } from '../../src/datatokens/NFTDatatoken'
import { AbiItem } from 'web3-utils'
import { LoggerInstance } from '../../src/utils'
@ -72,11 +72,11 @@ describe('NFTDatatoken', () => {
web3,
ERC721Factory.abi as AbiItem[]
)
const nftData = {
const nftData: NFTCreateData = {
name: nftName,
symbol: nftSymbol,
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
nftAddress = await nftFactory.createNFT(nftOwner, nftData)

View File

@ -178,7 +178,7 @@ describe('NFT Factory test', () => {
name: '72120Bundle',
symbol: '72Bundle',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
const ercParams: Erc20CreateParams = {
@ -214,7 +214,7 @@ describe('NFT Factory test', () => {
name: '72120Bundle',
symbol: '72Bundle',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
const ercParams: Erc20CreateParams = {
@ -264,7 +264,7 @@ describe('NFT Factory test', () => {
name: '72120Bundle',
symbol: '72Bundle',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
const ercParams: Erc20CreateParams = {

View File

@ -178,7 +178,7 @@ describe('Router unit test', () => {
name: '72120Bundle',
symbol: '72Bundle',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
const ercParams: Erc20CreateParams = {
@ -231,7 +231,7 @@ describe('Router unit test', () => {
name: '72120Bundle2',
symbol: '72Bundle2',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft2/'
tokenURI: 'https://oceanprotocol.com/nft2/'
}
const ercParams2: Erc20CreateParams = {

View File

@ -17,7 +17,11 @@ import OPFCollector from '@oceanprotocol/contracts/artifacts/contracts/community
import { LoggerInstance } from '../../../../src/utils'
import { NFTFactory, NFTCreateData } from '../../../../src/factories/NFTFactory'
import { Pool } from '../../../../src/pools/balancer/Pool'
import { PoolCreationParams, Erc20CreateParams } from '../../../../src/interfaces'
import {
PoolCreationParams,
Erc20CreateParams,
CurrentFees
} from '../../../../src/interfaces'
const { keccak256 } = require('@ethersproject/keccak256')
const web3 = new Web3('http://127.0.0.1:8545')
const communityCollector = '0xeE9300b7961e0a01d9f0adb863C7A227A07AaD75'
@ -136,7 +140,7 @@ describe('Pool unit test', () => {
name: '72120Bundle',
symbol: '72Bundle',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
const ercParams: Erc20CreateParams = {
@ -579,7 +583,7 @@ describe('Pool unit test', () => {
name: '72120Bundle',
symbol: '72Bundle',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
const ercParams: Erc20CreateParams = {
@ -1052,6 +1056,18 @@ describe('Pool unit test', () => {
assert((await pool.getOPFCollector(poolAddress)) === contracts.opfCollectorAddress)
})
it('#getCurrentMarketFees- should get curent market fees for each token', async () => {
const currentMarketFees: CurrentFees = await pool.getCurrentMarketFees(poolAddress)
console.log('currentMarketFees == ', currentMarketFees)
assert(currentMarketFees !== null)
})
it('#getCurrentOPFFees- should get curent market fees for each token', async () => {
const curentOPFFees: CurrentFees = await pool.getCurrentOPFFees(poolAddress)
console.log('curentOPFFees == ', curentOPFFees)
assert(curentOPFFees !== null)
})
it('#collectCommunityFee- should get community fees for each token', async () => {
const spotPriceBefore = await pool.getSpotPrice(
poolAddress,

View File

@ -12,7 +12,7 @@ import MockERC20 from '@oceanprotocol/contracts/artifacts/contracts/utils/mock/M
import PoolTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/balancer/BPool.sol/BPool.json'
import OPFCollector from '@oceanprotocol/contracts/artifacts/contracts/communityFee/OPFCommunityFeeCollector.sol/OPFCommunityFeeCollector.json'
import { NFTFactory, NFTCreateData } from '../../../../src/factories/'
import { Datatoken } from '../../../../src/datatokens/'
import { Datatoken, DispenserParams } from '../../../../src/datatokens/'
import { Dispenser } from '../../../../src/pools/dispenser/'
import { TestContractHandler } from '../../../TestContractHandler'
import { Erc20CreateParams } from '../../../../src/interfaces'
@ -82,7 +82,7 @@ describe('Dispenser flow', () => {
name: '72120Bundle',
symbol: '72Bundle',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
const ercParams: Erc20CreateParams = {
@ -117,12 +117,16 @@ describe('Dispenser flow', () => {
})
it('Create dispenser', async () => {
const tx = await DispenserClass.create(
const dispenserParams: DispenserParams = {
maxTokens: '1',
maxBalance: '1',
withMint: true
}
const tx = await datatoken.createDispenser(
dtAddress,
contracts.accounts[0],
'1',
'1',
'0x0000000000000000000000000000000000000000'
contracts.dispenserAddress,
dispenserParams
)
assert(tx, 'Cannot create dispenser')
})
@ -135,40 +139,40 @@ describe('Dispenser flow', () => {
it('user2 gets the dispenser status', async () => {
const status = await DispenserClass.status(dtAddress)
assert(status.active === true, 'Dispenser not active')
assert(status.owner === user2, 'Dispenser owner is not alice')
assert(status.owner === contracts.accounts[0], 'Dispenser owner is not alice')
assert(status.minterApproved === true, 'Dispenser is not a minter')
})
it('user2 deactivates the dispenser', async () => {
const tx = await DispenserClass.deactivate(dtAddress, user2)
assert(tx, 'Cannot deactivate dispenser')
const status = await DispenserClass.status(dtAddress)
assert(status.active === false, 'Dispenser is still active')
})
// it('user2 deactivates the dispenser', async () => {
// const tx = await DispenserClass.deactivate(dtAddress, user2)
// assert(tx, 'Cannot deactivate dispenser')
// const status = await DispenserClass.status(dtAddress)
// assert(status.active === false, 'Dispenser is still active')
// })
it('user2 sets user3 as an AllowedSwapper for the dispenser', async () => {
const tx = await DispenserClass.setAllowedSwapper(dtAddress, user2, user3)
assert(tx, 'Cannot deactivate dispenser')
const status = await DispenserClass.status(dtAddress)
assert(status.allowedSwapper === user3, 'Dispenser is still active')
})
// it('user2 sets user3 as an AllowedSwapper for the dispenser', async () => {
// const tx = await DispenserClass.setAllowedSwapper(dtAddress, user2, user3)
// assert(tx, 'Cannot deactivate dispenser')
// const status = await DispenserClass.status(dtAddress)
// assert(status.allowedSwapper === user3, 'Dispenser is still active')
// })
it('User3 requests datatokens', async () => {
const check = await DispenserClass.isDispensable(dtAddress, datatoken, user3, '1')
assert(check === true, 'isDispensable should return true')
const tx = await DispenserClass.dispense(dtAddress, user3, '1', user3)
assert(tx, 'user3 failed to get 1DT')
})
// it('User3 requests datatokens', async () => {
// const check = await DispenserClass.isDispensable(dtAddress, datatoken, user3, '1')
// assert(check === true, 'isDispensable should return true')
// const tx = await DispenserClass.dispense(dtAddress, user3, '1', user3)
// assert(tx, 'user3 failed to get 1DT')
// })
it('tries to withdraw all datatokens', async () => {
const tx = await DispenserClass.ownerWithdraw(dtAddress, user3)
assert(tx === null, 'Request should fail')
})
// it('tries to withdraw all datatokens', async () => {
// const tx = await DispenserClass.ownerWithdraw(dtAddress, user3)
// assert(tx === null, 'Request should fail')
// })
it('user2 withdraws all datatokens', async () => {
const tx = await DispenserClass.ownerWithdraw(dtAddress, user2)
assert(tx, 'user2 failed to withdraw all her tokens')
const status = await DispenserClass.status(dtAddress)
assert(status.balance === '0', 'Balance > 0')
})
// it('user2 withdraws all datatokens', async () => {
// const tx = await DispenserClass.ownerWithdraw(dtAddress, user2)
// assert(tx, 'user2 failed to withdraw all her tokens')
// const status = await DispenserClass.status(dtAddress)
// assert(status.balance === '0', 'Balance > 0')
// })
})

View File

@ -111,7 +111,7 @@ describe('Fixed Rate unit test', () => {
name: '72120Bundle',
symbol: '72Bundle',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
const ercParams: Erc20CreateParams = {
@ -439,7 +439,7 @@ describe('Fixed Rate unit test', () => {
name: '72120Bundle',
symbol: '72Bundle',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
const ercParams: Erc20CreateParams = {

View File

@ -141,7 +141,7 @@ describe('SideStaking unit test', () => {
name: '72120Bundle',
symbol: '72Bundle',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
const ercParams: Erc20CreateParams = {
@ -420,7 +420,7 @@ describe('SideStaking unit test', () => {
name: '72120Bundle',
symbol: '72Bundle',
templateIndex: 1,
baseURI: 'https://oceanprotocol.com/nft/'
tokenURI: 'https://oceanprotocol.com/nft/'
}
const ercParams: Erc20CreateParams = {