Giter VIP home page Giter VIP logo

algosigner's Introduction

AlgoSigner

AlgoSigner Sunset

This repository is no longer under active development.

Support for AlgoSigner by the Algorand Foundation has ended as of March 31st, 2023 and the extension will be unpublished from the Chrome Store. This should not delete the extension if it is installed through the store but neither the extension or code base will be updated or supported.

Refer to the Algorand website for a list of alternative providers. The Algorand Foundation also providers a list of wallet security best practices.

Existing users should migrate to a different wallet immediately. There is no way to export a mnemonic from AlgoSigner. If you did not write it down when creating an account you should migrate to another account before March 31st or rekey your account to an account you do have the secret for.

Foundation press release

FAQ


Q: Does this have anything to do with the MyAlgo wallet breach?

A: No, this is a planned phasing out of AlgoSigner. There is no known security issue with the wallet.

Q: Can I rekey my account?

A: Yes, you can, several guides are available recently depending on your new wallet.

Q: Are there are any more releases planned?

A: The Chrome Store listing is unpublished. There is a final code only release (1.11.0) in the Github repository with the last developed features.

Q: Is the code Manifest v3 ready?

A: No. There will be a branch containing all the changes towards supporting v3, but it should not be considered tested or production ready.

1.11.0 Final Code Release

Main updates

  • Multiple improvements to Custom Networks including:
    • Automatic fetching of genesis ID and hashes for the user.
    • Achieved full compatibility with enable() calls.
    • Other UI/UX changes.
  • Updated a lot of error messages and data structures to better communicate the causes of errors.

Other updates and bugfixes:

  • Connecting to a dApp using an enable() call while logged out no longer closes the connection window after inputting your password.
  • Improved validations for keyreg transactions regarding nonParticipation.
  • Improved validations for acfg transactions regarding the distinctions between 'Create', 'Config' and 'Destroy'.
  • Fixed account permission bug on enable() calls.
  • SDK support updated to v2.0.0.

1.10.1 Final Chrome Store Release

Main updates

As part of the process of supporting the Algorand Foundations ARCs, in 1.10.0, a number of non-breaking additions have been made to support how dApps will work with AlgoSigner. In time, the existing legacy features will be deprecated.

  • A new top level object, window.algorand is made available and can be accessed by the dapp to make calls to AlgoSigner. The existing window.AlgoSigner object remains but will be deprecated over the next year.
  • An updated connection flow and address discovery process for dApps is in place, using algorand.enable(). The existing connection flow persists but will be deprecated over the next 3-6 months.
  • Dapps may also now request for AlgoSigner to directly post signed transactions to the network and not return the signed blob to the dApp for handling.
  • Additional documentation regarding the use of authAddr for signing transactions with rekeyed accounts.

An interactive transition guide is available here to aid in the migration of existing functionalities.

Other updates (1.10.1):

  • Transaction signing with Ledger devices now support signing multiple transactions in a single group at once. Also updated the Ledger libraries.
  • Added support for the boxes field on application transactions and the stateProofKey & nonParticipation fields for key registration transactions.
  • Various bugfixes:
    • Fixed an issue where custom networks weren't working correctly on algorand.enable() calls.
    • Fixed an issue AlgoSigner becoming unresponsive when trying to sign a transaction with a Reference Account with no authAddr provided.

License

This project is under the MIT License

algosigner's People

Contributors

distractivekatie avatar fgamundi avatar purebrent avatar purestaketdb avatar tgmichel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

algosigner's Issues

Sign compiled program

I'd like the ability to sign a compiled teal program that will act as a delegate signature

AlgoSigner new feature request

Algosigner becomes hidden very often. You can reopen it, but it is cumbersome.
It would be great to have a feature like in MetaMask, to have a setup feature to maximize the app, i.e. to put on a separate Tab in the browser.

Adding appOnComplete and appArgs to an application call crashes AlgoSigner during sign

The application call is

{
      type: 'appl',
      from: userAddress,
      appIndex: environment.appId,
      appOnComplete: 0, // 0 == NoOp
      appArgs: appArgs,
      fee: txParams.fee,
      firstRound: txParams['last-round'],
      lastRound: txParams['last-round'] + 1000,
      genesisID: txParams['genesis-id'],
      genesisHash: txParams['genesis-hash'],
}

And the encodedAppArgs are

const appArgs = [
     new Uint8Array(Buffer.from('da')),
];

image
image

Algosigner not injected again after refreshing page in React

I am building a project using Algosigner and React and I followed the code given in the article Integrate AlgoSigner to JavaScript Application on Algorand

Code snippet:

    useEffect(() => {
        if (typeof window.AlgoSigner !== "undefined") {
            // connects to the browser AlgoSigner instance
            window.AlgoSigner.connect()
                // finds the TestNet accounts currently in AlgoSigner
                .then(() =>
                    window.AlgoSigner.accounts({
                        ledger: "TestNet",
                    })
                )
                .then((accountData) => {
                    // the accountData object should contain the Algorand addresses from TestNet that AlgoSigner currently knows about
                    console.log(accountData);
                })
                .catch((e) => {
                    // handle errors and perform error cleanup here
                    console.error(e);
                });
        } else {
            console.log(window.AlgoSigner);
        }
    }, []);

On opening the application for the first time, everything works fine. The accounts addresses get logged on the console.
However, on refreshing the page, the useEffect runs again and window.Algosigner is undefined.

Firefox extension

Algosigner chrome extension loads on Firefox as it is. I don't know if all the features work, but we can report here if any don't work. Since it's the same code base, can we get someone to test and submit it to Mozilla add-on store?

(I know previous ticket said there's only 3% Firefox users, but we have to keep in mind that it's because of corporations using chrome for everything. On personal computers i'm sure Firefox usage is much higher. Not to mention this takes very little effort)

For those who want to use Algosigner in Firefox right now, it is not supported (yet), hopefully this ticket addresses it. But it is possible if you load it through Menu -> Addons ... -> ⚙️ -> Debug Add-ons -> Load Temporary Addon -> Select manifest file from dist folder. Again, ⚠️ This is not officially supported, and if you lose everything doing this, no one is responsible but you. ⚠️

Sign in screen blank sometimes.

On an average of once every five times, the sign in page goes blank.
Below is the screenshot
Screenshot from 2020-09-25 22-26-49
Refreshing the page solves the problem.

Below is the error

main.js:1279 Uncaught (in promise) TypeError: Cannot read property 'length' of undefined
    at y.la [as constructor] (main.js:1279)
    at y.$ [as render] (main.js:1)
    at L (main.js:1)
    at main.js:1
    at Array.some (<anonymous>)
    at z (main.js:1)

Uncaught error leads to blocking call

When making a call to sign a set of transactions if asset call 404s the signTxn call blocks forever. No error message or signing popup is present.

It seems to have been introduced in the latest release

Add a way to sign a message without a transaction

Hi,

We are creating a d-app using AlgoSigner. We want to ask the user to sign a message with their address to check that it is really theirs. This will be used to authenticate users by their algo address only.

For now, we are using AlgoSigner.sign with a transaction of 0 algos with a random note. However, it is displaying a transaction to sign to users, with fees. Thus, users might be afraid that they need to pay something. Would it be possible to add a new UI to sign a short message without displaying anything about transactions, prices or fees?

Thanks.

Is this library actively maintained?

With the recent hack of MyAlgo wallet, protocols are looking to support web wallets. It seems Algosigner may not be popular, but its audited and open sourced. The question is, is it actively maintained? Are security issues that comeup resolved by a dedicated team?

Unable to sign transaction w/ 2nd Ledger Nano S account

I have a Nano S with multiple Algo accounts. While I was able to add the 2nd account to AlgoSigner and opt into Tinyman and Yieldly, I am unable to run any swaps on Tinyman. The extension prompts to sign the transactions for the swap but it never sends the transaction to the Ledger and the site returns an error:

There was a problem signing the transaction(s).

The same error throws if I run it without the Ledger attached so it seems to act like it can't find the device (even though I am able to connect the wallet to the website and it sees both accounts)

1/28 Update:
As a followup I am now unable to sign any transactions with the Ledger Nano S, even a simple send between accounts. After clicking "Send Transaction To Device" it just sits and spins. I can remove/re-add the accounts to the extension so it is at least able to communicate with the Ledger and find accounts, but for some reason never sends over transactions for signing.

Environment details:
OS: Windows 10 (also the same issue with Ubuntu 20.04)
Ledger Firmware 2.1.0
Ledger Algo App 1.2.15

Send a transaction from a re-keyed account

Hi,

I'm trying to sign a transaction from a re-keyed account. Here is the transaction I'm trying to sign where "GIADCL7O..." is the re-keyed account:

    window.AlgoSigner.sign({
        from: "GIADCL7OAX3IDFJKXI6ION5RJ55AQGAN33KAZQZNGCZOSKC2QQWP3UT7CU",
        to: context.meta.account,
        amount: 10000,
        note: "Footium:BLAH",
        type: "pay",
        fee: context.txParams['min-fee'],
        firstRound: context.txParams['last-round'],
        lastRound: context.txParams['last-round'] + 1000,
        genesisID: context.txParams['genesis-id'],
        genesisHash: context.txParams['genesis-hash']
    }).then(signedTx => {
        ...

However, it seems that I can't do this, as the error message is: message: "from is not a valid user account."

I have a feeling this isn't supported yet, or am I doing something wrong?

Many thanks,

No Pop Up to Submit vote for Governance

Voting in period #3 voting session 1 - Clicking submit vote produces [RequestError.NotAuthorized] instead of a popup asking to submit votes in Algosigner. The account is signed in, has the transaction ID (with 0 algo commited) and is cleared for governance in current voting session.

Produces the following error:
requesterror

Add About section to Algosinger

Hi team!
Thank for your work to create amazing packages.

I think we should add About to Algosigner. This help user know current version and another useful information(link).

Thank for look my issue.

Inject Algosigner also into Iframes

Hi,

We're Andpay - building the first pure PSP fully on the Algorand blockchain. Lately we've integrated support with Algosigner, however we found out that Algosigner isn't compatible with our embeddable components (iframe based).

We noticed that the JS file that's being added is only injected in the top-level document frame and not on all the underlying iframes within that page. Could the Algosigner extension be updated with:

"content_scripts": [ { ... "all_frames": true, ... } ],
As explained here: https://developer.chrome.com/docs/extensions/mv3/content_scripts/#frames

This should potentially make it possible to also run Algosigner support within iframes. Hope to see this implemented soon - as currently Algosigner won't be offered as Payment option within our embeddable components.

Can't clear cached ASAs without deleting the wallet.

This scenario obviously shouldn't happen on mainnet, but when working in a sandbox network which is reset clearing all previous data, the ASAs shown within the accounts never clear/update and I don't seem to be able to force clear them without deleting the entire wallet and starting over. I have tried removing the individual accounts and importing them again, but that doesn't work either.

I've included a screenshot below, but it may look a little confusing. In summary, the two assets at the top labelled "First Asset #000x" were created via goal asset create and then viewed within AlgoSigner. I then reset the sandbox and created 4 new assets labelled "Second Asset #000x". However the first two have the same asset id of the previous two assets, so AlgoSigner doesn't seem to ever clear or update their name/unitname/decimal. I also show the JSON response of the current indexer, to show the real names of the first two assets.

Screenshot from 2021-03-28 15-03-59

I suppose what I'm looking for is an enhancement to allow clearing the local asset cache without deleting the entire wallet.

Support for BetaNet

First of all, really excited to see this being released so soon! It's definitely a big step up from copy/pasting goal commands.

Is support for BetaNet planned for the future? The extension currently seems to support MainNet and TestNet.

AlgoSigner UI got frozen

After I installed it in Chrome, the UI got frozen several times. I was unable to go on.
After I started Metamask, the UI began to work.

default account in wallet

Hi, currently algosigner.accounts returns an array of all accounts in wallet.
Is there an API to fetch a wallet's default(i.e currently active) account ? Or is it algosigner.accounts({..})[0] (first account from list of accounts)?

If not, we would like to make a feature request to set/support a default account in wallet.

Cannot connect to sandbox nodes

I have been trying to connect to the private and test network (via sandbox) but I cannot get the extension to show balances for any accounts - instead balances go blank and the transactions don't show either.

Sometimes, the console for the extension throws Error handling response: TypeError: Cannot read property 'length' of undefined at chrome-extension://kmmolakhbgdlpkjkcjkebenjheonagdm/main.js:1560:465. Sometimes I think I had a CORs issue or something.

Steps to reproduce:

git clone https://github.com/algorand/sandbox.git
cd sandbox
./sandbox up

Then:

Is it possible to sign single transactions belonging to a group?

Hello, I'm trying to sign a transaction belonging to a group of two transactions. The first transaction has already been signed server-side, and I'm trying to sign the second one client-side using AlgoSigner, but I'm receiving this error: "The transaction group is incomplete or presented in a different order than when it was created.".

By looking at the code (

test('Reject on Group ID for Single Transactions', async () => {
) I suppose is not possible to sign single transactions belonging to a group.

Am I right?

AlgoSigner is not added to `window` global in certain cases

I believe this may be a related closed issue:
#396

In some cases, it appears that AlgoSigner does not attach itself to the window global. It seems to happen after a page refresh. But it's intermittent and hard to debug.

Also, noticed that AlgoSigner does not inject itself to window if opening a blank tab, or on localhost. Is that behavior documented anywhere?

Just looking for more information so I can figure out how to reproduce/debug this issue. Thanks.

Wrong total displayed

Hello,

we noticed an error in the displayed total.

For example, we are signing this algosdk transaction:
p { amount: 6000000, fee: 1000 flatFee: false from: {publicKey: Uint8Array(32), checksum: Uint8Array(4)} genesisHash: Uint8Array(32) genesisID: "testnet-v1.0", group: undefined, lastRound: 16265985, name: "Transaction" note: Uint8Array(76) tag: Uint8Array(2) to: {publicKey: Uint8Array(32), checksum: Uint8Array(4)} type: "pay" }

However, while the raw transaction in AlgoSigner is correct, it displays an amount of 10006 Algos (see the pictures). Both amount and fee are passed as numbers to the transaction constructor.
Screenshot 2021-08-26 at 20 44 11
Screenshot 2021-08-26 at 20 44 31

Any idea on how to fix this?

Thanks!

OS X Password field freezes/stutters on extended desktop

Using OS X (verified on Catalina 10.15.6, and Mojave 10.14.6) with an external monitor with the "mirrored display" off and the browser placed on the external monitor - in Chrome latest, the Password field of the create account is exceptionally slow or frozen.

The team is aware and looking for a resolution. In the meantime it is possible to work around by either using the 'mirrored display' setting, placing the browser on the laptop screen, or not using an external monitor.

Newcomers become confused when creating account

While creating account, I copy the Mnemonic and go to text editor to save the Mnemonic. When I return to the AlgoSigner extension, I am not shown the Mnemonic and address again.
I can still import account with the Mnemonic and see the address. But newcomers become confused and paranoid that they were unable to copy the address at the first attempt. Newcomers would like to copy both the address and Mnemonic without going to the main screen.

Attaching the related gif
ezgif-1-60e33f269acd

Define what is wrong with txnObject when calling AlgoSigner.sign() method.

Current implementation does not emit a clear error about what is wrong with txnObject. So for example if to address is not valid, AlgoSigner should emit an error clearly identifying that "To Address is not valid." . Instead it says "Some properties are not valid.". This is very hard to debug as user does not have a way to determine what's wrong with the object.

Unable to connect to Sandbox

I have setup sandbox and am able to interact with the APIs using curl and the go-sdk.

I have configured AlgoSigner's Sandbox network matching the configuration in the 1.4 announcement blog post.

I imported my test account mnemonics into AlgoSigner with the proper network (Sandbox) selected.

Once the accounts are imported and I select them the balances and the transactions never load. There is just a spinner below Transactions.

My guess is there may be an issue with my headers? The README was cryptic and the blog post was the only reference I have found pointing me towards the expected header

Network Headers: Object stucture that will be used as replacement headers for calls. The object structure has an "Algod" and "Indexer" sub structure which will contain the headers the target api needs in order to function.

Firefox Release?

Is there any word on releasing this to firefox (or firefox forks) any time soon? Don't know if there are ways to upload this as developer version through the firefox add-on feature

Validation failed for transaction due to invalid properties

Got error when try to sign the transaction, i am not found the error message in https://github.com/PureStake/algosigner/blob/develop/docs/dApp-integration.md#rejection-messages

Error:

{
    "message": "Validation failed for transaction due to invalid properties.",
    "code": 4300,
    "name": "InvalidFields",
    "data": "Validation failed for transaction #0 because of invalid properties [genesisID: The associated genesis id does not match a supported ledger.]. "
}

How to connect:

AlgoSigner
        .connect()
        .then((res: any) => {
        .........

How to sign:

 AlgoSigner
        .signTxn(txns)
        .then((res: any) => {
        .......

Sandbox status:

❯ ./sandbox status -v

algod - goal node status
Last committed block: 46234
Time since last block: 0.5s
Sync Time: 0.0s
Last consensus protocol: https://github.com/algorandfoundation/specs/tree/d5ac876d7ede07367dbaa26e149aa42589aac1f7
Next consensus protocol: https://github.com/algorandfoundation/specs/tree/d5ac876d7ede07367dbaa26e149aa42589aac1f7
Round for next consensus protocol: 46235
Next consensus protocol supported: true
Last Catchpoint: 
Genesis ID: sandnet-v1
Genesis hash: CVdnP9aMgTVL4hiCAfZEUAU6/DOM652Dsp5d3f9ys5I=

indexer - health
{
  "data": {
    "migration-required": false,
    "migration-status": "Migrations Complete"
  },
  "db-available": true,
  "is-migrating": false,
  "message": "46234",
  "round": 46234,
  "version": "(unknown version)"
}

AlgoSigner instance (chrome extension ):

{
    "consensus-version": "https://github.com/algorandfoundation/specs/tree/d5ac876d7ede07367dbaa26e149aa42589aac1f7",
    "fee": 0,
    "genesis-hash": "wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=",
    "genesis-id": "mainnet-v1.0",
    "last-round": 21188805,
    "min-fee": 1000
}

is there anyone can help ? thanks

Question on signing a multisig with Algosigner

Is it possible, given a multisig address M generated by addresses A,B,C and threshold = 2, to create a pay tx where 'from'=M and that I can sign with private key of A to generate the signed tx, and then hand over the signed tx to the other participant B to add his signature? I've found many examples on multisig but none with Algosigner as signer.

Sign Stateful Smart Contract update transaction using algosigner

I am currently developing a web application using angular, Algosigner, and TEAL stateless smart contract. I started with a basic attempt to develop a smart contract that writes a string on the global state then updates it if an update request is sent from Algosigner. However, I got the following error message:
"errors : {"message":"TransactionPool.Remember: transaction 244HDWNY5BMNMRXAKM5KZX2KXOAALUDJ56JCA2AICS6CNXHKU2CA: check failed on ClearStateProgram: program version 10 greater than max supported version 4"}"

It is to be noted that the same transaction works fine with algosdk (version 1.9.1). However, I would like to sign it with Algosigner.

The adopted versions are:
Algosigner 1.5.1
Angular:12.0.3
nodejs: v14.16.0

Below are the codes of the teal approval and clear programs along with the Algosigner method and the transaction parameters details.
Approval program
image

Clear state program:
image

Transaction parameters details:
{
"type": "appl",
"from": "ROY4QWRX44K2EBJ7P7FB63TKTMXLBEPPL2BKPBHAVUBJCC4XH5H5DENFIE",
"fee": 1000,
"firstRound": 14632823,
"lastRound": 14633823,
"note": "note",
"genesisID": "testnet-v1.0",
"genesisHash": "SGO1GKSzyE7IEPItTxCByw9x8FmnrCDexi9/cOUJOiI=",
"group": null,
"lease": null,
"reKeyTo": null,
"flatFee": null,
"name": null,
"tag": null,
"appIndex": 16037988,
"appOnComplete": 4,
"appAccounts": null,
"appApprovalProgram": "AiADAAQBJgMEbmFtZQZoYWxpbWEEc2FmYSIxGRJAAAgjMRkSQAAGACgpZyRDKCpnJEM=",
"appClearProgram": "CopyAiABASJD",
"appForeignApps": null,
"appForeignAssets": null,
"appGlobalInts": null,
"appGlobalByteSlices": null,
"appLocalInts": null,
"appLocalByteSlices": null
}

Algosigner update method:
`updateApplicationTxn = () => {

// @ts-ignore
AlgoSigner.algod({
  ledger: this.ledger,
  path: '/v2/transactions/params'
})
  .then((d) => {
    let txParams = d;
    // @ts-ignore 
    AlgoSigner.sign({
      type: 'appl',
      from: this.connectedAccount,
      fee: txParams['min-fee'],
      firstRound: txParams['last-round'],
      lastRound: txParams['last-round'] + 1000,
      genesisID: txParams['genesis-id'],
      genesisHash: txParams['genesis-hash'],
      appIndex: 16037988,
      note: 'note',
      appApprovalProgram: "AiADAAQBJgMEbmFtZQZoYWxpbWEEc2FmYSIxGRJAAAgjMRkSQAAGACgpZyRDKCpnJEM=",
      appClearProgram: "CopyAiABASJD",
      appOnComplete: 4
    })
      .then((signedTx) => {
        // @ts-ignore 
        AlgoSigner.send({
          ledger: this.ledger,
          tx: signedTx.blob
        })
          .then((d) => {
            this.signedTx = d;
            this.lastmessage = " Transaction sent : " + JSON.stringify(d);
            this.txId = d.txId;
          })
          .catch(
            err => {
              console.log(JSON.stringify(err))
              this.message = JSON.stringify(err)
            })
       })
      .catch(
        err => {
          console.log(JSON.stringify(err))
          this.message = JSON.stringify(err)
        })
  })
  .catch(
    err => {
      console.log(JSON.stringify(err))
      this.message = JSON.stringify(err)
    })

}`

If it can help, please find below the algosdk method that worked just fine:
`
_publics.updateSSC = async (sender) =>{

let params = await client.getTransactionParams().do();
let approvalProgram=new Uint8Array(Buffer.from("AiADAAQBJgMEbmFtZQZoYWxpbWEEc2FmYSIxGRJAAAgjMRkSQAAGACgpZyRDKCpnJEM=", "base64"));
let index=16037988
let clearProgram= new Uint8Array(Buffer.from("AiABASJD", "base64"));
let txn = algosdk.makeApplicationUpdateTxn(sender, params, index, approvalProgram, clearProgram);
let myAccount = algosdk.mnemonicToSecretKey("my passphrase")
let signedTxn = txn.signTxn(myAccount.sk);
let txId = txn.txID().toString();
await client.sendRawTransaction(signedTxn).do();
return txn

}

`

I would be grateful if you can help resolve this issue. Please feel free to ask for any additional information.

Extension create account fades out after alt-tabbing

I'm trying to create a new account through the AlgoSigner Chrome extension and in both Chrome and Brave, whenever I alt-tab to be able to write the password down in a password manager, the extension pop-up fades out so I have to begin the process all over again.

Is there an alternative way for me to create an account that can be used by AlgoSigner? The browser's behaviour is blocking me from creating an account and I'm sure it would block potential users of our dApp from using AlgoSigner.

v2 Sign - converting circular structures error

Reported by a user - will review internally and identify issue

  1. Transaction a is an app creation call with args passed and has a signers: [] and signed separately by logisic, hence no need to sign by user via algosigner but i still provide it for group validation and to avoid (part of unknown transaction group warning)
  2. Transaction b is a simple pay transaction that needs signing by user

Here is what i experience when i use the v2 algosigner methods.
If i encode the args array in app create transaction into a string - i get an error from algosigner that its a part of an unknown transaction group
If i don't encode it an leave as uint8array, i get the fancy new signer screen where i click sign for each transaction in a group, when i click sign for the last transaction in a group i get converting circular structures error.

Hence, this blocks me from upgrading to v2 algosigner and i have to continue sending individual transactions for signing via v1 methods

Request an extension support for firefox or safari

It would be great if there is an extension available for safari or firefox. Thus we can give a choice to the end user on which browser they can use to visit our dApp. Metamask is having a firefox and chrome extension. Limiting us to one browser may negatively effect adoption.

Capture2

Missing Authentication Token

I would like to find the list of transactions of a address.
When I run the below code, I get "Missing Authentication Token" error message

await AlgoSigner.algod({
  ledger: 'MainNet',
  path: '/v2/accounts/GVZFXMO3QO5JMLQGQCYZG7SOWHZJ47BYUWXA6WDZOVJPFKX2M46X5C2YEU/transactions'
})

I am able to run the below code without any error

await AlgoSigner.algod({
  ledger: 'MainNet',
  path: '/v2/accounts/GVZFXMO3QO5JMLQGQCYZG7SOWHZJ47BYUWXA6WDZOVJPFKX2M46X5C2YEU'
})

Build fails with recursion errors

The build will currently fail with recursion errors similar to:

ERROR in ./node_modules/algosdk/src/client/v2/algod/sendRawTransaction.js Module not found: Error: Recursion in resolving

This is due to the Algosdk package not being pinned to the last known good version, 1.7.2, and the new 1.8.0 version containing a breaking change.

The next release will again pin the Algosdk version, in the meantime, if you are building from source, you may wish to do so yourself.

Incomplete Docs for AlgoSigner.sign() Method

AlgoSigner.sign method expects type key which is being checked in actions.ts and not specified in docs.
here is the screenshot of the code block. Without this key in txnObject AlgoSigner.sign() always throws an error.
image

docs should be

let txn = {
   type: "Pay|Acfg|Afrz|Axfer|Keyreg"
   from: accounts[0].address,
   to: 'PBZHOKKNBUCCDJB7KB2KLHUMWCGAMBXZKGBFGGBHYNNXFIBOYI7ONYBWK4',
   fee: txParams['min-fee'],
   amount: amount,
   firstRound: txParams['last-round'],
   lastRound: txParams['last-round'] + 1000,
   genesisID: txParams['genesis-id'],
   genesisHash: txParams['genesis-hash'],
   note: 'NOTE is a string',
};

AlgoSigner.sign(txn);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.