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

Account.sendMoney() function failing. #1452

Open
B35000 opened this issue Feb 4, 2025 · 0 comments
Open

Account.sendMoney() function failing. #1452

B35000 opened this issue Feb 4, 2025 · 0 comments

Comments

@B35000
Copy link

B35000 commented Feb 4, 2025

Im trying to initiate a send money transaction in my basic web-wallet that sends some near from a funded address to a new address in a custom CRA javascript application, but the function for actually building, signing and submitting the transaction to the network is failing. My codebase looks like this:

const nearAPI = require("near-api-js");
const { connect, keyStores, utils, KeyPair } = nearAPI;
...

run_near_transaction = async (wallet, wallet2) => {
  const keyStore = new keyStores.InMemoryKeyStore();
  const keyPair = KeyPair.fromString(wallet.account.secretKey);
  await keyStore.setKey("mainnet", wallet.address, keyPair); //<-------set my account's keys in the keyStore

  const config = {
      networkId: "mainnet",
      nodeUrl: "https://1rpc.io/near",
      walletUrl: "https://1rpc.io/near",
      helperUrl: 'https://1rpc.io/near',
      keyStore: keyStore,
    };

   const near = await connect(config);
  ...

Im using the inMemoryKeyStore because im generating a wallet from a mnemonic. The wallet.account.secretKey is the secret key im using and the wallet.address is a valid near protocol address. The address im using is this: 1933b1fa96e6f84bcedf0ab46ccd2a224e92362c3a7c4478e2bd71b4fe83f699; it has about 0.25 Near as of the time of this writing, enough to be recognized by the network as a valid account.

  ...
  const amount = this.nearToYocto('0.1')
  const account = await near.account(wallet.address);
  try{
    var state = await account.state()
    console.log(state)
    const result = await account.sendMoney(wallet2.address, amount); //<---------- this call fails
    console.log("Transaction Result:", result);
  }catch(e){
    console.log(e)
  }
}

this.nearToYocto() converts a specified amount of Near into the base unit denominations and wallet2.address is a second new address i'm generating from another mnemonic. I query the state of the account to check if it exists in the network and it does; heres the response i'm getting from the await account.state() function call:

{
    "amount": "250000000000000000000000",
    "block_hash": "8B94eWwm1FjxjQnBAA7cpkh67anojwAPEpfoHUQ7HxRm",
    "block_height": 138969632,
    "code_hash": "11111111111111111111111111111111",
    "locked": "0",
    "storage_paid_at": 0,
    "storage_usage": 182
}

but when it attempts to execute the await account.sendMoney() function, it fails throwing this error:

TypedError: Can not sign transactions for account 1933b1fa96e6f84bcedf0ab46ccd2a224e92362c3a7c4478e2bd71b4fe83f699 on network mainnet, no matching key pair exists for this account
    at Account.signTransaction (account.cjs:50:1)
    at async account.cjs:72:1
    at async exponentialBackoff (exponential-backoff.cjs:8:1)
    at async Account.signAndSendTransaction (account.cjs:71:1)
    at async App.run_near_transaction (App.js:2680:1)

NPM version: 9.6.7, Node version: 18.17.1, the near-api-js version in my package.json: "near-api-js": "^5.0.1".

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

No branches or pull requests

1 participant