const e=require(`../../../../_virtual/_rolldown/runtime.cjs`),t=require(`../../constants/chains.constants.cjs`),n=require(`../../functions/utils/create-provider.cjs`);let r=require(`ethers`),i=require(`@solana/web3.js`),a=require(`bs58`);a=e.__toESM(a);let o=require(`tweetnacl`);o=e.__toESM(o);var s=class{static getEvmPrivateKeyFromSolanaPrivateKey=e=>{let t=a.default.decode(e).slice(0,32);return r.ethers.hexlify(t)};static getSolanaPrivateKeyFromEvmPrivateKey=e=>{let t=r.ethers.getBytes(e),n=i.Keypair.fromSeed(t);return a.default.encode(n.secretKey)};static getSolanaSignerFromPrivateKey=e=>{let t=a.default.decode(e);return i.Keypair.fromSecretKey(t)};static getSignerAddressFromPrivateKey(e,n){return t.isSolanaLike(e)?this.getSolanaSignerFromPrivateKey(n).publicKey.toString():new r.ethers.Wallet(n).address}static signMessageFromPrivateKey=async(e,n,i)=>{if(t.isSolanaLike(e)){let e=this.getSolanaSignerFromPrivateKey(n),t=r.ethers.isHexString(i)?r.ethers.getBytes(i):new TextEncoder().encode(i),a=o.default.sign.detached(t,e.secretKey);return`0x${Buffer.from(a).toString(`hex`)}`}let a=new r.ethers.Wallet(n),s=r.ethers.isHexString(i)?r.ethers.getBytes(i):i;return a.signMessage(s)};static signSolanaTransactionFromPrivateKey=(e,n,r)=>{if(!t.isSolanaLike(e))throw Error(`Solana transaction signing is only available for Solana chains`);let i=this.getSolanaSignerFromPrivateKey(n);r.sign([i])};static sendAndSignSolanaTransactionFromPrivateKey=async(e,t,n,r=!1)=>{let i=this.getSolanaSignerFromPrivateKey(t);return n.sign([i]),await e.sendRawTransaction(n.serialize(),{skipPreflight:r,preflightCommitment:`confirmed`})};static signTypedDataFromPrivateKey=async(e,n,i,a,o)=>{if(t.isSolanaLike(e))throw Error(`Solana does not support typed data`);return await new r.ethers.Wallet(n).signTypedData(i,a,o)};static authorizeDelegation=async(e,i,a,o)=>{if(t.isSolanaLike(e))throw Error(`Solana does not support delegation`);let s=n.createJsonRpcProvider(e);return await new r.ethers.Wallet(i).connect(s).authorize({address:a,...o!==void 0&&{nonce:o}})};static getAddressFromSubAccount=(e,n)=>t.isSolanaLike(e)?n.solanaAddress:n.ethAddress;static getPrivateKeyFromSubAccount=(e,n)=>t.isSolanaLike(e)?n.solanaPrivateKey:n.privateKey;static getAvailableAddressFromSubAccount=e=>{let t=e.ethAddress??e.solanaAddress;if(!t)throw Error(`No address available for subaccount`);return t}};exports.AccountActions=s;