Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v16.10.0
v16.13.1
26 changes: 13 additions & 13 deletions packages/smartcontracts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
"@openzeppelin/hardhat-upgrades": "^1.12.0",
"debug": "^4.3.1",
"eth-ens-namehash": "^2.0.8",
"eth-sig-util": "^2.5.4",
"ethers": "^5.1.4",
"event-stream": "^4.0.1",
"hardhat": "^2.2.1",
Expand All @@ -56,32 +55,33 @@
"hardhat-typechain": "^0.3.5"
},
"devDependencies": {
"solc": "0.8.6",
"solidity-coverage": "^0.7.17",
"typechain": "^4.0.3",
"solhint": "^3.3.4",
"ts-mocha": "9.0.2",
"eslint": "^7.32.0",
"mocha": "9.2.0",
"@types/chai": "^4.2.22",
"@typescript-eslint/eslint-plugin": "^4.22.1",
"@typescript-eslint/parser": "^4.22.1",
"chai": "^4.3.4",
"chai-bignumber": "^3.0.0",
"@metamask/eth-sig-util": "^4.0.0",
"@nomiclabs/hardhat-ethers": "^2.0.2",
"@typechain/ethers-v5": "^6.0.5",
"@types/chai": "^4.2.22",
"@types/debug": "^4.1.7",
"@types/mocha": "^9.1.0",
"@types/node": "^15.0.1",
"@typescript-eslint/eslint-plugin": "^4.22.1",
"@typescript-eslint/parser": "^4.22.1",
"bignumber.js": "^9.0.1",
"chai": "^4.3.4",
"chai-bignumber": "^3.0.0",
"eslint": "^7.32.0",
"eslint-config-airbnb-base": "^14.2.1",
"eslint-config-streamr-nodejs": "2.0.1",
"eslint-plugin-chai-friendly": "^0.6.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-promise": "^4.2.1",
"ethereum-waffle": "^3.3.0",
"mocha": "9.2.0",
"solc": "0.8.6",
"solhint": "^3.3.4",
"solidity-coverage": "^0.7.17",
"ts-generator": "^0.1.1",
"ts-mocha": "9.0.2",
"ts-node": "^9.1.1",
"typechain": "^4.0.3",
"typescript": "^4.2.4"
}
}
99 changes: 52 additions & 47 deletions packages/smartcontracts/test/StreamRegistry.test.ts
Original file line number Diff line number Diff line change
@@ -1,16 +1,12 @@
import { waffle, upgrades, ethers } from 'hardhat'
import { expect, use } from 'chai'
import { BigNumber, utils, Wallet } from 'ethers'
import { signTypedData, SignTypedDataVersion, TypedMessage } from '@metamask/eth-sig-util'

// import StreamRegistryJson from '../artifacts/contracts/StreamRegistry/StreamRegistry.sol/StreamRegistry.json'
// import ENSMockJson from '../artifacts/contracts/StreamRegistry/StreamRegistry.sol/StreamRegistry.json'
// import { ENSMock } from '../typechain/StreamRegistry'
import ForwarderJson from '../test-contracts/MinimalForwarder.json'
import type { MinimalForwarder } from '../test-contracts/MinimalForwarder'
import type { StreamRegistry } from '../typechain/StreamRegistry'

const ethSigUtil = require('eth-sig-util')

const { deployContract } = waffle
const { provider } = waffle

Expand Down Expand Up @@ -669,20 +665,23 @@ describe('StreamRegistry', (): void => {
nonce: (await minimalForwarderFromUser0.getNonce(adminAdress)).toString(),
data
}
const sign = ethSigUtil.signTypedMessage(utils.arrayify(wallets[0].privateKey), // user0
{
data: {
types,
domain: {
name: 'MinimalForwarder',
version: '0.0.1',
chainId: (await provider.getNetwork()).chainId,
verifyingContract: minimalForwarderFromUser0.address,
},
primaryType: 'ForwardRequest',
message: req
}
})
const d: TypedMessage<any> = {
types,
domain: {
name: 'MinimalForwarder',
version: '0.0.1',
chainId: (await provider.getNetwork()).chainId,
verifyingContract: minimalForwarderFromUser0.address,
},
primaryType: 'ForwardRequest',
message: req,
}
const options = {
data: d,
privateKey: utils.arrayify(wallets[0].privateKey) as Buffer,
version: SignTypedDataVersion.V4,
}
const sign = signTypedData(options) // user0

const res = await minimalForwarderFromUser0.verify(req, sign)
await expect(res).to.be.true
Expand All @@ -706,20 +705,23 @@ describe('StreamRegistry', (): void => {
data
}
// signing with user1 (walletindex 2)
const sign = ethSigUtil.signTypedMessage(utils.arrayify(wallets[2].privateKey), // user0
{
data: {
types,
domain: {
name: 'MinimalForwarder',
version: '0.0.1',
chainId: (await provider.getNetwork()).chainId,
verifyingContract: minimalForwarderFromUser0.address,
},
primaryType: 'ForwardRequest',
message: req
}
})
const d: TypedMessage<any> = {
types,
domain: {
name: 'MinimalForwarder',
version: '0.0.1',
chainId: (await provider.getNetwork()).chainId,
verifyingContract: minimalForwarderFromUser0.address,
},
primaryType: 'ForwardRequest',
message: req,
}
const options = {
data: d,
privateKey: utils.arrayify(wallets[2].privateKey) as Buffer,
version: SignTypedDataVersion.V4,
}
const sign = signTypedData(options) // user0

const res = await minimalForwarderFromUser0.verify(req, sign)
await expect(res).to.be.false
Expand All @@ -740,20 +742,23 @@ describe('StreamRegistry', (): void => {
data
}
// signing with user1 (walletindex 2)
const sign = ethSigUtil.signTypedMessage(utils.arrayify(wallets[0].privateKey), // user0
{
data: {
types,
domain: {
name: 'MinimalForwarder',
version: '0.0.1',
chainId: (await provider.getNetwork()).chainId,
verifyingContract: minimalForwarderFromUser0.address,
},
primaryType: 'ForwardRequest',
message: req
}
})
const d: TypedMessage<any> = {
types,
domain: {
name: 'MinimalForwarder',
version: '0.0.1',
chainId: (await provider.getNetwork()).chainId,
verifyingContract: minimalForwarderFromUser0.address,
},
primaryType: 'ForwardRequest',
message: req,
}
const options = {
data: d,
privateKey: utils.arrayify(wallets[0].privateKey) as Buffer,
version: SignTypedDataVersion.V4,
}
const sign = signTypedData(options) // user0

const res = await minimalForwarderFromUser0.verify(req, sign)
await expect(res).to.be.true
Expand Down