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

Ledger freezes with some multi-action transactions #13

Closed
aaroncox opened this issue Dec 17, 2019 · 3 comments
Closed

Ledger freezes with some multi-action transactions #13

aaroncox opened this issue Dec 17, 2019 · 3 comments

Comments

@aaroncox
Copy link

Note: all of this data is available on the Jungle Testnet, and is accessible via jungle.greymass.com

When using specific combinations of actions within a single transaction, the Ledger app will prompt the transactions, but when on the device you click "Continue Review", the Ledger app itself freezes and cannot proceed.

To provide an example - given the following ABI (available on the greymassfuel account):

{
    "version": "eosio::abi/1.0",
    "types": [],
    "structs": [
        {
            "name": "cosign",
            "base": "",
            "fields": [
                {
                    "name": "referrer",
                    "type": "string"
                }
            ]
        }
    ],
    "actions": [
        {
            "name": "cosign",
            "type": "cosign",
            "ricardian_contract": ""
        }
    ],
    "tables": [],
    "ricardian_clauses": [],
    "error_messages": [],
    "abi_extensions": [],
    "variants": []
}

With a transaction containing the following actions:

{
  actions: [
    {
      account: 'greymassfuel',
      name: 'cosign',
      authorization: [{
        actor: 'greymassfuel',
        permission: 'cosign',
      }],
      data: {
        referrer: 'foo'
      }
    },
    {
      account: 'eosio',
      name: 'voteproducer',
      authorization: [{
        actor: 'greymasstest',
        permission: 'voting',
      }],
      data: {
        producers: [],
        proxy: 'greymassvote',
        voter: 'greymasstest'
      }
    }
  ]
}

The app on the device will freeze and prevent signing of the transaction.

It seems this is isolated to only specific action types, since the delphioracle contract works with some actions in the same circumstances and not others.

For example, this transaction actually works and is able to be signed by the Ledger without freezing:

{
  actions: [
    {
      account: 'delphioracle',
      name: 'write',
      authorization: [{
        actor: 'greymassfuel',
        permission: 'cosign',
      }],
      data: {
        owner: 'greymassfuel',
        quotes: [{
          pair: 'eosusd',
          value: 23148
        }]
      }
    },
    {
      account: 'eosio',
      name: 'voteproducer',
      authorization: [{
        actor: 'greymasstest',
        permission: 'voting',
      }],
      data: {
        producers: [],
        proxy: 'greymassvote',
        voter: 'greymasstest'
      }
    }
  ]
}

The delphioracle:write action seems to process properly and allow signature generation, which I believe is because it contains an array of structs (the quotes value). The reason I believe this is because when trying to use the delphioracle:claim action, as shown below, the device will again freeze when selecting "Continue Review" on the device.

{
  actions: [
    {
      account: 'delphioracle',
      name: 'claim',
      authorization: [{
        actor: 'greymassfuel',
        permission: 'cosign',
      }],
      data: {
        owner: 'greymassfuel',
      }
    },
    {
      account: 'eosio',
      name: 'voteproducer',
      authorization: [{
        actor: 'greymasstest',
        permission: 'voting',
      }],
      data: {
        producers: [],
        proxy: 'greymassvote',
        voter: 'greymasstest'
      }
    }
  ]
}

Somewhere in the logic after clicking "Continue review" the application is crashing, preventing signatures from being created for the most basic of actions in a multi-action transaction.

@laurensV
Copy link

Any plans on fixing this issue with the eos-ledger app for multi-action transactions? We are facing the same problems with our multi-action transactions for quite sone time now..

tarassh added a commit that referenced this issue Dec 6, 2020
* update to firmware  v1.6.0
* fix for #13
@tarassh tarassh closed this as completed Dec 17, 2020
@kmu36323
Copy link

kmu36323 commented Feb 18, 2021

hi did you manage to solve the problem or did everything just stay in the ass?
Fuel disabled while using a Ledger
The combination of Fuel and Ledger devices is currently not working. An issue on the Ledger app itself prevents this feature from working. Technical information is available here.

@tarassh
Copy link
Owner

tarassh commented Feb 18, 2021

@kmu36323 the changes are committed. The ball is on Ledger side right now. W8 for 1.4 release. As an alternative you can use Anchor wallet. It has workaround.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants