From bb835c43de971157d8936e27c0a7f4a69c3a262d Mon Sep 17 00:00:00 2001 From: Doug Kent Date: Tue, 19 May 2020 19:02:39 -0400 Subject: [PATCH 1/9] add `value` to GenericScheme --- src/proposal.ts | 4 +++- src/schemes/genericScheme.ts | 2 ++ test/proposal-genericscheme.spec.ts | 15 +++++++++------ test/proposal-ugenericscheme.spec.ts | 17 ++++++++++------- 4 files changed, 24 insertions(+), 14 deletions(-) diff --git a/src/proposal.ts b/src/proposal.ts index 15be06d8..8274ab40 100644 --- a/src/proposal.ts +++ b/src/proposal.ts @@ -173,6 +173,7 @@ export class Proposal implements IStateful { callData executed returnValue + value } genesisProtocolParams { id @@ -475,7 +476,8 @@ export class Proposal implements IStateful { contractToCall: item.genericScheme.contractToCall, executed: item.genericScheme.executed, id: item.genericScheme.id, - returnValue: item.genericScheme.returnValue + returnValue: item.genericScheme.returnValue, + value: item.genericScheme.value } } else if (item.schemeRegistrar) { if (item.schemeRegistrar.schemeToRegister) { diff --git a/src/schemes/genericScheme.ts b/src/schemes/genericScheme.ts index 06e36c56..ced7c27c 100644 --- a/src/schemes/genericScheme.ts +++ b/src/schemes/genericScheme.ts @@ -1,3 +1,4 @@ +import BN = require('bn.js') import { Arc } from '../arc' import { Proposal } from '../proposal' import { Address } from '../types' @@ -14,6 +15,7 @@ export interface IGenericScheme { callData: string executed: boolean returnValue: string + value: BN } export interface IProposalCreateOptionsGS { diff --git a/test/proposal-genericscheme.spec.ts b/test/proposal-genericscheme.spec.ts index cbc08dee..cf64d407 100644 --- a/test/proposal-genericscheme.spec.ts +++ b/test/proposal-genericscheme.spec.ts @@ -5,9 +5,11 @@ import { IProposalState, ISchemeStaticState, Proposal - } from '../src' -import { createAProposal, getTestAddresses, ITestAddresses, LATEST_ARC_VERSION, - newArc, voteToPassProposal, waitUntilTrue } from './utils' +} from '../src' +import { + createAProposal, getTestAddresses, ITestAddresses, LATEST_ARC_VERSION, + newArc, voteToPassProposal, waitUntilTrue, BN +} from './utils' jest.setTimeout(60000) @@ -24,7 +26,7 @@ describe('Proposal', () => { }) it('Check proposal state is correct', async () => { - const daos = await arc.daos({where: { name: 'Nectar DAO'}}).pipe(first()).toPromise() + const daos = await arc.daos({ where: { name: 'Nectar DAO' } }).pipe(first()).toPromise() const dao = daos[0] if (dao === undefined) { throw Error(`Could not find "Nectar DAO"`) @@ -36,7 +38,7 @@ describe('Proposal', () => { const actionMock = new arc.web3.eth.Contract(actionMockABI, testAddresses.test.ActionMock) const callData = await actionMock.methods.test2(dao.id).encodeABI() - const schemes = await dao.schemes({ where: {name: 'GenericScheme' }}).pipe(first()).toPromise() + const schemes = await dao.schemes({ where: { name: 'GenericScheme' } }).pipe(first()).toPromise() const genericScheme = schemes[0].staticState as ISchemeStaticState const proposal = await createAProposal(dao, { callData, @@ -55,7 +57,8 @@ describe('Proposal', () => { expect(lastState().genericScheme).toMatchObject({ callData, executed: false, - returnValue: null + returnValue: null, + value: new BN(0) }) // accept the proposal by voting the hell out of it diff --git a/test/proposal-ugenericscheme.spec.ts b/test/proposal-ugenericscheme.spec.ts index d3cb995f..b35b02cc 100644 --- a/test/proposal-ugenericscheme.spec.ts +++ b/test/proposal-ugenericscheme.spec.ts @@ -5,10 +5,12 @@ import { IProposalStage, IProposalState, Proposal - } from '../src/proposal' -import { IGenericScheme} from '../src/schemes/genericScheme' -import { createAProposal, getTestAddresses, getTestDAO, ITestAddresses, LATEST_ARC_VERSION, - newArc, voteToPassProposal, waitUntilTrue } from './utils' +} from '../src/proposal' +import { IGenericScheme } from '../src/schemes/genericScheme' +import { + createAProposal, getTestAddresses, getTestDAO, ITestAddresses, LATEST_ARC_VERSION, + newArc, voteToPassProposal, waitUntilTrue, BN +} from './utils' jest.setTimeout(60000) @@ -34,10 +36,10 @@ describe('Proposal', () => { const version = '0.0.1-rc.32' testAddresses = getTestAddresses(arc) // dao = await getTestDAO() - const ugenericSchemes = await arc.schemes({where: {name: "UGenericScheme", version}}).pipe(first()).toPromise() + const ugenericSchemes = await arc.schemes({ where: { name: "UGenericScheme", version } }).pipe(first()).toPromise() const ugenericScheme = ugenericSchemes[0] const ugenericSchemeState = await ugenericScheme.state().pipe(first()).toPromise() - dao = new DAO(ugenericSchemeState.dao, arc) + dao = new DAO(ugenericSchemeState.dao, arc) const states: IProposalState[] = [] const lastState = (): IProposalState => states[states.length - 1] @@ -63,7 +65,8 @@ describe('Proposal', () => { expect(lastState().genericScheme).toMatchObject({ callData, executed: false, - returnValue: null + returnValue: null, + value: new BN(0) }) // accept the proposal by voting the hell out of it From b36096ed675de452cb718940966cf2b1488f7462 Mon Sep 17 00:00:00 2001 From: Doug Kent Date: Tue, 19 May 2020 19:07:07 -0400 Subject: [PATCH 2/9] better test --- test/proposal-genericscheme.spec.ts | 4 ++-- test/proposal-ugenericscheme.spec.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/proposal-genericscheme.spec.ts b/test/proposal-genericscheme.spec.ts index cf64d407..a7755202 100644 --- a/test/proposal-genericscheme.spec.ts +++ b/test/proposal-genericscheme.spec.ts @@ -44,7 +44,7 @@ describe('Proposal', () => { callData, scheme: genericScheme.address, schemeToRegister: actionMock.options.address, - value: 0 + value: new BN(1) }) expect(proposal).toBeInstanceOf(Proposal) @@ -58,7 +58,7 @@ describe('Proposal', () => { callData, executed: false, returnValue: null, - value: new BN(0) + value: new BN(1) }) // accept the proposal by voting the hell out of it diff --git a/test/proposal-ugenericscheme.spec.ts b/test/proposal-ugenericscheme.spec.ts index b35b02cc..a1280aa0 100644 --- a/test/proposal-ugenericscheme.spec.ts +++ b/test/proposal-ugenericscheme.spec.ts @@ -52,7 +52,7 @@ describe('Proposal', () => { // scheme: testAddresses.base.UGenericScheme, scheme: ugenericSchemeState.address, schemeToRegister: actionMock.options.address, - value: 0 + value: new BN(1) }) expect(proposal).toBeInstanceOf(Proposal) @@ -66,7 +66,7 @@ describe('Proposal', () => { callData, executed: false, returnValue: null, - value: new BN(0) + value: new BN(1) }) // accept the proposal by voting the hell out of it From 81f790db697f6bd1007867d9c43beac4e23b4fcb Mon Sep 17 00:00:00 2001 From: Doug Kent Date: Tue, 19 May 2020 19:23:48 -0400 Subject: [PATCH 3/9] fix tests --- test/proposal-genericscheme.spec.ts | 2 +- test/proposal-ugenericscheme.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/proposal-genericscheme.spec.ts b/test/proposal-genericscheme.spec.ts index a7755202..497560af 100644 --- a/test/proposal-genericscheme.spec.ts +++ b/test/proposal-genericscheme.spec.ts @@ -44,7 +44,7 @@ describe('Proposal', () => { callData, scheme: genericScheme.address, schemeToRegister: actionMock.options.address, - value: new BN(1) + value: 1 }) expect(proposal).toBeInstanceOf(Proposal) diff --git a/test/proposal-ugenericscheme.spec.ts b/test/proposal-ugenericscheme.spec.ts index a1280aa0..6be0d05e 100644 --- a/test/proposal-ugenericscheme.spec.ts +++ b/test/proposal-ugenericscheme.spec.ts @@ -66,7 +66,7 @@ describe('Proposal', () => { callData, executed: false, returnValue: null, - value: new BN(1) + value: 1 }) // accept the proposal by voting the hell out of it From 4746e0d256467bd63f5a50940eb4c5bfcd9ffecf Mon Sep 17 00:00:00 2001 From: Doug Kent Date: Tue, 19 May 2020 19:24:20 -0400 Subject: [PATCH 4/9] tests --- test/proposal-genericscheme.spec.ts | 2 +- test/proposal-ugenericscheme.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/proposal-genericscheme.spec.ts b/test/proposal-genericscheme.spec.ts index 497560af..2be2c080 100644 --- a/test/proposal-genericscheme.spec.ts +++ b/test/proposal-genericscheme.spec.ts @@ -58,7 +58,7 @@ describe('Proposal', () => { callData, executed: false, returnValue: null, - value: new BN(1) + value: 1 }) // accept the proposal by voting the hell out of it diff --git a/test/proposal-ugenericscheme.spec.ts b/test/proposal-ugenericscheme.spec.ts index 6be0d05e..b44be882 100644 --- a/test/proposal-ugenericscheme.spec.ts +++ b/test/proposal-ugenericscheme.spec.ts @@ -52,7 +52,7 @@ describe('Proposal', () => { // scheme: testAddresses.base.UGenericScheme, scheme: ugenericSchemeState.address, schemeToRegister: actionMock.options.address, - value: new BN(1) + value: 1 }) expect(proposal).toBeInstanceOf(Proposal) From 79f957679c1556f9f93ab11d4fac47d2ca66873e Mon Sep 17 00:00:00 2001 From: Doug Kent Date: Tue, 19 May 2020 19:39:18 -0400 Subject: [PATCH 5/9] remove BN --- test/proposal-genericscheme.spec.ts | 2 +- test/proposal-ugenericscheme.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/proposal-genericscheme.spec.ts b/test/proposal-genericscheme.spec.ts index 2be2c080..7589cc06 100644 --- a/test/proposal-genericscheme.spec.ts +++ b/test/proposal-genericscheme.spec.ts @@ -8,7 +8,7 @@ import { } from '../src' import { createAProposal, getTestAddresses, ITestAddresses, LATEST_ARC_VERSION, - newArc, voteToPassProposal, waitUntilTrue, BN + newArc, voteToPassProposal, waitUntilTrue } from './utils' jest.setTimeout(60000) diff --git a/test/proposal-ugenericscheme.spec.ts b/test/proposal-ugenericscheme.spec.ts index b44be882..359dff59 100644 --- a/test/proposal-ugenericscheme.spec.ts +++ b/test/proposal-ugenericscheme.spec.ts @@ -9,7 +9,7 @@ import { import { IGenericScheme } from '../src/schemes/genericScheme' import { createAProposal, getTestAddresses, getTestDAO, ITestAddresses, LATEST_ARC_VERSION, - newArc, voteToPassProposal, waitUntilTrue, BN + newArc, voteToPassProposal, waitUntilTrue } from './utils' jest.setTimeout(60000) From a7eb9fd029f19e69521e372a44e2862cf53c3d32 Mon Sep 17 00:00:00 2001 From: Doug Kent Date: Tue, 19 May 2020 19:57:50 -0400 Subject: [PATCH 6/9] tests --- src/proposal.ts | 2 +- test/proposal-genericscheme.spec.ts | 6 +++--- test/proposal-ugenericscheme.spec.ts | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/proposal.ts b/src/proposal.ts index 8274ab40..4ec248e8 100644 --- a/src/proposal.ts +++ b/src/proposal.ts @@ -477,7 +477,7 @@ export class Proposal implements IStateful { executed: item.genericScheme.executed, id: item.genericScheme.id, returnValue: item.genericScheme.returnValue, - value: item.genericScheme.value + value: new BN(item.genericScheme.value) } } else if (item.schemeRegistrar) { if (item.schemeRegistrar.schemeToRegister) { diff --git a/test/proposal-genericscheme.spec.ts b/test/proposal-genericscheme.spec.ts index 7589cc06..a7755202 100644 --- a/test/proposal-genericscheme.spec.ts +++ b/test/proposal-genericscheme.spec.ts @@ -8,7 +8,7 @@ import { } from '../src' import { createAProposal, getTestAddresses, ITestAddresses, LATEST_ARC_VERSION, - newArc, voteToPassProposal, waitUntilTrue + newArc, voteToPassProposal, waitUntilTrue, BN } from './utils' jest.setTimeout(60000) @@ -44,7 +44,7 @@ describe('Proposal', () => { callData, scheme: genericScheme.address, schemeToRegister: actionMock.options.address, - value: 1 + value: new BN(1) }) expect(proposal).toBeInstanceOf(Proposal) @@ -58,7 +58,7 @@ describe('Proposal', () => { callData, executed: false, returnValue: null, - value: 1 + value: new BN(1) }) // accept the proposal by voting the hell out of it diff --git a/test/proposal-ugenericscheme.spec.ts b/test/proposal-ugenericscheme.spec.ts index 359dff59..a1280aa0 100644 --- a/test/proposal-ugenericscheme.spec.ts +++ b/test/proposal-ugenericscheme.spec.ts @@ -9,7 +9,7 @@ import { import { IGenericScheme } from '../src/schemes/genericScheme' import { createAProposal, getTestAddresses, getTestDAO, ITestAddresses, LATEST_ARC_VERSION, - newArc, voteToPassProposal, waitUntilTrue + newArc, voteToPassProposal, waitUntilTrue, BN } from './utils' jest.setTimeout(60000) @@ -52,7 +52,7 @@ describe('Proposal', () => { // scheme: testAddresses.base.UGenericScheme, scheme: ugenericSchemeState.address, schemeToRegister: actionMock.options.address, - value: 1 + value: new BN(1) }) expect(proposal).toBeInstanceOf(Proposal) @@ -66,7 +66,7 @@ describe('Proposal', () => { callData, executed: false, returnValue: null, - value: 1 + value: new BN(1) }) // accept the proposal by voting the hell out of it From 7a3e58417910ad46d9072180a5a1d511ee1bec85 Mon Sep 17 00:00:00 2001 From: Doug Kent Date: Tue, 19 May 2020 20:12:34 -0400 Subject: [PATCH 7/9] another try --- test/proposal-genericscheme.spec.ts | 2 +- test/proposal-ugenericscheme.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/proposal-genericscheme.spec.ts b/test/proposal-genericscheme.spec.ts index a7755202..be9a57f0 100644 --- a/test/proposal-genericscheme.spec.ts +++ b/test/proposal-genericscheme.spec.ts @@ -58,7 +58,7 @@ describe('Proposal', () => { callData, executed: false, returnValue: null, - value: new BN(1) + value: new BN("1") }) // accept the proposal by voting the hell out of it diff --git a/test/proposal-ugenericscheme.spec.ts b/test/proposal-ugenericscheme.spec.ts index a1280aa0..801e7dd7 100644 --- a/test/proposal-ugenericscheme.spec.ts +++ b/test/proposal-ugenericscheme.spec.ts @@ -66,7 +66,7 @@ describe('Proposal', () => { callData, executed: false, returnValue: null, - value: new BN(1) + value: new BN("1") }) // accept the proposal by voting the hell out of it From e607fcb1dc3009b6751559eb925495dca785eaae Mon Sep 17 00:00:00 2001 From: Doug Kent Date: Tue, 19 May 2020 20:13:01 -0400 Subject: [PATCH 8/9] nuther try --- test/proposal-genericscheme.spec.ts | 2 +- test/proposal-ugenericscheme.spec.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/proposal-genericscheme.spec.ts b/test/proposal-genericscheme.spec.ts index be9a57f0..50b0078e 100644 --- a/test/proposal-genericscheme.spec.ts +++ b/test/proposal-genericscheme.spec.ts @@ -44,7 +44,7 @@ describe('Proposal', () => { callData, scheme: genericScheme.address, schemeToRegister: actionMock.options.address, - value: new BN(1) + value: new BN("1") }) expect(proposal).toBeInstanceOf(Proposal) diff --git a/test/proposal-ugenericscheme.spec.ts b/test/proposal-ugenericscheme.spec.ts index 801e7dd7..b52ae3b0 100644 --- a/test/proposal-ugenericscheme.spec.ts +++ b/test/proposal-ugenericscheme.spec.ts @@ -52,7 +52,7 @@ describe('Proposal', () => { // scheme: testAddresses.base.UGenericScheme, scheme: ugenericSchemeState.address, schemeToRegister: actionMock.options.address, - value: new BN(1) + value: new BN("1") }) expect(proposal).toBeInstanceOf(Proposal) From c370cbea69c06cfb9ff48c18f3676df38705206c Mon Sep 17 00:00:00 2001 From: Doug Kent Date: Tue, 19 May 2020 20:25:33 -0400 Subject: [PATCH 9/9] yet another --- test/proposal-genericscheme.spec.ts | 4 ++-- test/proposal-ugenericscheme.spec.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/proposal-genericscheme.spec.ts b/test/proposal-genericscheme.spec.ts index 50b0078e..5d42db2f 100644 --- a/test/proposal-genericscheme.spec.ts +++ b/test/proposal-genericscheme.spec.ts @@ -44,7 +44,7 @@ describe('Proposal', () => { callData, scheme: genericScheme.address, schemeToRegister: actionMock.options.address, - value: new BN("1") + value: '1' }) expect(proposal).toBeInstanceOf(Proposal) @@ -58,7 +58,7 @@ describe('Proposal', () => { callData, executed: false, returnValue: null, - value: new BN("1") + value: new BN('1') }) // accept the proposal by voting the hell out of it diff --git a/test/proposal-ugenericscheme.spec.ts b/test/proposal-ugenericscheme.spec.ts index b52ae3b0..72b74ece 100644 --- a/test/proposal-ugenericscheme.spec.ts +++ b/test/proposal-ugenericscheme.spec.ts @@ -52,7 +52,7 @@ describe('Proposal', () => { // scheme: testAddresses.base.UGenericScheme, scheme: ugenericSchemeState.address, schemeToRegister: actionMock.options.address, - value: new BN("1") + value: '1' }) expect(proposal).toBeInstanceOf(Proposal) @@ -66,7 +66,7 @@ describe('Proposal', () => { callData, executed: false, returnValue: null, - value: new BN("1") + value: new BN('1') }) // accept the proposal by voting the hell out of it