mirror of
https://github.com/oceanprotocol/ocean.js.git
synced 2024-11-26 20:39:05 +01:00
update startorder fees and tests
This commit is contained in:
parent
8c90f8dec9
commit
722113f176
138
package-lock.json
generated
138
package-lock.json
generated
@ -14,13 +14,14 @@
|
||||
"cross-fetch": "^3.1.4",
|
||||
"crypto-js": "^4.0.0",
|
||||
"decimal.js": "^10.2.1",
|
||||
"ethereumjs-util": "^7.1.3",
|
||||
"fs": "0.0.1-security",
|
||||
"lzma": "^2.3.2",
|
||||
"node-abort-controller": "^2.0.0",
|
||||
"save-file": "^2.3.1",
|
||||
"underscore": "^1.13.1",
|
||||
"uuid": "^8.3.2",
|
||||
"web3": "^1.6.1",
|
||||
"web3": ">=1.3.5",
|
||||
"web3-core": "^1.6.1",
|
||||
"web3-eth-contract": "^1.6.1"
|
||||
},
|
||||
@ -7130,6 +7131,7 @@
|
||||
"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",
|
||||
@ -7140,6 +7142,7 @@
|
||||
"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"
|
||||
}
|
||||
@ -7148,6 +7151,7 @@
|
||||
"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"
|
||||
},
|
||||
@ -11227,7 +11231,104 @@
|
||||
"bundleDependencies": [
|
||||
"source-map-support",
|
||||
"yargs",
|
||||
"ethereumjs-util"
|
||||
"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"
|
||||
],
|
||||
"dependencies": {
|
||||
"ethereumjs-util": "6.2.1",
|
||||
@ -25364,6 +25465,7 @@
|
||||
"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",
|
||||
@ -25380,6 +25482,7 @@
|
||||
"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"
|
||||
}
|
||||
@ -25388,6 +25491,7 @@
|
||||
"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"
|
||||
},
|
||||
@ -25402,6 +25506,7 @@
|
||||
"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"
|
||||
},
|
||||
@ -25412,12 +25517,14 @@
|
||||
"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=="
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"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"
|
||||
},
|
||||
@ -25563,6 +25670,7 @@
|
||||
"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"
|
||||
}
|
||||
@ -25593,6 +25701,7 @@
|
||||
"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",
|
||||
@ -25610,6 +25719,7 @@
|
||||
"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"
|
||||
}
|
||||
@ -31109,6 +31219,7 @@
|
||||
"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",
|
||||
@ -31118,12 +31229,14 @@
|
||||
"ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"dev": true
|
||||
},
|
||||
"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"
|
||||
}
|
||||
@ -45334,6 +45447,7 @@
|
||||
"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",
|
||||
@ -45343,12 +45457,14 @@
|
||||
"ansi-regex": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
|
||||
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
|
||||
"dev": true
|
||||
},
|
||||
"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"
|
||||
}
|
||||
@ -45357,6 +45473,7 @@
|
||||
"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"
|
||||
}
|
||||
@ -45364,12 +45481,14 @@
|
||||
"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=="
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"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"
|
||||
}
|
||||
@ -45496,7 +45615,8 @@
|
||||
"y18n": {
|
||||
"version": "5.0.8",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
||||
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
|
||||
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
|
||||
"dev": true
|
||||
},
|
||||
"yaeti": {
|
||||
"version": "0.0.6",
|
||||
@ -45518,6 +45638,7 @@
|
||||
"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",
|
||||
@ -45531,7 +45652,8 @@
|
||||
"yargs-parser": {
|
||||
"version": "20.2.4",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
|
||||
"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA=="
|
||||
"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
|
||||
"dev": true
|
||||
},
|
||||
"yargs-unparser": {
|
||||
"version": "2.0.0",
|
||||
|
@ -57,6 +57,7 @@
|
||||
"cross-fetch": "^3.1.4",
|
||||
"crypto-js": "^4.0.0",
|
||||
"decimal.js": "^10.2.1",
|
||||
"ethereumjs-util": "^7.1.3",
|
||||
"fs": "0.0.1-security",
|
||||
"lzma": "^2.3.2",
|
||||
"node-abort-controller": "^2.0.0",
|
||||
|
@ -26,11 +26,14 @@ interface Template {
|
||||
export interface TokenOrder {
|
||||
tokenAddress: string
|
||||
consumer: string
|
||||
amount: string | number
|
||||
serviceIndex: number
|
||||
providerFeeAddress: string
|
||||
providerFeeToken: string
|
||||
providerFeeAmount: string
|
||||
v: number // v of provider signed message
|
||||
r: string // r of provider signed message
|
||||
s: string // s of provider signed message
|
||||
providerDatas: string // data encoded by provider
|
||||
}
|
||||
|
||||
export interface NftCreateData {
|
||||
@ -553,7 +556,7 @@ export class NftFactory {
|
||||
if (templateIndex === 0) {
|
||||
throw new Error(`Template index cannot be ZERO`)
|
||||
}
|
||||
if ((await this.getNFTTemplate(templateIndex)).isActive === true) {
|
||||
if ((await this.getTokenTemplate(templateIndex)).isActive === true) {
|
||||
throw new Error(`Template is already active`)
|
||||
}
|
||||
|
||||
|
@ -18,11 +18,14 @@ interface Roles {
|
||||
|
||||
export interface OrderParams {
|
||||
consumer: string
|
||||
amount: string
|
||||
serviceIndex: number
|
||||
providerFeeAddress: string
|
||||
providerFeeToken: string
|
||||
providerFeeAmount: string
|
||||
v: number // v of provider signed message
|
||||
r: string // r of provider signed message
|
||||
s: string // s of provider signed message
|
||||
providerDatas: string // data encoded by provider
|
||||
}
|
||||
|
||||
export interface DispenserParams {
|
||||
@ -833,11 +836,14 @@ export class Datatoken {
|
||||
* @param {String} dtAddress Datatoken address
|
||||
* @param {String} address User address which calls
|
||||
* @param {String} consumer Consumer Address
|
||||
* @param {String} amount Amount of tokens that is going to be transfered
|
||||
* @param {Number} serviceIndex Service index in the metadata
|
||||
* @param {String} providerFeeAddress Consume marketplace fee address
|
||||
* @param {String} providerFeeToken address of the token marketplace wants to add fee on top
|
||||
* @param {String} providerFeeAmount amount of feeToken to be transferred to mpFeeAddress on top, will be converted to WEI
|
||||
* @param {String} v // v of provider signed message
|
||||
* @param {String} r // r of provider signed message
|
||||
* @param {String} s // s of provider signed message
|
||||
* @param {String} providerData // data encoded by provider
|
||||
* @param {Contract} contractInstance optional contract instance
|
||||
* @return {Promise<any>}
|
||||
*/
|
||||
@ -845,11 +851,14 @@ export class Datatoken {
|
||||
dtAddress: string,
|
||||
address: string,
|
||||
consumer: string,
|
||||
amount: string,
|
||||
serviceIndex: number,
|
||||
providerFeeAddress: string,
|
||||
providerFeeToken: string,
|
||||
providerFeeAmount: string,
|
||||
v: number,
|
||||
r: string,
|
||||
s: string,
|
||||
providerDatas: string,
|
||||
contractInstance?: Contract
|
||||
): Promise<any> {
|
||||
const dtContract =
|
||||
@ -862,11 +871,14 @@ export class Datatoken {
|
||||
estGas = await dtContract.methods
|
||||
.startOrder(
|
||||
consumer,
|
||||
this.web3.utils.toWei(amount),
|
||||
serviceIndex,
|
||||
providerFeeAddress,
|
||||
providerFeeToken,
|
||||
this.web3.utils.toWei(providerFeeAmount)
|
||||
this.web3.utils.toWei(providerFeeAmount),
|
||||
v,
|
||||
r,
|
||||
s,
|
||||
providerDatas
|
||||
)
|
||||
.estimateGas({ from: address }, (err, estGas) => (err ? gasLimitDefault : estGas))
|
||||
} catch (e) {
|
||||
@ -879,23 +891,28 @@ export class Datatoken {
|
||||
* @param {String} dtAddress Datatoken address
|
||||
* @param {String} address User address which calls
|
||||
* @param {String} consumer Consumer Address
|
||||
* @param {String} amount Amount of tokens that is going to be transfered
|
||||
* @param {Number} serviceIndex Service index in the metadata
|
||||
* @param {String} providerFeeAddress Consume marketplace fee address
|
||||
* @param {String} providerFeeToken address of the token marketplace wants to add fee on top
|
||||
* @param {String} providerFeeAmount amount of feeToken to be transferred to mpFeeAddress on top, will be converted to WEI
|
||||
|
||||
* @param {String} v // v of provider signed message
|
||||
* @param {String} r // r of provider signed message
|
||||
* @param {String} s // s of provider signed message
|
||||
* @param {String} providerData // data encoded by provider
|
||||
* @return {Promise<TransactionReceipt>} string
|
||||
*/
|
||||
public async startOrder(
|
||||
dtAddress: string,
|
||||
address: string,
|
||||
consumer: string,
|
||||
amount: string,
|
||||
serviceIndex: number,
|
||||
providerFeeAddress: string,
|
||||
providerFeeToken: string,
|
||||
providerFeeAmount: string
|
||||
providerFeeAmount: string,
|
||||
v: number,
|
||||
r: string,
|
||||
s: string,
|
||||
providerDatas: string
|
||||
): Promise<TransactionReceipt> {
|
||||
const dtContract = new this.web3.eth.Contract(this.datatokensAbi, dtAddress)
|
||||
if (!providerFeeAddress)
|
||||
@ -906,22 +923,28 @@ export class Datatoken {
|
||||
dtAddress,
|
||||
address,
|
||||
consumer,
|
||||
amount,
|
||||
serviceIndex,
|
||||
providerFeeAddress,
|
||||
providerFeeToken,
|
||||
providerFeeAmount,
|
||||
v,
|
||||
r,
|
||||
s,
|
||||
providerDatas,
|
||||
dtContract
|
||||
)
|
||||
|
||||
const trxReceipt = await dtContract.methods
|
||||
.startOrder(
|
||||
consumer,
|
||||
this.web3.utils.toWei(amount),
|
||||
serviceIndex,
|
||||
providerFeeAddress,
|
||||
providerFeeToken,
|
||||
this.web3.utils.toWei(providerFeeAmount)
|
||||
this.web3.utils.toWei(providerFeeAmount),
|
||||
v,
|
||||
r,
|
||||
s,
|
||||
providerDatas
|
||||
)
|
||||
.send({
|
||||
from: address,
|
||||
|
@ -2,6 +2,7 @@ import { assert, expect } from 'chai'
|
||||
import { AbiItem } from 'web3-utils/types'
|
||||
import { TestContractHandler } from '../TestContractHandler'
|
||||
import Web3 from 'web3'
|
||||
import { ecsign } from 'ethereumjs-util'
|
||||
import ERC721Factory from '@oceanprotocol/contracts/artifacts/contracts/ERC721Factory.sol/ERC721Factory.json'
|
||||
import ERC721Template from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC721Template.sol/ERC721Template.json'
|
||||
import SideStaking from '@oceanprotocol/contracts/artifacts/contracts/pools/ssContracts/SideStaking.sol/SideStaking.json'
|
||||
@ -20,6 +21,13 @@ import {
|
||||
import { ZERO_ADDRESS } from '../../src/utils'
|
||||
|
||||
const web3 = new Web3('http://127.0.0.1:8545')
|
||||
function signMessage(message, privateKey) {
|
||||
const { v, r, s } = ecsign(
|
||||
Buffer.from(message.slice(2), 'hex'),
|
||||
Buffer.from(privateKey, 'hex')
|
||||
)
|
||||
return { v, r, s }
|
||||
}
|
||||
|
||||
describe('Nft Factory test', () => {
|
||||
let factoryOwner: string
|
||||
@ -375,24 +383,42 @@ describe('Nft Factory test', () => {
|
||||
expect(await dtContract.methods.balanceOf(user2).call()).to.equal(dtAmount)
|
||||
expect(await dtContract2.methods.balanceOf(user2).call()).to.equal(dtAmount)
|
||||
|
||||
const providerData = JSON.stringify({ timeout: 0 })
|
||||
const message = web3.utils.soliditySha3(
|
||||
{ t: 'bytes', v: web3.utils.toHex(web3.utils.asciiToHex(providerData)) },
|
||||
{ t: 'address', v: user3 },
|
||||
{ t: 'address', v: '0x0000000000000000000000000000000000000000' },
|
||||
{ t: 'uint256', v: '1' }
|
||||
)
|
||||
const signedMessage = signMessage(
|
||||
message,
|
||||
'7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6'
|
||||
)
|
||||
console.log('signedMessage', signedMessage)
|
||||
const orders: TokenOrder[] = [
|
||||
{
|
||||
tokenAddress: dtAddress,
|
||||
consumer: consumer,
|
||||
amount: dtAmount,
|
||||
serviceIndex: serviceIndex,
|
||||
providerFeeAddress: consumeFeeAddress,
|
||||
providerFeeToken: consumeFeeToken,
|
||||
providerFeeAmount: consumeFeeAmount
|
||||
providerFeeAmount: consumeFeeAmount,
|
||||
v: signedMessage.v,
|
||||
r: signedMessage.r.toString(),
|
||||
s: signedMessage.s.toString(),
|
||||
providerDatas: web3.utils.toHex(web3.utils.asciiToHex(providerData))
|
||||
},
|
||||
{
|
||||
tokenAddress: dtAddress2,
|
||||
consumer: consumer,
|
||||
amount: dtAmount,
|
||||
serviceIndex: serviceIndex,
|
||||
providerFeeAddress: consumeFeeAddress,
|
||||
providerFeeToken: consumeFeeToken,
|
||||
providerFeeAmount: consumeFeeAmount
|
||||
providerFeeAmount: consumeFeeAmount,
|
||||
v: signedMessage.v,
|
||||
r: signedMessage.r.toString(),
|
||||
s: signedMessage.s.toString(),
|
||||
providerDatas: web3.utils.toHex(web3.utils.asciiToHex(providerData))
|
||||
}
|
||||
]
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
import { assert } from 'chai'
|
||||
import Web3 from 'web3'
|
||||
import { ecsign } from 'ethereumjs-util'
|
||||
import ERC20TemplateEnterprise from '@oceanprotocol/contracts/artifacts/contracts/templates/ERC20TemplateEnterprise.sol/ERC20TemplateEnterprise.json'
|
||||
import PoolTemplate from '@oceanprotocol/contracts/artifacts/contracts/pools/balancer/BPool.sol/BPool.json'
|
||||
import ERC721Factory from '@oceanprotocol/contracts/artifacts/contracts/ERC721Factory.sol/ERC721Factory.json'
|
||||
@ -19,6 +20,14 @@ import { FreCreationParams, FreOrderParams } from '../../../src/interfaces'
|
||||
|
||||
const web3 = new Web3('http://127.0.0.1:8545')
|
||||
|
||||
function signMessage(message, privateKey) {
|
||||
const { v, r, s } = ecsign(
|
||||
Buffer.from(message.slice(2), 'hex'),
|
||||
Buffer.from(privateKey, 'hex')
|
||||
)
|
||||
return { v, r, s }
|
||||
}
|
||||
|
||||
describe('Datatoken', () => {
|
||||
let nftOwner: string
|
||||
let user1: string
|
||||
@ -340,15 +349,30 @@ describe('Datatoken', () => {
|
||||
'User2 does not hold 0 datatokens'
|
||||
)
|
||||
|
||||
const providerData = JSON.stringify({ timeout: 0 })
|
||||
const message = web3.utils.soliditySha3(
|
||||
{ t: 'bytes', v: web3.utils.toHex(web3.utils.asciiToHex(providerData)) },
|
||||
{ t: 'address', v: user3 },
|
||||
{ t: 'address', v: '0x0000000000000000000000000000000000000000' },
|
||||
{ t: 'uint256', v: '1' }
|
||||
)
|
||||
const signedMessage = signMessage(
|
||||
message,
|
||||
'7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6'
|
||||
)
|
||||
|
||||
const order = await datatoken.startOrder(
|
||||
datatokenAddress,
|
||||
user1,
|
||||
user2,
|
||||
'1',
|
||||
1,
|
||||
user3,
|
||||
'0x0000000000000000000000000000000000000000',
|
||||
'0'
|
||||
'0',
|
||||
signedMessage.v,
|
||||
signedMessage.r.toString(),
|
||||
signedMessage.s.toString(),
|
||||
web3.utils.toHex(web3.utils.asciiToHex(providerData))
|
||||
)
|
||||
assert(order !== null)
|
||||
|
||||
@ -366,13 +390,28 @@ describe('Datatoken', () => {
|
||||
})
|
||||
|
||||
it('#buyFromDispenserAndOrder- Enterprise method', async () => {
|
||||
const providerData = JSON.stringify({ timeout: 0 })
|
||||
const message = web3.utils.soliditySha3(
|
||||
{ t: 'bytes', v: web3.utils.toHex(web3.utils.asciiToHex(providerData)) },
|
||||
{ t: 'address', v: user3 },
|
||||
{ t: 'address', v: '0x0000000000000000000000000000000000000000' },
|
||||
{ t: 'uint256', v: '1' }
|
||||
)
|
||||
const signedMessage = signMessage(
|
||||
message,
|
||||
'7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6'
|
||||
)
|
||||
|
||||
const order: OrderParams = {
|
||||
consumer: user1,
|
||||
amount: '1',
|
||||
serviceIndex: 1,
|
||||
providerFeeAddress: user1,
|
||||
providerFeeToken: '0x0000000000000000000000000000000000000000',
|
||||
providerFeeAmount: '0'
|
||||
providerFeeAmount: '0',
|
||||
v: signedMessage.v,
|
||||
r: signedMessage.r.toString(),
|
||||
s: signedMessage.s.toString(),
|
||||
providerDatas: web3.utils.toHex(web3.utils.asciiToHex(providerData))
|
||||
}
|
||||
|
||||
const buyFromDispenseTx = await datatoken.buyFromDispenserAndOrder(
|
||||
@ -385,13 +424,28 @@ describe('Datatoken', () => {
|
||||
})
|
||||
|
||||
it('#buyFromFreAndOrder - Enterprise method ', async () => {
|
||||
const providerData = JSON.stringify({ timeout: 0 })
|
||||
const message = web3.utils.soliditySha3(
|
||||
{ t: 'bytes', v: web3.utils.toHex(web3.utils.asciiToHex(providerData)) },
|
||||
{ t: 'address', v: user3 },
|
||||
{ t: 'address', v: '0x0000000000000000000000000000000000000000' },
|
||||
{ t: 'uint256', v: '1' }
|
||||
)
|
||||
const signedMessage = signMessage(
|
||||
message,
|
||||
'7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6'
|
||||
)
|
||||
|
||||
const order: OrderParams = {
|
||||
consumer: user1,
|
||||
amount: '1',
|
||||
serviceIndex: 1,
|
||||
providerFeeAddress: user1,
|
||||
providerFeeToken: '0x0000000000000000000000000000000000000000',
|
||||
providerFeeAmount: '0'
|
||||
providerFeeAmount: '0',
|
||||
v: signedMessage.v,
|
||||
r: signedMessage.r.toString(),
|
||||
s: signedMessage.s.toString(),
|
||||
providerDatas: web3.utils.toHex(web3.utils.asciiToHex(providerData))
|
||||
}
|
||||
|
||||
const fre: FreOrderParams = {
|
||||
|
@ -13,7 +13,6 @@ import { TestContractHandler } from '../../TestContractHandler'
|
||||
import { NftFactory, NftCreateData } from '../../../src/factories/NFTFactory'
|
||||
import { Nft } from '../../../src/tokens/NFT'
|
||||
import { AbiItem } from 'web3-utils'
|
||||
const constants = require('../../helpers/constants')
|
||||
|
||||
const web3 = new Web3('http://127.0.0.1:8545')
|
||||
|
||||
@ -333,9 +332,9 @@ describe('NFT', () => {
|
||||
const metaDataDecryptorUrl = 'http://myprovider:8030'
|
||||
const metaDataDecryptorAddress = '0x123'
|
||||
const metaDataState = 1
|
||||
const data = web3.utils.asciiToHex(constants.blob[0])
|
||||
const dataHash = web3.utils.asciiToHex(constants.blob[0])
|
||||
const flags = web3.utils.asciiToHex(constants.blob[0])
|
||||
const data = web3.utils.asciiToHex(user2)
|
||||
const dataHash = web3.utils.asciiToHex(user2)
|
||||
const flags = web3.utils.asciiToHex(user2)
|
||||
assert(
|
||||
(await nftDatatoken.getNftPermissions(nftAddress, user1)).updateMetadata === true
|
||||
)
|
||||
@ -359,9 +358,9 @@ describe('NFT', () => {
|
||||
const metaDataDecryptorUrl = 'http://myprovider:8030'
|
||||
const metaDataDecryptorAddress = '0x123'
|
||||
const metaDataState = 1
|
||||
const data = web3.utils.asciiToHex(constants.blob[0])
|
||||
const dataHash = web3.utils.asciiToHex(constants.blob[0])
|
||||
const flags = web3.utils.asciiToHex(constants.blob[0])
|
||||
const data = web3.utils.asciiToHex(user2)
|
||||
const dataHash = web3.utils.asciiToHex(user2)
|
||||
const flags = web3.utils.asciiToHex(user2)
|
||||
assert(
|
||||
(await nftDatatoken.getNftPermissions(nftAddress, user3)).updateMetadata === false
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user