Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to claim channel #240

karzak opened this issue Aug 6, 2018 · 1 comment


Copy link

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


This comment has been minimized.

Copy link

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 join this conversation on GitHub. Already have an account? Sign in to comment
None yet
2 participants
You can’t perform that action at this time.