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

Merge pull request #311 from oceanprotocol/fix/lzma

replace lzma library
This commit is contained in:
Matthias Kretschmann 2020-09-25 15:55:43 +02:00 committed by GitHub
commit f5e7014477
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 14 deletions

6
package-lock.json generated
View File

@ -10335,9 +10335,9 @@
}, },
"dependencies": { "dependencies": {
"@types/node": { "@types/node": {
"version": "12.12.59", "version": "12.12.62",
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.59.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.62.tgz",
"integrity": "sha512-D2MISWfv2j17aFBAkMD3lQ97vYpXCkAJMJf0mx2eKHNkzXA6Vo9w7A7BWi9fH8sOH1zeFb7fIhOo22z0TtrSag==" "integrity": "sha512-qAfo81CsD7yQIM9mVyh6B/U47li5g7cfpVQEDMfQeF8pSZVwzbhwU3crc0qG4DmpsebpJPR49AKOExQyJ05Cpg=="
} }
} }
}, },

View File

@ -5,7 +5,10 @@ import { AbiItem } from 'web3-utils/types'
import Web3 from 'web3' import Web3 from 'web3'
import defaultDDOContractABI from '@oceanprotocol/contracts/artifacts/Metadata.json' import defaultDDOContractABI from '@oceanprotocol/contracts/artifacts/Metadata.json'
import { didZeroX } from '../utils' import { didZeroX } from '../utils'
import { LZMA } from 'lzma'
// Using limited, compress-only version
// See https://github.com/LZMA-JS/LZMA-JS#but-i-dont-want-to-use-web-workers
import { LZMA } from 'lzma/src/lzma-c'
/** /**
* Provides an interface with Metadata Store. * Provides an interface with Metadata Store.
@ -34,17 +37,16 @@ export class OnChainMetadataStore {
) )
} }
/** Compress DDO using LZMA /**
* * Compress DDO using xz/lzma2
*/ */
public async LZMACompressDDO(ddo: DDO): Promise<any> {
public async compressDDO(ddo: DDO): Promise<string> {
const data = DDO.serialize(ddo) const data = DDO.serialize(ddo)
const lzma = new LZMA()
// see https://github.com/LZMA-JS/LZMA-JS/issues/44 // see https://github.com/LZMA-JS/LZMA-JS/issues/44
lzma.disableEndMark = true LZMA.disableEndMark = true
let compressed = lzma.compress(data, 9) const compressed = LZMA.compress(data, 9)
compressed = this.getHex(compressed) return this.getHex(compressed)
return compressed
} }
/** /**
@ -60,7 +62,7 @@ export class OnChainMetadataStore {
consumerAccount: string consumerAccount: string
): Promise<TransactionReceipt> { ): Promise<TransactionReceipt> {
let flags = 0 let flags = 0
const compressed = await this.LZMACompressDDO(ddo) const compressed = await this.compressDDO(ddo)
flags = flags | 1 flags = flags | 1
return this.publishRaw(didZeroX(did), flags, compressed, consumerAccount) return this.publishRaw(didZeroX(did), flags, compressed, consumerAccount)
} }
@ -78,7 +80,7 @@ export class OnChainMetadataStore {
consumerAccount: string consumerAccount: string
): Promise<TransactionReceipt> { ): Promise<TransactionReceipt> {
let flags = 0 let flags = 0
const compressed = await this.LZMACompressDDO(ddo) const compressed = await this.compressDDO(ddo)
flags = flags | 1 flags = flags | 1
return this.updateRaw(didZeroX(did), flags, compressed, consumerAccount) return this.updateRaw(didZeroX(did), flags, compressed, consumerAccount)
} }