我需要你的帮助,因为我已经被这个问题困扰好几天了。
我正在尝试在 Solana 上进行超级简单的交换。使用 Raydium 在 devnet 上的 Sol 和 USDC 之间。
const { Connection, Keypair, PublicKey } = require('@solana/web3.js');
const { Liquidity, TokenAmount, Token, Percent } = require('@raydium-io/raydium-sdk');
const devnetConnection = new Connection('https://api.devnet.solana.com');
const privateKey = []; // secretKey
const wallet = Keypair.fromSecretKey(new Uint8Array(privateKey));
const ADDRESSFROM = 'So11111111111111111111111111111111111111112';
const ADDRESSTO = 'EP2ib6dYdEeqD8MfE2ezHCxX3kP3K2eLKkirfPm5eyMx';
const OWNER = '675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8';
async function main() {
const poolKeys = {
id: new PublicKey(OWNER),
};
const TOKENFROM = new Token(devnetConnection, new PublicKey(ADDRESSFROM), 9, wallet.publicKey);
const TOKENTO = new Token(devnetConnection, new PublicKey(ADDRESSTO), 6, wallet.publicKey);
const rawAmountIn = 1;
const amountIn = new TokenAmount(TOKENFROM, rawAmountIn * 10**TOKENFROM.decimals, false);
const slippage = new Percent(50, 10000);
const poolInfo = await Liquidity.fetchInfo(devnetConnection, poolKeys);
const { minAmountOut } = Liquidity.computeAmountOut(poolInfo, amountIn, TOKENTO, slippage);
const { transaction, signers } = await Liquidity.makeSwapTransaction({
connection: devnetConnection,
poolKeys,
userKeys: {
owner: wallet.publicKey,
},
amountIn,
amountOut: minAmountOut,
fixedSide: 'in',
});
const signature = await devnetConnection.sendTransaction(transaction, [wallet, ...signers]);
console.log(`Transaction hash: ${signature}`);
await devnetConnection.confirmTransaction(signature);
console.log(`Transaction confirmed: ${signature}`);
}
main().catch(error => {
console.error(error);
});
我无法解决此公钥问题并进行交易。
reason: 'invalid public key',
code: 'INVALID_ARGUMENT',
argument: 'publicKey',
开发网上的 USDC 地址与主网上不同。
您正在使用
EP2ib6dYdEeqD8MfE2ezHCxX3kP3K2eLKkirfPm5eyMx
的主网地址,但如果您在 devnet 上查看该帐户,您会发现它不存在 https://explorer.solana.com/address/EP2ib6dYdEeqD8MfE2ezHCxX3kP3K2eLKkirfPm5eyMx?cluster=开发网
这是官方 devnet USDC 地址:https://explorer.solana.com/address/4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU?cluster=devnet
这个问题你解决了吗?或者你还有吗?