mirror of
https://github.com/oceanprotocol-archive/squid-js.git
synced 2024-02-02 15:31:51 +01:00
66 lines
1.9 KiB
TypeScript
66 lines
1.9 KiB
TypeScript
import { assert, expect, spy, use } from 'chai'
|
|
import spies from 'chai-spies'
|
|
import Web3 from 'web3'
|
|
import config from '../../config'
|
|
|
|
import { Ocean } from '../../../src/ocean/Ocean'
|
|
|
|
use(spies)
|
|
|
|
describe('SignatureUtils', () => {
|
|
const publicKey = `0x${'a'.repeat(40)}`
|
|
const text = '0123456789abcde'
|
|
const signature = `0x${'a'.repeat(130)}`
|
|
let web3: Web3
|
|
let ocean: Ocean
|
|
|
|
before(async () => {
|
|
ocean = await Ocean.getInstance(config)
|
|
web3 = (ocean as any).web3
|
|
})
|
|
|
|
afterEach(() => {
|
|
spy.restore()
|
|
})
|
|
|
|
describe('#signText', () => {
|
|
let personalSignSpy
|
|
|
|
beforeEach(() => {
|
|
personalSignSpy = spy.on(web3.eth.personal, 'sign', () => signature)
|
|
})
|
|
|
|
it('should sign a text as expected', async () => {
|
|
const signed = await ocean.utils.signature.signText(text, publicKey)
|
|
|
|
assert.equal(signed, signature)
|
|
expect(personalSignSpy).to.have.been.called.with(text, publicKey)
|
|
})
|
|
|
|
it('should sign a text as expected using password', async () => {
|
|
const signed = await ocean.utils.signature.signText(text, publicKey, 'test')
|
|
|
|
assert.equal(signed, signature)
|
|
expect(personalSignSpy).to.have.been.called.with(text, publicKey, 'test')
|
|
})
|
|
})
|
|
|
|
describe('#verifyText', () => {
|
|
it('should recover the privateKey of a signed message', async () => {
|
|
const personalRecoverSpy = spy.on(
|
|
web3.eth.personal,
|
|
'ecRecover',
|
|
() => publicKey
|
|
)
|
|
|
|
const verifiedPublicKey = await ocean.utils.signature.verifyText(
|
|
text,
|
|
signature
|
|
)
|
|
|
|
assert.equal(publicKey, verifiedPublicKey)
|
|
expect(personalRecoverSpy).to.have.been.called.with(text, signature)
|
|
})
|
|
})
|
|
})
|