[bisq-network/bisq] Issues submitting proposal with less than 7.46 BSQ available (#2613)

Devin Bileck notifications at github.com
Tue Apr 2 00:03:43 UTC 2019


When attempting to create a compensation request with exactly 2 BSQ in my wallet, the compensation request is submitted without error but upon generating the next block, the transaction gets marked as invalid.

To reproduce, using regtest, I sent 10 BSQ to a new wallet and then sent 8 back so I had only 2 BSQ (to work around the minimum dust limit). I then submitted a compensation request.

The following was in the log:
```
Apr-01 16:44:07.123 [JavaFX Application Thread] WARN  b.c.dao.node.parser.TxParser: Invalid Tx: No BSQ output found. tx=TempTx{
     txOutputs=[TempTxOutput{
     txOutputType=BTC_OUTPUT
     lockTime=-1
     unlockBlockHeight=0
} BaseTxOutput{
     index=0,
     value=1000,
     txId='0eed3395ce51eee07826e818b1a4c761b453ed483aae017605bd2941cff7dcf8',
     pubKeyScript=PubKeyScript(reqSigs=1, scriptType=ScriptType(name=pubkeyhash), addresses=[mtM79NKccjqdeBzf33DTcrUBuU2XEhW6LB], asm=OP_DUP OP_HASH160 8cbcdd06e41c7ec8561ed9262f30296d457e3e12 OP_EQUALVERIFY OP_CHECKSIG, hex=76a9148cbcdd06e41c7ec8561ed9262f30296d457e3e1288ac),
     address='mtM79NKccjqdeBzf33DTcrUBuU2XEhW6LB',
     opReturnData=null,
     blockHeight=203
}, TempTxOutput{
     txOutputType=ISSUANCE_CANDIDATE_OUTPUT
     lockTime=-1
     unlockBlockHeight=0
} BaseTxOutput{
     index=1,
     value=498292580,
     txId='0eed3395ce51eee07826e818b1a4c761b453ed483aae017605bd2941cff7dcf8',
     pubKeyScript=PubKeyScript(reqSigs=1, scriptType=ScriptType(name=pubkeyhash), addresses=[mtdD2NhgH6NNKQmZfyihnHdcfwJEQ8S6Xm], asm=OP_DUP OP_HASH160 8fc86d3a47d87e20846765e1d8f6409fed3c01df OP_EQUALVERIFY OP_CHECKSIG, hex=76a9148fc86d3a47d87e20846765e1d8f6409fed3c01df88ac),
     address='mtdD2NhgH6NNKQmZfyihnHdcfwJEQ8S6Xm',
     opReturnData=null,
     blockHeight=203
}, TempTxOutput{
     txOutputType=COMP_REQ_OP_RETURN_OUTPUT
     lockTime=-1
     unlockBlockHeight=0
} BaseTxOutput{
     index=2,
     value=0,
     txId='0eed3395ce51eee07826e818b1a4c761b453ed483aae017605bd2941cff7dcf8',
     pubKeyScript=PubKeyScript(reqSigs=0, scriptType=ScriptType(name=nulldata), addresses=null, asm=OP_RETURN 11010d68edb60b1bcc630be3ae81a49b7e6eb14d0b92, hex=6a1611010d68edb60b1bcc630be3ae81a49b7e6eb14d0b92),
     address='null',
     opReturnData=11010d68edb60b1bcc630be3ae81a49b7e6eb14d0b92,
     blockHeight=203
}],
     txType=COMPENSATION_REQUEST,
     burntBsq=200
} BaseTx{
     txVersion='1',
     id='0eed3395ce51eee07826e818b1a4c761b453ed483aae017605bd2941cff7dcf8',
     blockHeight=203,
     blockHash='323c40bcdb6d265faa19ff57f6010e6d3f329d920cb5da8dc4059f95b80dec71',
     time=1554162246000,
     txInputs=[TxInput{
     connectedTxOutputTxId='d6302c8070efe702ea0ce4c887962cec28ae9355a4f3dc4a493f056f98a85cdc',
     connectedTxOutputIndex=1,
     pubKey=03a120cfe6fe3bee9ec924c9350fdc58ab31553bc51a05701ea47391a3b1b354eb
}, TxInput{
     connectedTxOutputTxId='d6302c8070efe702ea0ce4c887962cec28ae9355a4f3dc4a493f056f98a85cdc',
     connectedTxOutputIndex=2,
     pubKey=03f3e1e4480d27d0f651c4a6fbdfbf321b26f7c4edf55d1836b1b8ca211caa9af9
}]
} 
Apr-01 16:44:07.123 [JavaFX Application Thread] WARN  b.c.dao.node.parser.TxParser: We have destroyed BSQ because of an invalid tx. Burned BSQ=2.0. tx=TempTx{
     txOutputs=[TempTxOutput{
     txOutputType=BTC_OUTPUT
     lockTime=-1
     unlockBlockHeight=0
} BaseTxOutput{
     index=0,
     value=1000,
     txId='0eed3395ce51eee07826e818b1a4c761b453ed483aae017605bd2941cff7dcf8',
     pubKeyScript=PubKeyScript(reqSigs=1, scriptType=ScriptType(name=pubkeyhash), addresses=[mtM79NKccjqdeBzf33DTcrUBuU2XEhW6LB], asm=OP_DUP OP_HASH160 8cbcdd06e41c7ec8561ed9262f30296d457e3e12 OP_EQUALVERIFY OP_CHECKSIG, hex=76a9148cbcdd06e41c7ec8561ed9262f30296d457e3e1288ac),
     address='mtM79NKccjqdeBzf33DTcrUBuU2XEhW6LB',
     opReturnData=null,
     blockHeight=203
}, TempTxOutput{
     txOutputType=ISSUANCE_CANDIDATE_OUTPUT
     lockTime=-1
     unlockBlockHeight=0
} BaseTxOutput{
     index=1,
     value=498292580,
     txId='0eed3395ce51eee07826e818b1a4c761b453ed483aae017605bd2941cff7dcf8',
     pubKeyScript=PubKeyScript(reqSigs=1, scriptType=ScriptType(name=pubkeyhash), addresses=[mtdD2NhgH6NNKQmZfyihnHdcfwJEQ8S6Xm], asm=OP_DUP OP_HASH160 8fc86d3a47d87e20846765e1d8f6409fed3c01df OP_EQUALVERIFY OP_CHECKSIG, hex=76a9148fc86d3a47d87e20846765e1d8f6409fed3c01df88ac),
     address='mtdD2NhgH6NNKQmZfyihnHdcfwJEQ8S6Xm',
     opReturnData=null,
     blockHeight=203
}, TempTxOutput{
     txOutputType=COMP_REQ_OP_RETURN_OUTPUT
     lockTime=-1
     unlockBlockHeight=0
} BaseTxOutput{
     index=2,
     value=0,
     txId='0eed3395ce51eee07826e818b1a4c761b453ed483aae017605bd2941cff7dcf8',
     pubKeyScript=PubKeyScript(reqSigs=0, scriptType=ScriptType(name=nulldata), addresses=null, asm=OP_RETURN 11010d68edb60b1bcc630be3ae81a49b7e6eb14d0b92, hex=6a1611010d68edb60b1bcc630be3ae81a49b7e6eb14d0b92),
     address='null',
     opReturnData=11010d68edb60b1bcc630be3ae81a49b7e6eb14d0b92,
     blockHeight=203
}],
     txType=INVALID,
     burntBsq=200
} BaseTx{
     txVersion='1',
     id='0eed3395ce51eee07826e818b1a4c761b453ed483aae017605bd2941cff7dcf8',
     blockHeight=203,
     blockHash='323c40bcdb6d265faa19ff57f6010e6d3f329d920cb5da8dc4059f95b80dec71',
     time=1554162246000,
     txInputs=[TxInput{
     connectedTxOutputTxId='d6302c8070efe702ea0ce4c887962cec28ae9355a4f3dc4a493f056f98a85cdc',
     connectedTxOutputIndex=1,
     pubKey=03a120cfe6fe3bee9ec924c9350fdc58ab31553bc51a05701ea47391a3b1b354eb
}, TxInput{
     connectedTxOutputTxId='d6302c8070efe702ea0ce4c887962cec28ae9355a4f3dc4a493f056f98a85cdc',
     connectedTxOutputIndex=2,
     pubKey=03f3e1e4480d27d0f651c4a6fbdfbf321b26f7c4edf55d1836b1b8ca211caa9af9
}]
} 
Apr-01 16:44:07.123 [JavaFX Application Thread] INFO  b.c.dao.state.DaoStateService: Parse block completed: Block height 203, 1 BSQ transactions. 
Apr-01 16:44:07.130 [JavaFX Application Thread] ERROR b.c.d.g.p.ProposalValidator: TxType is not a COMPENSATION_REQUEST. proposal.getTxId()=0eed3395ce51eee07826e818b1a4c761b453ed483aae017605bd2941cff7dcf8 
Apr-01 16:44:07.130 [JavaFX Application Thread] ERROR b.c.d.g.p.ProposalValidator: TxType is not a COMPENSATION_REQUEST. proposal.getTxId()=0eed3395ce51eee07826e818b1a4c761b453ed483aae017605bd2941cff7dcf8 
```

I then repeated the process of transferring BSQ to ensure I only had exactly 3 BSQ and this time I was unable to submit the compensation request:
![image](https://user-images.githubusercontent.com/603793/55366597-47579980-549e-11e9-9c24-391d5aab4fb0.png)

```
Apr-01 16:49:07.191 [JavaFX Application Thread] ERROR b.d.m.d.g.m.MakeProposalView: java.lang.IllegalArgumentException: We must not get dust output here. 
java.lang.IllegalArgumentException: We must not get dust output here.
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:122)
	at bisq.core.btc.wallet.BsqWalletService.addInputsAndChangeOutputForTx(BsqWalletService.java:554)
	at bisq.core.btc.wallet.BsqWalletService.getPreparedBurnFeeTx(BsqWalletService.java:534)
	at bisq.core.btc.wallet.BsqWalletService.getPreparedProposalTx(BsqWalletService.java:528)
	at bisq.core.dao.governance.proposal.BaseProposalFactory.createTransaction(BaseProposalFactory.java:90)
	at bisq.core.dao.governance.proposal.BaseProposalFactory.createProposalWithTransaction(BaseProposalFactory.java:76)
	at bisq.core.dao.governance.proposal.compensation.CompensationProposalFactory.createProposalWithTransaction(CompensationProposalFactory.java:73)
	at bisq.core.dao.DaoFacade.getCompensationProposalWithTransaction(DaoFacade.java:241)
	at bisq.desktop.main.dao.governance.make.MakeProposalView.getProposalWithTransaction(MakeProposalView.java:379)
	at bisq.desktop.main.dao.governance.make.MakeProposalView.publishMyProposal(MakeProposalView.java:275)
	at bisq.desktop.main.dao.governance.make.MakeProposalView.lambda$setMakeProposalButtonHandler$6(MakeProposalView.java:479)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
	at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8865)
	at javafx.controls/javafx.scene.control.Button.fire(Button.java:200)
	at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:206)
	at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
	at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
	at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
	at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
	at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
	at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
	at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
	at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3876)
	at javafx.graphics/javafx.scene.Scene$MouseHandler.access$1300(Scene.java:3604)
	at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1874)
	at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2613)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:397)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:434)
	at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
	at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:433)
	at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
	at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
	at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:175)
	at java.base/java.lang.Thread.run(Thread.java:844)
```

This above error occurred until I had at least 8 (I assume more accurately 7.46) BSQ available at which point submitting a compensation request was successful.

So we need to prevent the invalid transaction in the first case (exactly 2 BSQ), and improve the error in the other case (less than 7.46 BSQ).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/bisq/issues/2613
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20190401/91a79f03/attachment-0001.html>


More information about the bisq-github mailing list