Skip to content
This repository has been archived by the owner. It is now read-only.

Unable to claim channel #240

karzak opened this issue Aug 6, 2018 · 1 comment

Unable to claim channel #240

karzak opened this issue Aug 6, 2018 · 1 comment


Copy link

@karzak karzak commented Aug 6, 2018

I am trying to test a simple send/receive workflow and cannot get the receiver to accept the payment. As far as I can tell the formatting of the payment is fine, so I think there is an error in the canClaim function that's called during payment validation.

The code to reproduce this error is located here.

The sender script creates a channel, sends a payment and saves it as JSON that looks like this:

{ channelId: '0xdd1b28611dfc4b488c27aad5e7d8906100000000000000000000000000000000',
  value: '200000',
  sender: '0x293c4e447b0519665ef40763840ca6aa253b0b3c',
  receiver: '0xfee2837d64476df777fe142f993b2b6001d0d41e',
  price: '200000',
  channelValue: '1000000',
  v: 28,
  r: '0x902fbb7e4ed58c165920facca0085fccc5d188374217cc3212e5678293c53394',
  s: '0x092eb551da10d79f01b048db92ef6caf913a0d620f84e5a999e3ffe633d2b422',
  token: undefined,
  meta: '',
  createdAt: undefined,
  tokenContract: '' }

The receiver script fails when calling the acceptPayment method with the following output:

error:PaymentValidation Payment is invalid: Channel contract cannot accept the claim. Payment: [ Payment { channelId: '0xdd1b28611dfc4b488c27aad5e7d8906100000000000000000000000000000000', sender: '0x293c4e447b0519665ef40763840ca6aa253b0b3c', receiver: '0xfee2837d64476df777fe142f993b2b6001d0d41e', price: BigNumber { s: 1, e: 5, c: [Array] }, value: BigNumber { s: 1, e: 5, c: [Array] }, channelValue: BigNumber { s: 1, e: 6, c: [Array] }, signature: Signature { rpcSig: '0x902fbb7e4ed58c165920facca0085fccc5d188374217cc3212e5678293c53394092eb551da10d79f01b048db92ef6caf913a0d620f84e5a999e3ffe633d2b42201' }, meta: '', token: undefined, createdAt: NaN, tokenContract: '' } ] +0ms
  info:PaymentValidation Settlement period for channel 0xdd1b28611dfc4b488c27aad5e7d8906100000000000000000000000000000000 is ok: 172800 +0ms
Error: Invalid payment.
    at mutex.synchronizeOn (/Users/kjd/ILP/temp/machinomy-test/node_modules/machinomy/lib/ChannelManager.js:81:19)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)

That error traces to the canClaim method which is called on the contract in ChannelContract.ts

@ARyaskov ARyaskov self-assigned this Aug 6, 2018
Copy link

@karzak karzak commented Aug 8, 2018

Solved by using the machinomy fork of the hd-wallet-provider. See changes here for working example of settling a channel.


@karzak karzak closed this Aug 8, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
None yet
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
2 participants