@solana-mobile/mobile-wallet-adapter-walletlib 1.4.3 → 1.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/src/main/java/com/solanamobile/mobilewalletadapterwalletlib/reactnative/SolanaMobileWalletAdapterWalletLibModule.kt +18 -14
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/package.json +6 -5
- package/src/errors.ts +15 -0
- package/src/index.ts +7 -0
- package/src/initializeMWAEventListener.ts +34 -0
- package/src/initializeMobileWalletAdapterSession.ts +67 -0
- package/src/mwaSessionEvents.ts +75 -0
- package/src/resolve.ts +232 -0
- package/src/useDigitalAssetLinks.ts +41 -0
- package/src/useMobileWalletAdapterSession.ts +31 -0
|
@@ -135,7 +135,8 @@ class SolanaMobileWalletAdapterWalletLibModule(val reactContext: ReactApplicatio
|
|
|
135
135
|
walletName: String,
|
|
136
136
|
config: String,
|
|
137
137
|
promise: Promise,
|
|
138
|
-
)
|
|
138
|
+
) {
|
|
139
|
+
launch {
|
|
139
140
|
// Get the intent that started this activity
|
|
140
141
|
val intent = reactContext.getCurrentActivity()?.intent
|
|
141
142
|
if (intent == null) {
|
|
@@ -193,6 +194,7 @@ class SolanaMobileWalletAdapterWalletLibModule(val reactContext: ReactApplicatio
|
|
|
193
194
|
|
|
194
195
|
promise.resolve(scenarioId)
|
|
195
196
|
Log.d(TAG, "scenario created: $walletName")
|
|
197
|
+
}
|
|
196
198
|
}
|
|
197
199
|
|
|
198
200
|
/* Generic Request functions */
|
|
@@ -205,7 +207,8 @@ class SolanaMobileWalletAdapterWalletLibModule(val reactContext: ReactApplicatio
|
|
|
205
207
|
}
|
|
206
208
|
|
|
207
209
|
@ReactMethod
|
|
208
|
-
fun resolve(requestJson: String, responseJson: String)
|
|
210
|
+
fun resolve(requestJson: String, responseJson: String) {
|
|
211
|
+
launch {
|
|
209
212
|
val completedRequest =
|
|
210
213
|
json.decodeFromString(
|
|
211
214
|
MobileWalletAdapterRequestSerializer,
|
|
@@ -409,6 +412,7 @@ class SolanaMobileWalletAdapterWalletLibModule(val reactContext: ReactApplicatio
|
|
|
409
412
|
else -> completeWithInvalidResponse()
|
|
410
413
|
}
|
|
411
414
|
}
|
|
415
|
+
}
|
|
412
416
|
}
|
|
413
417
|
|
|
414
418
|
private fun checkSessionId(sessionId: String, doIfValid: (() -> Unit)) =
|
|
@@ -467,10 +471,10 @@ class SolanaMobileWalletAdapterWalletLibModule(val reactContext: ReactApplicatio
|
|
|
467
471
|
request.request
|
|
468
472
|
.identityName,
|
|
469
473
|
request.request.identityUri
|
|
470
|
-
|
|
474
|
+
?.toString(),
|
|
471
475
|
request.request
|
|
472
476
|
.iconRelativeUri
|
|
473
|
-
|
|
477
|
+
?.toString(),
|
|
474
478
|
request.request.features
|
|
475
479
|
?.asList(),
|
|
476
480
|
request.request.addresses
|
|
@@ -486,10 +490,10 @@ class SolanaMobileWalletAdapterWalletLibModule(val reactContext: ReactApplicatio
|
|
|
486
490
|
request.request
|
|
487
491
|
.identityName,
|
|
488
492
|
request.request.identityUri
|
|
489
|
-
|
|
493
|
+
?.toString(),
|
|
490
494
|
request.request
|
|
491
495
|
.iconRelativeUri
|
|
492
|
-
|
|
496
|
+
?.toString(),
|
|
493
497
|
request.request
|
|
494
498
|
.authorizationScope
|
|
495
499
|
)
|
|
@@ -501,10 +505,10 @@ class SolanaMobileWalletAdapterWalletLibModule(val reactContext: ReactApplicatio
|
|
|
501
505
|
request.request
|
|
502
506
|
.identityName,
|
|
503
507
|
request.request.identityUri
|
|
504
|
-
|
|
508
|
+
?.toString(),
|
|
505
509
|
request.request
|
|
506
510
|
.iconRelativeUri
|
|
507
|
-
|
|
511
|
+
?.toString(),
|
|
508
512
|
request.request
|
|
509
513
|
.authorizationScope
|
|
510
514
|
)
|
|
@@ -516,10 +520,10 @@ class SolanaMobileWalletAdapterWalletLibModule(val reactContext: ReactApplicatio
|
|
|
516
520
|
request.request
|
|
517
521
|
.identityName,
|
|
518
522
|
request.request.identityUri
|
|
519
|
-
|
|
523
|
+
?.toString(),
|
|
520
524
|
request.request
|
|
521
525
|
.iconRelativeUri
|
|
522
|
-
|
|
526
|
+
?.toString(),
|
|
523
527
|
request.request
|
|
524
528
|
.authorizationScope,
|
|
525
529
|
request.request.payloads
|
|
@@ -533,10 +537,10 @@ class SolanaMobileWalletAdapterWalletLibModule(val reactContext: ReactApplicatio
|
|
|
533
537
|
request.request
|
|
534
538
|
.identityName,
|
|
535
539
|
request.request.identityUri
|
|
536
|
-
|
|
540
|
+
?.toString(),
|
|
537
541
|
request.request
|
|
538
542
|
.iconRelativeUri
|
|
539
|
-
|
|
543
|
+
?.toString(),
|
|
540
544
|
request.request
|
|
541
545
|
.authorizationScope,
|
|
542
546
|
request.request.payloads
|
|
@@ -550,10 +554,10 @@ class SolanaMobileWalletAdapterWalletLibModule(val reactContext: ReactApplicatio
|
|
|
550
554
|
request.request
|
|
551
555
|
.identityName,
|
|
552
556
|
request.request.identityUri
|
|
553
|
-
|
|
557
|
+
?.toString(),
|
|
554
558
|
request.request
|
|
555
559
|
.iconRelativeUri
|
|
556
|
-
|
|
560
|
+
?.toString(),
|
|
557
561
|
request.request
|
|
558
562
|
.authorizationScope,
|
|
559
563
|
request.request.payloads
|
package/lib/types/index.d.ts
CHANGED
|
@@ -193,7 +193,7 @@ declare function resolve(request: SignMessagesRequest, response: SignMessagesRes
|
|
|
193
193
|
declare function resolve(request: SignTransactionsRequest, response: SignTransactionsResponse): void;
|
|
194
194
|
declare function resolve(request: SignAndSendTransactionsRequest, response: SignAndSendTransactionsResponse): void;
|
|
195
195
|
//#endregion
|
|
196
|
-
//#region ../../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.1.0_typescript@5.
|
|
196
|
+
//#region ../../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/lib/index.d.ts
|
|
197
197
|
type TransactionVersion = 'legacy' | 0;
|
|
198
198
|
/**
|
|
199
199
|
* Versioned transaction class
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["Buffer","Agent","Agent$1","Struct","constructor","properties","encode","decode","data","decodeUnchecked","Enum","enum","SOLANA_SCHEMA","Function","Map","MAX_SEED_LENGTH","PUBLIC_KEY_LENGTH","PublicKeyInitData","Uint8Array","Array","PublicKeyData","PublicKey","Symbol","toStringTag","Promise","value","unique","default","equals","publicKey","toBase58","toJSON","toBytes","toBuffer","toString","createWithSeed","fromPublicKey","seed","programId","createProgramAddressSync","seeds","createProgramAddress","findProgramAddressSync","findProgramAddress","isOnCurve","pubkeyData","Account","secretKey","Blockhash","BPF_LOADER_DEPRECATED_PROGRAM_ID","EpochSchedule","slotsPerEpoch","leaderScheduleSlotOffset","warmup","firstNormalEpoch","firstNormalSlot","getEpoch","slot","getEpochAndSlotIndex","getFirstSlotInEpoch","epoch","getLastSlotInEpoch","getSlotsInEpoch","_default","globalThis","fetch","FeeCalculator","lamportsPerSignature","NONCE_ACCOUNT_LENGTH","DurableNonce","NonceAccount","authorizedPubkey","nonce","feeCalculator","fromAccountData","buffer","Ed25519SecretKey","Ed25519Keypair","Signer","Keypair","_keypair","keypair","generate","fromSecretKey","skipValidation","options","fromSeed","PACKET_DATA_SIZE","VERSION_PREFIX_MASK","SIGNATURE_LENGTH_IN_BYTES","TransactionExpiredBlockheightExceededError","Error","signature","TransactionExpiredTimeoutError","timeoutSeconds","TransactionExpiredNonceInvalidError","AccountKeysFromLookups","LoadedAddresses","MessageAccountKeys","TransactionInstruction","MessageCompiledInstruction","staticAccountKeys","accountKeysFromLookups","keySegments","get","index","length","compileInstructions","instructions","CompiledInstruction","programIdIndex","accounts","MessageArgs","MessageHeader","header","accountKeys","recentBlockhash","CompileLegacyArgs","payerKey","Message","MessageAddressTableLookup","indexToProgramIds","args","version","compiledInstructions","addressTableLookups","getAccountKeys","compile","isAccountSigner","isAccountWritable","isProgramId","programIds","nonProgramIds","serialize","from","AddressLookupTableState","deactivationSlot","lastExtendedSlot","lastExtendedSlotStartIndex","authority","addresses","AddressLookupTableAccountArgs","key","state","AddressLookupTableAccount","isActive","deserialize","accountData","CreateLookupTableParams","payer","recentSlot","FreezeLookupTableParams","lookupTable","ExtendLookupTableParams","DeactivateLookupTableParams","CloseLookupTableParams","recipient","LookupTableInstructionType","AddressLookupTableInstruction","decodeInstructionType","instruction","decodeCreateLookupTable","decodeExtendLookupTable","decodeCloseLookupTable","decodeFreezeLookupTable","decodeDeactivateLookupTable","AddressLookupTableProgram","createLookupTable","params","freezeLookupTable","extendLookupTable","deactivateLookupTable","closeLookupTable","ComputeBudgetInstruction","ComputeBudgetInstructionType","RequestUnitsParams","RequestHeapFrameParams","SetComputeUnitLimitParams","SetComputeUnitPriceParams","decodeRequestUnits","decodeRequestHeapFrame","decodeSetComputeUnitLimit","decodeSetComputeUnitPrice","units","additionalFee","bytes","microLamports","ComputeBudgetProgram","requestUnits","requestHeapFrame","setComputeUnitLimit","setComputeUnitPrice","CreateEd25519InstructionWithPublicKeyParams","message","instructionIndex","CreateEd25519InstructionWithPrivateKeyParams","privateKey","Ed25519Program","createInstructionWithPublicKey","createInstructionWithPrivateKey","CreateSecp256k1InstructionWithPublicKeyParams","recoveryId","CreateSecp256k1InstructionWithEthAddressParams","ethAddress","CreateSecp256k1InstructionWithPrivateKeyParams","Secp256k1Program","publicKeyToEthAddress","createInstructionWithEthAddress","STAKE_CONFIG_ID","Authorized","staker","withdrawer","Lockup","unixTimestamp","custodian","CreateStakeAccountParams","fromPubkey","stakePubkey","authorized","lockup","lamports","CreateStakeAccountWithSeedParams","basePubkey","InitializeStakeParams","DelegateStakeParams","votePubkey","AuthorizeStakeParams","StakeAuthorizationType","newAuthorizedPubkey","stakeAuthorizationType","custodianPubkey","AuthorizeWithSeedStakeParams","authorityBase","authoritySeed","authorityOwner","SplitStakeParams","splitStakePubkey","SplitStakeWithSeedParams","WithdrawStakeParams","toPubkey","DeactivateStakeParams","MergeStakeParams","sourceStakePubKey","StakeInstruction","StakeInstructionType","decodeInitialize","decodeDelegate","decodeAuthorize","decodeAuthorizeWithSeed","decodeSplit","decodeMerge","decodeWithdraw","decodeDeactivate","StakeAuthorizationLayout","Readonly","Staker","Withdrawer","StakeProgram","Transaction","space","initialize","createAccountWithSeed","createAccount","delegate","authorize","authorizeWithSeed","split","rentExemptReserve","splitWithSeed","merge","withdraw","deactivate","CreateAccountParams","newAccountPubkey","TransferParams","AssignParams","accountPubkey","CreateAccountWithSeedParams","CreateNonceAccountParams","noncePubkey","CreateNonceAccountWithSeedParams","InitializeNonceParams","AdvanceNonceParams","WithdrawNonceParams","AuthorizeNonceParams","AllocateParams","AllocateWithSeedParams","AssignWithSeedParams","TransferWithSeedParams","DecodedTransferInstruction","DecodedTransferWithSeedInstruction","SystemInstruction","SystemInstructionType","decodeCreateAccount","decodeTransfer","decodeTransferWithSeed","decodeAllocate","decodeAllocateWithSeed","decodeAssign","decodeAssignWithSeed","decodeCreateWithSeed","decodeNonceInitialize","decodeNonceAdvance","decodeNonceWithdraw","decodeNonceAuthorize","SystemProgram","transfer","assign","createNonceAccount","nonceInitialize","nonceAdvance","nonceWithdraw","nonceAuthorize","allocate","VoteInit","nodePubkey","authorizedVoter","authorizedWithdrawer","commission","CreateVoteAccountParams","voteInit","InitializeAccountParams","AuthorizeVoteParams","VoteAuthorizationType","voteAuthorizationType","AuthorizeVoteWithSeedParams","currentAuthorityDerivedKeyBasePubkey","currentAuthorityDerivedKeyOwnerPubkey","currentAuthorityDerivedKeySeed","WithdrawFromVoteAccountParams","authorizedWithdrawerPubkey","UpdateValidatorIdentityParams","VoteInstruction","VoteInstructionType","decodeInitializeAccount","VoteAuthorizationLayout","Voter","VoteProgram","initializeAccount","safeWithdraw","currentVoteAccountBalance","rentExemptMinimum","updateValidatorIdentity","MessageV0Args","CompileV0Args","addressLookupTableAccounts","GetAccountKeysArgs","MessageV0","numAccountKeysFromLookups","resolveAddressTableLookups","serializeInstructions","serializeAddressTableLookups","serializedMessage","VersionedMessage","deserializeMessageVersion","numRequiredSignatures","numReadonlySignedAccounts","numReadonlyUnsignedAccounts","accountKey","writableIndexes","readonlyIndexes","accountKeyIndexes","TransactionSignature","TransactionStatus","BLOCKHEIGHT_EXCEEDED","PROCESSED","TIMED_OUT","NONCE_INVALID","AccountMeta","pubkey","isSigner","isWritable","TransactionInstructionCtorFields","keys","SerializeConfig","requireAllSignatures","verifySignatures","opts","SignaturePubkeyPair","TransactionCtorFields_DEPRECATED","NonceInformation","nonceInfo","feePayer","signatures","TransactionCtorFields","TransactionBlockhashCtor","blockhash","lastValidBlockHeight","TransactionNonceCtor","minContextSlot","nonceInstruction","Connection","minNonceContextSlot","add","items","compileMessage","serializeMessage","getEstimatedFee","connection","setSigners","signers","sign","partialSign","addSignature","config","populate","TransactionMessageArgs","DecompileArgs","TransactionMessage","decompile","compileToLegacyMessage","compileToV0Message","TransactionVersion","VersionedTransaction","serializedTransaction","ClientSubscriptionId","TokenAccountsFilter","mint","Context","SendOptions","Commitment","skipPreflight","preflightCommitment","maxRetries","ConfirmOptions","commitment","ConfirmedSignaturesForAddress2Options","before","until","limit","SignaturesForAddressOptions","RpcResponseAndContext","T","context","BlockhashWithExpiryBlockHeight","BlockheightBasedTransactionConfirmationStrategy","BaseTransactionConfirmationStrategy","DurableNonceTransactionConfirmationStrategy","nonceAccountPubkey","nonceValue","AbortSignal","abortSignal","TransactionConfirmationStrategy","Finality","LargestAccountsFilter","GetAccountInfoConfig","DataSlice","dataSlice","GetBalanceConfig","GetBlockConfig","rewards","transactionDetails","GetVersionedBlockConfig","maxSupportedTransactionVersion","GetStakeMinimumDelegationConfig","GetBlockHeightConfig","GetEpochInfoConfig","GetInflationRewardConfig","GetLatestBlockhashConfig","IsBlockhashValidConfig","GetSlotConfig","GetSlotLeaderConfig","GetTransactionConfig","GetVersionedTransactionConfig","GetLargestAccountsConfig","filter","GetSupplyConfig","excludeNonCirculatingAccountsList","SignatureStatusConfig","searchTransactionHistory","ContactInfo","gossip","tpu","rpc","VoteAccountInfo","activatedStake","epochVoteAccount","epochCredits","lastVote","VoteAccountStatus","current","delinquent","InflationGovernor","foundation","foundationTerm","initial","taper","terminal","InflationReward","effectiveSlot","amount","postBalance","RecentPrioritizationFees","prioritizationFee","GetRecentPrioritizationFeesConfig","lockedWritableAccounts","InflationRate","total","validator","EpochInfo","slotIndex","slotsInEpoch","absoluteSlot","blockHeight","transactionCount","LeaderSchedule","address","Version","SimulatedTransactionAccountInfo","executable","owner","rentEpoch","TransactionReturnDataEncoding","TransactionReturnData","SimulateTransactionConfig","sigVerify","replaceRecentBlockhash","encoding","innerInstructions","SimulatedTransactionResponse","TransactionError","ParsedInnerInstruction","err","logs","unitsConsumed","returnData","ParsedInstruction","PartiallyDecodedInstruction","TokenBalance","TokenAmount","accountIndex","uiTokenAmount","ParsedConfirmedTransactionMeta","ParsedTransactionMeta","writable","readonly","fee","preBalances","postBalances","logMessages","preTokenBalances","postTokenBalances","loadedAddresses","computeUnitsConsumed","costUnits","CompiledInnerInstruction","ConfirmedTransactionMeta","TransactionResponse","transaction","meta","blockTime","VersionedTransactionResponse","ConfirmedTransaction","ParsedMessageAccount","signer","source","program","parsed","ParsedAddressTableLookup","ParsedMessage","ParsedTransaction","ParsedConfirmedTransaction","ParsedTransactionWithMeta","BlockResponse","previousBlockhash","parentSlot","transactions","rewardType","AccountsModeBlockResponse","VersionedAccountsModeBlockResponse","NoneModeBlockResponse","VersionedNoneModeBlockResponse","ParsedBlockResponse","ParsedAccountsModeBlockResponse","Omit","Pick","ParsedNoneModeBlockResponse","VersionedBlockResponse","ConfirmedBlock","BlockSignatures","BlockProduction","ReadonlyArray","Record","byIdentity","range","firstSlot","lastSlot","GetBlockProductionConfig","identity","PerfSample","numTransactions","numSlots","samplePeriodSecs","Supply","circulating","nonCirculating","nonCirculatingAccounts","decimals","uiAmount","uiAmountString","TokenAccountBalancePair","AccountBalancePair","SlotUpdate","type","timestamp","parent","stats","numTransactionEntries","numSuccessfulTransactions","numFailedTransactions","maxTransactionsPerEntry","SlotInfo","root","ParsedAccountData","StakeActivationData","active","inactive","offset","MemcmpFilter","memcmp","DataSizeFilter","dataSize","GetProgramAccountsFilter","GetProgramAccountsConfig","filters","withContext","GetProgramAccountsResponse","AccountInfo","account","GetParsedProgramAccountsConfig","GetMultipleAccountsConfig","GetStakeActivationConfig","GetTokenAccountsByOwnerConfig","GetTransactionCountConfig","GetNonceConfig","GetNonceAndContextConfig","AccountSubscriptionConfig","ProgramAccountSubscriptionConfig","KeyedAccountInfo","accountId","accountInfo","AccountChangeCallback","ProgramAccountChangeCallback","keyedAccountInfo","SlotChangeCallback","slotInfo","SlotUpdateCallback","slotUpdate","SignatureResultCallback","SignatureResult","signatureResult","SignatureStatusNotification","result","SignatureReceivedNotification","SignatureSubscriptionCallback","notification","SignatureSubscriptionOptions","enableReceivedNotification","RootChangeCallback","Logs","LogsFilter","LogsCallback","ctx","TransactionConfirmationStatus","SignatureStatus","confirmations","confirmationStatus","ConfirmedSignatureInfo","memo","HttpHeaders","FetchFn","FetchMiddleware","Parameters","info","init","a","ConnectionConfig","httpAgent","wsEndpoint","httpHeaders","fetchMiddleware","disableRetryOnRateLimit","confirmTransactionInitialTimeout","endpoint","commitmentOrConfig","rpcEndpoint","getBalanceAndContext","getBalance","getBlockTime","getMinimumLedgerSlot","getFirstAvailableBlock","getSupply","getTokenSupply","tokenMintAddress","getTokenAccountBalance","tokenAddress","getTokenAccountsByOwner","ownerAddress","getParsedTokenAccountsByOwner","getLargestAccounts","getTokenLargestAccounts","mintAddress","getAccountInfoAndContext","getParsedAccountInfo","getAccountInfo","getMultipleParsedAccounts","publicKeys","rawConfig","getMultipleAccountsInfoAndContext","getMultipleAccountsInfo","getStakeActivation","getProgramAccounts","configOrCommitment","getParsedProgramAccounts","confirmTransaction","strategy","getCancellationPromise","getTransactionConfirmationPromise","confirmTransactionUsingBlockHeightExceedanceStrategy","confirmTransactionUsingDurableNonceStrategy","confirmTransactionUsingLegacyTimeoutStrategy","getClusterNodes","getVoteAccounts","getSlot","getSlotLeader","getSlotLeaders","startSlot","getSignatureStatus","getSignatureStatuses","getTransactionCount","getTotalSupply","getInflationGovernor","getInflationReward","getInflationRate","getEpochInfo","getEpochSchedule","getLeaderSchedule","getMinimumBalanceForRentExemption","dataLength","getRecentBlockhashAndContext","getRecentPerformanceSamples","getFeeCalculatorForBlockhash","getFeeForMessage","getRecentPrioritizationFees","getRecentBlockhash","getLatestBlockhash","getLatestBlockhashAndContext","isBlockhashValid","getVersion","getGenesisHash","getBlock","getParsedBlock","getBlockHeight","getBlockProduction","getTransaction","getParsedTransaction","getParsedTransactions","getTransactions","getConfirmedBlock","getBlocks","endSlot","getBlockSignatures","getConfirmedBlockSignatures","getConfirmedTransaction","getParsedConfirmedTransaction","getParsedConfirmedTransactions","getConfirmedSignaturesForAddress","getConfirmedSignaturesForAddress2","getSignaturesForAddress","getAddressLookupTable","getNonceAndContext","nonceAccount","getNonce","requestAirdrop","to","getStakeMinimumDelegation","simulateTransaction","transactionOrMessage","includeAccounts","sendTransaction","sendRawTransaction","rawTransaction","sendEncodedTransaction","encodedTransaction","onAccountChange","callback","removeAccountChangeListener","clientSubscriptionId","onProgramAccountChange","removeProgramAccountChangeListener","onLogs","removeOnLogsListener","onSlotChange","removeSlotChangeListener","onSlotUpdate","removeSlotUpdateListener","_buildArgs","override","extra","onSignature","onSignatureWithOptions","removeSignatureListener","onRootChange","removeRootChangeListener","BPF_LOADER_PROGRAM_ID","BpfLoader","getMinNumSignatures","load","elf","loaderProgramId","SendTransactionError","action","transactionMessage","transactionLogs","transactionError","getLogs","SolanaJSONRPCErrorCode","JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP","JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE","JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE","JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE","JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY","JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE","JSON_RPC_SERVER_ERROR_SLOT_SKIPPED","JSON_RPC_SERVER_ERROR_NO_SNAPSHOT","JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED","JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX","JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE","JSON_RPC_SCAN_ERROR","JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH","JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET","JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION","JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED","SolanaJSONRPCErrorCodeEnum","SolanaJSONRPCError","code","customMessage","Loader","chunkSize","VALIDATOR_INFO_KEY","Info","name","website","details","iconUrl","keybaseUsername","ValidatorInfo","fromConfigData","VOTE_PROGRAM_ID","Lockout","confirmationCount","EpochCredits","credits","prevCredits","AuthorizedVoter","PriorVoter","epochOfLastAuthorizedSwitch","targetEpoch","BlockTimestamp","VoteAccount","rootSlot","votes","authorizedVoters","priorVoters","lastTimestamp","SYSVAR_CLOCK_PUBKEY","SYSVAR_EPOCH_SCHEDULE_PUBKEY","SYSVAR_INSTRUCTIONS_PUBKEY","SYSVAR_RECENT_BLOCKHASHES_PUBKEY","SYSVAR_RENT_PUBKEY","SYSVAR_REWARDS_PUBKEY","SYSVAR_SLOT_HASHES_PUBKEY","SYSVAR_SLOT_HISTORY_PUBKEY","SYSVAR_STAKE_HISTORY_PUBKEY","Cluster","clusterApiUrl","cluster","tls","sendAndConfirmRawTransaction","confirmationStrategy","sendAndConfirmTransaction","LAMPORTS_PER_SOL"],"sources":["../../src/mwaSessionEvents.ts","../../src/resolve.ts","../../../../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.1.0_typescript@5.6.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/lib/index.d.ts","../../src/initializeMobileWalletAdapterSession.ts","../../src/useMobileWalletAdapterSession.ts","../../src/initializeMWAEventListener.ts","../../src/useDigitalAssetLinks.ts","../../src/errors.ts"],"x_google_ignoreList":[2],"mappings":";;;;;;;;aAIY,mBAAA;EACR,iBAAA;EACA,iBAAA;EACA,sBAAA;EACA,0BAAA;EACA,2BAAA;EACA,oBAAA;EACA,iBAAA;EACA,4BAAA;EACA,yBAAA;AAAA;AAAA,UAEa,gBAAA;EACb,MAAA,EAAQ,mBAAA;EACR,SAAA;AAAA;AAAA,KAGQ,iBAAA,GAAoB,QAAA;EAC5B,MAAA,EAAQ,mBAAA,CAAoB,iBAAA;AAAA,KAE5B,gBAAA;AAAA,KAEQ,iBAAA,GAAoB,QAAA;EAC5B,MAAA,EAAQ,mBAAA,CAAoB,iBAAA;AAAA,KAE5B,gBAAA;AAAA,KAEQ,sBAAA,GAAyB,QAAA;EACjC,MAAA,EAAQ,mBAAA,CAAoB,sBAAA;AAAA,KAE5B,gBAAA;AAAA,KAEQ,0BAAA,GAA6B,QAAA;EACrC,MAAA,EAAQ,mBAAA,CAAoB,0BAAA;AAAA,KAE5B,gBAAA;AAAA,KAEQ,2BAAA,GAA8B,QAAA;EACtC,MAAA,EAAQ,mBAAA,CAAoB,2BAAA;AAAA,KAE5B,gBAAA;AAAA,KAEQ,oBAAA,GAAuB,QAAA;EAC/B,MAAA,EAAQ,mBAAA,CAAoB,oBAAA;AAAA,KAE5B,gBAAA;AAAA,KAEQ,iBAAA,GAAoB,QAAA;EAC5B,MAAA,EAAQ,mBAAA,CAAoB,iBAAA;AAAA,KAE5B,gBAAA;AAAA,KAEQ,4BAAA,GAA+B,QAAA;EACvC,MAAA,EAAQ,mBAAA,CAAoB,4BAAA;AAAA,KAE5B,gBAAA;AAAA,KAEQ,yBAAA,GAA4B,QAAA;EACpC,MAAA,EAAQ,mBAAA,CAAoB,yBAAA;AAAA,KAE5B,gBAAA;AAAA,KAEQ,eAAA,GACN,iBAAA,GACA,iBAAA,GACA,sBAAA,GACA,0BAAA,GACA,2BAAA,GACA,oBAAA,GACA,iBAAA,GACA,4BAAA,GACA,yBAAA;;;KC/CD,WAAA,GAAc,QAAA;EACf,WAAA;EACA,eAAA;EACA,YAAA;AAAA;AAAA,KAGQ,aAAA,GAAgB,QAAA;EACxB,MAAA;EACA,OAAA;EACA,SAAA;EACA,GAAA;EACA,OAAA;EACA,OAAA;EACA,KAAA;EACA,QAAA;EACA,cAAA;EACA,SAAA;EACA,SAAA;EACA,SAAA;AAAA;AAAA,KAGQ,oBAAA;AAAA,KACA,sBAAA;AAAA,KACP,0BAAA;;;;;KAOO,UAAA,GACN,mBAAA,GACA,uBAAA,GACA,8BAAA,GACA,oBAAA,GACA,sBAAA,GACA,sBAAA;AAAA,aAEM,cAAA;EACR,oBAAA;EACA,sBAAA;EACA,sBAAA;EACA,mBAAA;EACA,uBAAA;EACA,8BAAA;AAAA;AAAA,UAGM,WAAA;EACN,MAAA,EAAQ,cAAA;EACR,SAAA;EACA,SAAA;AAAA;AAAA,UAGM,0BAAA;EACN,KAAA;EACA,kBAAA,EAAoB,UAAA;EACpB,WAAA,GAAc,WAAA;AAAA;AAAA,KAGN,oBAAA,GAAuB,QAAA;EAC/B,MAAA,EAAQ,cAAA,CAAe,oBAAA;EACvB,KAAA;EACA,WAAA,GAAc,WAAA;EACd,QAAA,GAAW,eAAA;EACX,SAAA;EACA,aAAA,GAAgB,aAAA;AAAA,KAEhB,WAAA;AAAA,KAEQ,sBAAA,GAAyB,QAAA;EACjC,MAAA,EAAQ,cAAA,CAAe,sBAAA;AAAA,KAEvB,WAAA,GACA,0BAAA;AAAA,KAEQ,sBAAA,GAAyB,QAAA;EACjC,MAAA,EAAQ,cAAA,CAAe,sBAAA;AAAA,KAEvB,WAAA,GACA,0BAAA;AAAA,KAEQ,mBAAA,GAAsB,QAAA;EAC9B,MAAA,EAAQ,cAAA,CAAe,mBAAA;EACvB,QAAA,EAAU,UAAA;AAAA,KAEV,WAAA,GACA,0BAAA;AAAA,KAEQ,uBAAA,GAA0B,QAAA;EAClC,MAAA,EAAQ,cAAA,CAAe,uBAAA;EACvB,QAAA,EAAU,UAAA;AAAA,KAEV,WAAA,GACA,0BAAA;AAAA,KAEQ,8BAAA,GAAiC,QAAA;EACzC,MAAA,EAAQ,cAAA,CAAe,8BAAA;EACvB,QAAA,EAAU,UAAA;EACV,cAAA;EACA,UAAA;EACA,aAAA;EACA,UAAA;EACA,sCAAA;AAAA,KAEA,WAAA,GACA,0BAAA;;;;KAMQ,WAAA,GACN,qBAAA,GACA,uBAAA,GACA,uBAAA,GACA,oBAAA,GACA,wBAAA,GACA,+BAAA;AAAA,aAGM,oBAAA;EACR,YAAA;EACA,eAAA;EACA,iBAAA;EACA,qBAAA;AAAA;AAAA,KAGQ,oBAAA,GAAuB,QAAA;EAC/B,UAAA,EAAY,oBAAA,CAAqB,YAAA;AAAA;AAAA,KAGzB,uBAAA,GAA0B,QAAA;EAClC,UAAA,EAAY,oBAAA,CAAqB,eAAA;AAAA;AAAA,KAGzB,6BAAA,GAAgC,QAAA;EACxC,UAAA,EAAY,oBAAA,CAAqB,qBAAA;AAAA;AAAA,KAGzB,yBAAA,GAA4B,QAAA;EACpC,UAAA,EAAY,oBAAA,CAAqB,iBAAA;EACjC,KAAA;AAAA;AAAA,KAIQ,iBAAA,GAAoB,QAAA;EAC5B,SAAA,EAAW,UAAA;EACX,YAAA;EACA,IAAA;EACA,MAAA,GAAS,eAAA;EACT,QAAA,GAAW,eAAA;AAAA;AAAA,KAEH,YAAA,GAAe,QAAA;EACvB,OAAA,EAAS,oBAAA;EACT,cAAA,EAAgB,0BAAA;EAChB,SAAA,EAAW,sBAAA;EACX,cAAA;AAAA;AAAA,KAEQ,6BAAA,GAAgC,QAAA;EACxC,QAAA,EAAU,KAAA,CAAM,iBAAA;EAChB,aAAA;EACA,kBAAA,GAAqB,UAAA;EACrB,YAAA,GAAe,YAAA;AAAA;AAAA,KAEP,qBAAA,GAAwB,6BAAA,GAAgC,oBAAA;AAAA,KAGxD,+BAAA,GAAkC,QAAA;EAC1C,kBAAA,GAAqB,UAAA;AAAA;AAAA,KAEb,uBAAA,GAA0B,+BAAA,GAAkC,6BAAA;AAAA,KAG5D,+BAAA,GAAkC,QAAA,CAAS,MAAA;AAAA,KAC3C,uBAAA,GAA0B,+BAAA,GAAkC,6BAAA;AAAA,KAG5D,4BAAA,GAA+B,QAAA;EAAW,cAAA,EAAgB,UAAA;AAAA;AAAA,KAC1D,wBAAA,GACN,oBAAA,GACA,uBAAA,GACA,6BAAA,GACA,yBAAA;AAAA,KAEM,wBAAA,GAA2B,4BAAA,GAA+B,wBAAA;AAAA,KAC1D,oBAAA,GAAuB,4BAAA,GAA+B,wBAAA;AAAA,KAGtD,uCAAA,GAA0C,QAAA;EAAW,kBAAA,EAAoB,UAAA;AAAA;AAAA,KACzE,+BAAA,GACN,uCAAA,GACA,oBAAA,GACA,uBAAA,GACA,6BAAA,GACA,yBAAA;AAAA,iBAEU,OAAA,CAAQ,OAAA,EAAS,oBAAA,EAAsB,QAAA,EAAU,qBAAA;AAAA,iBACjD,OAAA,CAAQ,OAAA,EAAS,sBAAA,EAAwB,QAAA,EAAU,uBAAA;AAAA,iBACnD,OAAA,CAAQ,OAAA,EAAS,sBAAA,EAAwB,QAAA,EAAU,uBAAA;AAAA,iBACnD,OAAA,CAAQ,OAAA,EAAS,mBAAA,EAAqB,QAAA,EAAU,oBAAA;AAAA,iBAChD,OAAA,CAAQ,OAAA,EAAS,uBAAA,EAAyB,QAAA,EAAU,wBAAA;AAAA,iBACpD,OAAA,CAAQ,OAAA,EAAS,8BAAA,EAAgC,QAAA,EAAU,+BAAA;;;KC4/CtE4Z,kBAAAA;;;;;;KCtrDO,YAAA;AAAA,UAEK,yBAAA;EACb,gCAAA;EACA,4BAAA;EACA,4BAAA,EAA8B,KAAA,CAAM,kBAAA;EACpC,4BAAA;EACA,gBAAA,EAAkB,eAAA;AAAA;AAAA,iBAGA,oCAAA,CAClB,UAAA,UACA,MAAA,EAAQ,yBAAA,GACT,OAAA,CAAQ,YAAA;;;iBC7CK,6BAAA,CACZ,UAAA,UACA,MAAA,EAAQ,yBAAA,EACR,aAAA,GAAgB,OAAA,EAAS,UAAA,WACzB,kBAAA,GAAqB,YAAA,EAAc,eAAA;;;iBCNvB,0BAAA,CACZ,aAAA,GAAgB,OAAA,EAAS,UAAA,WACzB,kBAAA,GAAqB,YAAA,EAAc,eAAA,YACpC,mBAAA;;;iBCemB,iBAAA,CAAA,GAAqB,OAAA;AAAA,iBAIrB,oBAAA,CAAqB,iBAAA,WAAyB,OAAA;AAAA,iBAI9C,oBAAA,CAAA,GAAoB,OAAA;AAAA,iBAIpB,gBAAA,CAAiB,WAAA,WAAmB,OAAA;;;aCtC9C,2BAAA;EACR,2BAAA;EACA,6BAAA;EACA,iCAAA;EACA,kCAAA;AAAA;AAAA,cAGS,uBAAA,SAAgC,KAAA;EACzC,IAAA,EAAM,2BAAA;cACM,IAAA,EAAM,2BAAA,EAA6B,OAAA;AAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["Buffer","Agent","Agent$1","Struct","constructor","properties","encode","decode","data","decodeUnchecked","Enum","enum","SOLANA_SCHEMA","Function","Map","MAX_SEED_LENGTH","PUBLIC_KEY_LENGTH","PublicKeyInitData","Uint8Array","Array","PublicKeyData","PublicKey","Symbol","toStringTag","Promise","value","unique","default","equals","publicKey","toBase58","toJSON","toBytes","toBuffer","toString","createWithSeed","fromPublicKey","seed","programId","createProgramAddressSync","seeds","createProgramAddress","findProgramAddressSync","findProgramAddress","isOnCurve","pubkeyData","Account","secretKey","Blockhash","BPF_LOADER_DEPRECATED_PROGRAM_ID","EpochSchedule","slotsPerEpoch","leaderScheduleSlotOffset","warmup","firstNormalEpoch","firstNormalSlot","getEpoch","slot","getEpochAndSlotIndex","getFirstSlotInEpoch","epoch","getLastSlotInEpoch","getSlotsInEpoch","_default","globalThis","fetch","FeeCalculator","lamportsPerSignature","NONCE_ACCOUNT_LENGTH","DurableNonce","NonceAccount","authorizedPubkey","nonce","feeCalculator","fromAccountData","buffer","Ed25519SecretKey","Ed25519Keypair","Signer","Keypair","_keypair","keypair","generate","fromSecretKey","skipValidation","options","fromSeed","PACKET_DATA_SIZE","VERSION_PREFIX_MASK","SIGNATURE_LENGTH_IN_BYTES","TransactionExpiredBlockheightExceededError","Error","signature","TransactionExpiredTimeoutError","timeoutSeconds","TransactionExpiredNonceInvalidError","AccountKeysFromLookups","LoadedAddresses","MessageAccountKeys","TransactionInstruction","MessageCompiledInstruction","staticAccountKeys","accountKeysFromLookups","keySegments","get","index","length","compileInstructions","instructions","CompiledInstruction","programIdIndex","accounts","MessageArgs","MessageHeader","header","accountKeys","recentBlockhash","CompileLegacyArgs","payerKey","Message","MessageAddressTableLookup","indexToProgramIds","args","version","compiledInstructions","addressTableLookups","getAccountKeys","compile","isAccountSigner","isAccountWritable","isProgramId","programIds","nonProgramIds","serialize","from","AddressLookupTableState","deactivationSlot","lastExtendedSlot","lastExtendedSlotStartIndex","authority","addresses","AddressLookupTableAccountArgs","key","state","AddressLookupTableAccount","isActive","deserialize","accountData","CreateLookupTableParams","payer","recentSlot","FreezeLookupTableParams","lookupTable","ExtendLookupTableParams","DeactivateLookupTableParams","CloseLookupTableParams","recipient","LookupTableInstructionType","AddressLookupTableInstruction","decodeInstructionType","instruction","decodeCreateLookupTable","decodeExtendLookupTable","decodeCloseLookupTable","decodeFreezeLookupTable","decodeDeactivateLookupTable","AddressLookupTableProgram","createLookupTable","params","freezeLookupTable","extendLookupTable","deactivateLookupTable","closeLookupTable","ComputeBudgetInstruction","ComputeBudgetInstructionType","RequestUnitsParams","RequestHeapFrameParams","SetComputeUnitLimitParams","SetComputeUnitPriceParams","decodeRequestUnits","decodeRequestHeapFrame","decodeSetComputeUnitLimit","decodeSetComputeUnitPrice","units","additionalFee","bytes","microLamports","ComputeBudgetProgram","requestUnits","requestHeapFrame","setComputeUnitLimit","setComputeUnitPrice","CreateEd25519InstructionWithPublicKeyParams","message","instructionIndex","CreateEd25519InstructionWithPrivateKeyParams","privateKey","Ed25519Program","createInstructionWithPublicKey","createInstructionWithPrivateKey","CreateSecp256k1InstructionWithPublicKeyParams","recoveryId","CreateSecp256k1InstructionWithEthAddressParams","ethAddress","CreateSecp256k1InstructionWithPrivateKeyParams","Secp256k1Program","publicKeyToEthAddress","createInstructionWithEthAddress","STAKE_CONFIG_ID","Authorized","staker","withdrawer","Lockup","unixTimestamp","custodian","CreateStakeAccountParams","fromPubkey","stakePubkey","authorized","lockup","lamports","CreateStakeAccountWithSeedParams","basePubkey","InitializeStakeParams","DelegateStakeParams","votePubkey","AuthorizeStakeParams","StakeAuthorizationType","newAuthorizedPubkey","stakeAuthorizationType","custodianPubkey","AuthorizeWithSeedStakeParams","authorityBase","authoritySeed","authorityOwner","SplitStakeParams","splitStakePubkey","SplitStakeWithSeedParams","WithdrawStakeParams","toPubkey","DeactivateStakeParams","MergeStakeParams","sourceStakePubKey","StakeInstruction","StakeInstructionType","decodeInitialize","decodeDelegate","decodeAuthorize","decodeAuthorizeWithSeed","decodeSplit","decodeMerge","decodeWithdraw","decodeDeactivate","StakeAuthorizationLayout","Readonly","Staker","Withdrawer","StakeProgram","Transaction","space","initialize","createAccountWithSeed","createAccount","delegate","authorize","authorizeWithSeed","split","rentExemptReserve","splitWithSeed","merge","withdraw","deactivate","CreateAccountParams","newAccountPubkey","TransferParams","AssignParams","accountPubkey","CreateAccountWithSeedParams","CreateNonceAccountParams","noncePubkey","CreateNonceAccountWithSeedParams","InitializeNonceParams","AdvanceNonceParams","WithdrawNonceParams","AuthorizeNonceParams","AllocateParams","AllocateWithSeedParams","AssignWithSeedParams","TransferWithSeedParams","DecodedTransferInstruction","DecodedTransferWithSeedInstruction","SystemInstruction","SystemInstructionType","decodeCreateAccount","decodeTransfer","decodeTransferWithSeed","decodeAllocate","decodeAllocateWithSeed","decodeAssign","decodeAssignWithSeed","decodeCreateWithSeed","decodeNonceInitialize","decodeNonceAdvance","decodeNonceWithdraw","decodeNonceAuthorize","SystemProgram","transfer","assign","createNonceAccount","nonceInitialize","nonceAdvance","nonceWithdraw","nonceAuthorize","allocate","VoteInit","nodePubkey","authorizedVoter","authorizedWithdrawer","commission","CreateVoteAccountParams","voteInit","InitializeAccountParams","AuthorizeVoteParams","VoteAuthorizationType","voteAuthorizationType","AuthorizeVoteWithSeedParams","currentAuthorityDerivedKeyBasePubkey","currentAuthorityDerivedKeyOwnerPubkey","currentAuthorityDerivedKeySeed","WithdrawFromVoteAccountParams","authorizedWithdrawerPubkey","UpdateValidatorIdentityParams","VoteInstruction","VoteInstructionType","decodeInitializeAccount","VoteAuthorizationLayout","Voter","VoteProgram","initializeAccount","safeWithdraw","currentVoteAccountBalance","rentExemptMinimum","updateValidatorIdentity","MessageV0Args","CompileV0Args","addressLookupTableAccounts","GetAccountKeysArgs","MessageV0","numAccountKeysFromLookups","resolveAddressTableLookups","serializeInstructions","serializeAddressTableLookups","serializedMessage","VersionedMessage","deserializeMessageVersion","numRequiredSignatures","numReadonlySignedAccounts","numReadonlyUnsignedAccounts","accountKey","writableIndexes","readonlyIndexes","accountKeyIndexes","TransactionSignature","TransactionStatus","BLOCKHEIGHT_EXCEEDED","PROCESSED","TIMED_OUT","NONCE_INVALID","AccountMeta","pubkey","isSigner","isWritable","TransactionInstructionCtorFields","keys","SerializeConfig","requireAllSignatures","verifySignatures","opts","SignaturePubkeyPair","TransactionCtorFields_DEPRECATED","NonceInformation","nonceInfo","feePayer","signatures","TransactionCtorFields","TransactionBlockhashCtor","blockhash","lastValidBlockHeight","TransactionNonceCtor","minContextSlot","nonceInstruction","Connection","minNonceContextSlot","add","items","compileMessage","serializeMessage","getEstimatedFee","connection","setSigners","signers","sign","partialSign","addSignature","config","populate","TransactionMessageArgs","DecompileArgs","TransactionMessage","decompile","compileToLegacyMessage","compileToV0Message","TransactionVersion","VersionedTransaction","serializedTransaction","ClientSubscriptionId","TokenAccountsFilter","mint","Context","SendOptions","Commitment","skipPreflight","preflightCommitment","maxRetries","ConfirmOptions","commitment","ConfirmedSignaturesForAddress2Options","before","until","limit","SignaturesForAddressOptions","RpcResponseAndContext","T","context","BlockhashWithExpiryBlockHeight","BlockheightBasedTransactionConfirmationStrategy","BaseTransactionConfirmationStrategy","DurableNonceTransactionConfirmationStrategy","nonceAccountPubkey","nonceValue","AbortSignal","abortSignal","TransactionConfirmationStrategy","Finality","LargestAccountsFilter","GetAccountInfoConfig","DataSlice","dataSlice","GetBalanceConfig","GetBlockConfig","rewards","transactionDetails","GetVersionedBlockConfig","maxSupportedTransactionVersion","GetStakeMinimumDelegationConfig","GetBlockHeightConfig","GetEpochInfoConfig","GetInflationRewardConfig","GetLatestBlockhashConfig","IsBlockhashValidConfig","GetSlotConfig","GetSlotLeaderConfig","GetTransactionConfig","GetVersionedTransactionConfig","GetLargestAccountsConfig","filter","GetSupplyConfig","excludeNonCirculatingAccountsList","SignatureStatusConfig","searchTransactionHistory","ContactInfo","gossip","tpu","rpc","VoteAccountInfo","activatedStake","epochVoteAccount","epochCredits","lastVote","VoteAccountStatus","current","delinquent","InflationGovernor","foundation","foundationTerm","initial","taper","terminal","InflationReward","effectiveSlot","amount","postBalance","RecentPrioritizationFees","prioritizationFee","GetRecentPrioritizationFeesConfig","lockedWritableAccounts","InflationRate","total","validator","EpochInfo","slotIndex","slotsInEpoch","absoluteSlot","blockHeight","transactionCount","LeaderSchedule","address","Version","SimulatedTransactionAccountInfo","executable","owner","rentEpoch","TransactionReturnDataEncoding","TransactionReturnData","SimulateTransactionConfig","sigVerify","replaceRecentBlockhash","encoding","innerInstructions","SimulatedTransactionResponse","TransactionError","ParsedInnerInstruction","err","logs","unitsConsumed","returnData","ParsedInstruction","PartiallyDecodedInstruction","TokenBalance","TokenAmount","accountIndex","uiTokenAmount","ParsedConfirmedTransactionMeta","ParsedTransactionMeta","writable","readonly","fee","preBalances","postBalances","logMessages","preTokenBalances","postTokenBalances","loadedAddresses","computeUnitsConsumed","costUnits","CompiledInnerInstruction","ConfirmedTransactionMeta","TransactionResponse","transaction","meta","blockTime","VersionedTransactionResponse","ConfirmedTransaction","ParsedMessageAccount","signer","source","program","parsed","ParsedAddressTableLookup","ParsedMessage","ParsedTransaction","ParsedConfirmedTransaction","ParsedTransactionWithMeta","BlockResponse","previousBlockhash","parentSlot","transactions","rewardType","AccountsModeBlockResponse","VersionedAccountsModeBlockResponse","NoneModeBlockResponse","VersionedNoneModeBlockResponse","ParsedBlockResponse","ParsedAccountsModeBlockResponse","Omit","Pick","ParsedNoneModeBlockResponse","VersionedBlockResponse","ConfirmedBlock","BlockSignatures","BlockProduction","ReadonlyArray","Record","byIdentity","range","firstSlot","lastSlot","GetBlockProductionConfig","identity","PerfSample","numTransactions","numSlots","samplePeriodSecs","Supply","circulating","nonCirculating","nonCirculatingAccounts","decimals","uiAmount","uiAmountString","TokenAccountBalancePair","AccountBalancePair","SlotUpdate","type","timestamp","parent","stats","numTransactionEntries","numSuccessfulTransactions","numFailedTransactions","maxTransactionsPerEntry","SlotInfo","root","ParsedAccountData","StakeActivationData","active","inactive","offset","MemcmpFilter","memcmp","DataSizeFilter","dataSize","GetProgramAccountsFilter","GetProgramAccountsConfig","filters","withContext","GetProgramAccountsResponse","AccountInfo","account","GetParsedProgramAccountsConfig","GetMultipleAccountsConfig","GetStakeActivationConfig","GetTokenAccountsByOwnerConfig","GetTransactionCountConfig","GetNonceConfig","GetNonceAndContextConfig","AccountSubscriptionConfig","ProgramAccountSubscriptionConfig","KeyedAccountInfo","accountId","accountInfo","AccountChangeCallback","ProgramAccountChangeCallback","keyedAccountInfo","SlotChangeCallback","slotInfo","SlotUpdateCallback","slotUpdate","SignatureResultCallback","SignatureResult","signatureResult","SignatureStatusNotification","result","SignatureReceivedNotification","SignatureSubscriptionCallback","notification","SignatureSubscriptionOptions","enableReceivedNotification","RootChangeCallback","Logs","LogsFilter","LogsCallback","ctx","TransactionConfirmationStatus","SignatureStatus","confirmations","confirmationStatus","ConfirmedSignatureInfo","memo","HttpHeaders","FetchFn","FetchMiddleware","Parameters","info","init","a","ConnectionConfig","httpAgent","wsEndpoint","httpHeaders","fetchMiddleware","disableRetryOnRateLimit","confirmTransactionInitialTimeout","endpoint","commitmentOrConfig","rpcEndpoint","getBalanceAndContext","getBalance","getBlockTime","getMinimumLedgerSlot","getFirstAvailableBlock","getSupply","getTokenSupply","tokenMintAddress","getTokenAccountBalance","tokenAddress","getTokenAccountsByOwner","ownerAddress","getParsedTokenAccountsByOwner","getLargestAccounts","getTokenLargestAccounts","mintAddress","getAccountInfoAndContext","getParsedAccountInfo","getAccountInfo","getMultipleParsedAccounts","publicKeys","rawConfig","getMultipleAccountsInfoAndContext","getMultipleAccountsInfo","getStakeActivation","getProgramAccounts","configOrCommitment","getParsedProgramAccounts","confirmTransaction","strategy","getCancellationPromise","getTransactionConfirmationPromise","confirmTransactionUsingBlockHeightExceedanceStrategy","confirmTransactionUsingDurableNonceStrategy","confirmTransactionUsingLegacyTimeoutStrategy","getClusterNodes","getVoteAccounts","getSlot","getSlotLeader","getSlotLeaders","startSlot","getSignatureStatus","getSignatureStatuses","getTransactionCount","getTotalSupply","getInflationGovernor","getInflationReward","getInflationRate","getEpochInfo","getEpochSchedule","getLeaderSchedule","getMinimumBalanceForRentExemption","dataLength","getRecentBlockhashAndContext","getRecentPerformanceSamples","getFeeCalculatorForBlockhash","getFeeForMessage","getRecentPrioritizationFees","getRecentBlockhash","getLatestBlockhash","getLatestBlockhashAndContext","isBlockhashValid","getVersion","getGenesisHash","getBlock","getParsedBlock","getBlockHeight","getBlockProduction","getTransaction","getParsedTransaction","getParsedTransactions","getTransactions","getConfirmedBlock","getBlocks","endSlot","getBlockSignatures","getConfirmedBlockSignatures","getConfirmedTransaction","getParsedConfirmedTransaction","getParsedConfirmedTransactions","getConfirmedSignaturesForAddress","getConfirmedSignaturesForAddress2","getSignaturesForAddress","getAddressLookupTable","getNonceAndContext","nonceAccount","getNonce","requestAirdrop","to","getStakeMinimumDelegation","simulateTransaction","transactionOrMessage","includeAccounts","sendTransaction","sendRawTransaction","rawTransaction","sendEncodedTransaction","encodedTransaction","onAccountChange","callback","removeAccountChangeListener","clientSubscriptionId","onProgramAccountChange","removeProgramAccountChangeListener","onLogs","removeOnLogsListener","onSlotChange","removeSlotChangeListener","onSlotUpdate","removeSlotUpdateListener","_buildArgs","override","extra","onSignature","onSignatureWithOptions","removeSignatureListener","onRootChange","removeRootChangeListener","BPF_LOADER_PROGRAM_ID","BpfLoader","getMinNumSignatures","load","elf","loaderProgramId","SendTransactionError","action","transactionMessage","transactionLogs","transactionError","getLogs","SolanaJSONRPCErrorCode","JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP","JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE","JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE","JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE","JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY","JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE","JSON_RPC_SERVER_ERROR_SLOT_SKIPPED","JSON_RPC_SERVER_ERROR_NO_SNAPSHOT","JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED","JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX","JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE","JSON_RPC_SCAN_ERROR","JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH","JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET","JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION","JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED","SolanaJSONRPCErrorCodeEnum","SolanaJSONRPCError","code","customMessage","Loader","chunkSize","VALIDATOR_INFO_KEY","Info","name","website","details","iconUrl","keybaseUsername","ValidatorInfo","fromConfigData","VOTE_PROGRAM_ID","Lockout","confirmationCount","EpochCredits","credits","prevCredits","AuthorizedVoter","PriorVoter","epochOfLastAuthorizedSwitch","targetEpoch","BlockTimestamp","VoteAccount","rootSlot","votes","authorizedVoters","priorVoters","lastTimestamp","SYSVAR_CLOCK_PUBKEY","SYSVAR_EPOCH_SCHEDULE_PUBKEY","SYSVAR_INSTRUCTIONS_PUBKEY","SYSVAR_RECENT_BLOCKHASHES_PUBKEY","SYSVAR_RENT_PUBKEY","SYSVAR_REWARDS_PUBKEY","SYSVAR_SLOT_HASHES_PUBKEY","SYSVAR_SLOT_HISTORY_PUBKEY","SYSVAR_STAKE_HISTORY_PUBKEY","Cluster","clusterApiUrl","cluster","tls","sendAndConfirmRawTransaction","confirmationStrategy","sendAndConfirmTransaction","LAMPORTS_PER_SOL"],"sources":["../../src/mwaSessionEvents.ts","../../src/resolve.ts","../../../../node_modules/.pnpm/@solana+web3.js@1.98.4_bufferutil@4.1.0_typescript@5.9.3_utf-8-validate@5.0.10/node_modules/@solana/web3.js/lib/index.d.ts","../../src/initializeMobileWalletAdapterSession.ts","../../src/useMobileWalletAdapterSession.ts","../../src/initializeMWAEventListener.ts","../../src/useDigitalAssetLinks.ts","../../src/errors.ts"],"x_google_ignoreList":[2],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solana-mobile/mobile-wallet-adapter-walletlib",
|
|
3
3
|
"description": "A React Native wrapper of the Solana Mobile, Mobile Wallet Adapter Wallet Library. Wallet apps can use this to handle dapp requests for signing and sending.",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.4",
|
|
5
5
|
"author": "Michael Sulistio <mike.sulistio@solanamobile.com>",
|
|
6
6
|
"repository": "https://github.com/solana-mobile/mobile-wallet-adapter",
|
|
7
7
|
"license": "Apache-2.0",
|
|
@@ -10,18 +10,19 @@
|
|
|
10
10
|
"import": "./lib/esm/index.js",
|
|
11
11
|
"require": "./lib/cjs/index.js"
|
|
12
12
|
},
|
|
13
|
-
"react-native": "./lib/
|
|
13
|
+
"react-native": "./lib/esm/index.native.js",
|
|
14
14
|
"types": "./lib/types/index.d.ts"
|
|
15
15
|
},
|
|
16
16
|
"main": "lib/esm/index",
|
|
17
17
|
"module": "lib/esm/index",
|
|
18
|
-
"react-native": "lib/esm/index",
|
|
18
|
+
"react-native": "lib/esm/index.native",
|
|
19
19
|
"types": "lib/types/index.d.ts",
|
|
20
20
|
"type": "module",
|
|
21
21
|
"files": [
|
|
22
|
-
"lib",
|
|
23
22
|
"android",
|
|
24
|
-
"LICENSE"
|
|
23
|
+
"LICENSE",
|
|
24
|
+
"lib",
|
|
25
|
+
"src"
|
|
25
26
|
],
|
|
26
27
|
"sideEffects": false,
|
|
27
28
|
"publishConfig": {
|
package/src/errors.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export enum SolanaMWAWalletLibErrorCode {
|
|
2
|
+
ERROR_INTENT_DATA_NOT_FOUND = 'ERROR_INTENT_DATA_NOT_FOUND',
|
|
3
|
+
ERROR_SESSION_ALREADY_CREATED = 'ERROR_SESSION_ALREADY_CREATED',
|
|
4
|
+
ERROR_UNSUPPORTED_ASSOCIATION_URI = 'ERROR_UNSUPPORTED_ASSOCIATION_URI',
|
|
5
|
+
ERROR_UNSUPPORTED_ASSOCIATION_TYPE = 'ERROR_UNSUPPORTED_ASSOCIATION_TYPE',
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export class SolanaMWAWalletLibError extends Error {
|
|
9
|
+
code: SolanaMWAWalletLibErrorCode;
|
|
10
|
+
constructor(code: SolanaMWAWalletLibErrorCode, message: string) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'SolanaMWAWalletLibError';
|
|
13
|
+
this.code = code;
|
|
14
|
+
}
|
|
15
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './mwaSessionEvents.js';
|
|
2
|
+
export * from './resolve.js';
|
|
3
|
+
export * from './useMobileWalletAdapterSession.js';
|
|
4
|
+
export * from './initializeMobileWalletAdapterSession.js';
|
|
5
|
+
export * from './initializeMWAEventListener.js';
|
|
6
|
+
export * from './useDigitalAssetLinks.js';
|
|
7
|
+
export * from './errors.js';
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { EmitterSubscription, NativeEventEmitter } from 'react-native';
|
|
2
|
+
|
|
3
|
+
import { MWASessionEvent, MWASessionEventType } from './mwaSessionEvents.js';
|
|
4
|
+
import { MWARequest, MWARequestType } from './resolve.js';
|
|
5
|
+
|
|
6
|
+
const MOBILE_WALLET_ADAPTER_EVENT_BRIDGE_NAME = 'MobileWalletAdapterServiceRequestBridge';
|
|
7
|
+
type NativeMWAEvent = Readonly<{ __type?: unknown }>;
|
|
8
|
+
|
|
9
|
+
export function initializeMWAEventListener(
|
|
10
|
+
handleRequest: (request: MWARequest) => void,
|
|
11
|
+
handleSessionEvent: (sessionEvent: MWASessionEvent) => void,
|
|
12
|
+
): EmitterSubscription {
|
|
13
|
+
const mwaEventEmitter = new NativeEventEmitter();
|
|
14
|
+
const listener = mwaEventEmitter.addListener(MOBILE_WALLET_ADAPTER_EVENT_BRIDGE_NAME, (nativeEvent) => {
|
|
15
|
+
const event = nativeEvent as NativeMWAEvent;
|
|
16
|
+
if (isMWARequest(event)) {
|
|
17
|
+
handleRequest(event);
|
|
18
|
+
} else if (isMWASessionEvent(event)) {
|
|
19
|
+
handleSessionEvent(event);
|
|
20
|
+
} else {
|
|
21
|
+
console.warn('Unexpected native event type');
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
return listener;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function isMWARequest(nativeEvent: NativeMWAEvent): nativeEvent is MWARequest {
|
|
29
|
+
return Object.values(MWARequestType).includes(nativeEvent.__type as MWARequest['__type']);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function isMWASessionEvent(nativeEvent: NativeMWAEvent): nativeEvent is MWASessionEvent {
|
|
33
|
+
return Object.values(MWASessionEventType).includes(nativeEvent.__type as MWASessionEvent['__type']);
|
|
34
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { TransactionVersion } from '@solana/web3.js';
|
|
2
|
+
import type { IdentifierArray } from '@wallet-standard/core';
|
|
3
|
+
import { NativeModules, Platform } from 'react-native';
|
|
4
|
+
|
|
5
|
+
import { SolanaMWAWalletLibError, SolanaMWAWalletLibErrorCode } from './errors.js';
|
|
6
|
+
|
|
7
|
+
const LINKING_ERROR =
|
|
8
|
+
`The package 'solana-mobile-wallet-adapter-walletlib' doesn't seem to be linked. Make sure: \n\n` +
|
|
9
|
+
'- You rebuilt the app after installing the package\n' +
|
|
10
|
+
'- If you are using Lerna workspaces\n' +
|
|
11
|
+
' - You have added `@solana-mobile/mobile-wallet-adapter-walletlib` as an explicit dependency, and\n' +
|
|
12
|
+
' - You have added `@solana-mobile/mobile-wallet-adapter-walletlib` to the `nohoist` section of your package.json\n' +
|
|
13
|
+
'- You are not using Expo managed workflow\n';
|
|
14
|
+
|
|
15
|
+
const SolanaMobileWalletAdapterWalletLib =
|
|
16
|
+
Platform.OS === 'android' && NativeModules.SolanaMobileWalletAdapterWalletLib
|
|
17
|
+
? NativeModules.SolanaMobileWalletAdapterWalletLib
|
|
18
|
+
: new Proxy(
|
|
19
|
+
{},
|
|
20
|
+
{
|
|
21
|
+
get() {
|
|
22
|
+
throw new Error(
|
|
23
|
+
Platform.OS !== 'android'
|
|
24
|
+
? 'The package `solana-mobile-wallet-adapter-walletlib` is only compatible with React Native Android'
|
|
25
|
+
: LINKING_ERROR,
|
|
26
|
+
);
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
);
|
|
30
|
+
|
|
31
|
+
type ReactNativeError = Error & { code?: string; userInfo?: Record<string, unknown> };
|
|
32
|
+
|
|
33
|
+
function handleError(e: unknown): never {
|
|
34
|
+
if (e instanceof Error) {
|
|
35
|
+
const { code, message } = e as ReactNativeError;
|
|
36
|
+
if (code && code in SolanaMWAWalletLibErrorCode) {
|
|
37
|
+
throw new SolanaMWAWalletLibError(code as SolanaMWAWalletLibErrorCode, message);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
throw e;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export type MWASessionId = string;
|
|
44
|
+
|
|
45
|
+
export interface MobileWalletAdapterConfig {
|
|
46
|
+
maxTransactionsPerSigningRequest: number;
|
|
47
|
+
maxMessagesPerSigningRequest: number;
|
|
48
|
+
supportedTransactionVersions: Array<TransactionVersion>;
|
|
49
|
+
noConnectionWarningTimeoutMs: number;
|
|
50
|
+
optionalFeatures: IdentifierArray;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export async function initializeMobileWalletAdapterSession(
|
|
54
|
+
walletName: string,
|
|
55
|
+
config: MobileWalletAdapterConfig,
|
|
56
|
+
): Promise<MWASessionId> {
|
|
57
|
+
try {
|
|
58
|
+
return await initializeScenario(walletName, config);
|
|
59
|
+
} catch (e) {
|
|
60
|
+
handleError(e);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// Create Scenario and establish session with dapp
|
|
65
|
+
function initializeScenario(walletName: string, walletConfig: MobileWalletAdapterConfig): Promise<MWASessionId> {
|
|
66
|
+
return SolanaMobileWalletAdapterWalletLib.createScenario(walletName, JSON.stringify(walletConfig));
|
|
67
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mobile Wallet Adapter Session Events are notifications and events
|
|
3
|
+
* about the underlying session between the wallet and the dApp.
|
|
4
|
+
*/
|
|
5
|
+
export enum MWASessionEventType {
|
|
6
|
+
SessionStartEvent = 'SESSION_START',
|
|
7
|
+
SessionReadyEvent = 'SESSION_READY',
|
|
8
|
+
SessionTerminatedEvent = 'SESSION_TERMINATED',
|
|
9
|
+
SessionServingClientsEvent = 'SESSION_SERVING_CLIENTS',
|
|
10
|
+
SessionServingCompleteEvent = 'SESSION_SERVING_COMPLETE',
|
|
11
|
+
SessionCompleteEvent = 'SESSION_COMPLETE',
|
|
12
|
+
SessionErrorEvent = 'SESSION_ERROR',
|
|
13
|
+
SessionTeardownCompleteEvent = 'SESSION_TEARDOWN_COMPLETE',
|
|
14
|
+
LowPowerNoConnectionEvent = 'LOW_POWER_NO_CONNECTION',
|
|
15
|
+
}
|
|
16
|
+
export interface IMWASessionEvent {
|
|
17
|
+
__type: MWASessionEventType;
|
|
18
|
+
sessionId: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export type SessionStartEvent = Readonly<{
|
|
22
|
+
__type: MWASessionEventType.SessionStartEvent;
|
|
23
|
+
}> &
|
|
24
|
+
IMWASessionEvent;
|
|
25
|
+
|
|
26
|
+
export type SessionReadyEvent = Readonly<{
|
|
27
|
+
__type: MWASessionEventType.SessionReadyEvent;
|
|
28
|
+
}> &
|
|
29
|
+
IMWASessionEvent;
|
|
30
|
+
|
|
31
|
+
export type SessionTerminatedEvent = Readonly<{
|
|
32
|
+
__type: MWASessionEventType.SessionTerminatedEvent;
|
|
33
|
+
}> &
|
|
34
|
+
IMWASessionEvent;
|
|
35
|
+
|
|
36
|
+
export type SessionServingClientsEvent = Readonly<{
|
|
37
|
+
__type: MWASessionEventType.SessionServingClientsEvent;
|
|
38
|
+
}> &
|
|
39
|
+
IMWASessionEvent;
|
|
40
|
+
|
|
41
|
+
export type SessionServingCompleteEvent = Readonly<{
|
|
42
|
+
__type: MWASessionEventType.SessionServingCompleteEvent;
|
|
43
|
+
}> &
|
|
44
|
+
IMWASessionEvent;
|
|
45
|
+
|
|
46
|
+
export type SessionCompleteEvent = Readonly<{
|
|
47
|
+
__type: MWASessionEventType.SessionCompleteEvent;
|
|
48
|
+
}> &
|
|
49
|
+
IMWASessionEvent;
|
|
50
|
+
|
|
51
|
+
export type SessionErrorEvent = Readonly<{
|
|
52
|
+
__type: MWASessionEventType.SessionErrorEvent;
|
|
53
|
+
}> &
|
|
54
|
+
IMWASessionEvent;
|
|
55
|
+
|
|
56
|
+
export type SessionTeardownCompleteEvent = Readonly<{
|
|
57
|
+
__type: MWASessionEventType.SessionTeardownCompleteEvent;
|
|
58
|
+
}> &
|
|
59
|
+
IMWASessionEvent;
|
|
60
|
+
|
|
61
|
+
export type LowPowerNoConnectionEvent = Readonly<{
|
|
62
|
+
__type: MWASessionEventType.LowPowerNoConnectionEvent;
|
|
63
|
+
}> &
|
|
64
|
+
IMWASessionEvent;
|
|
65
|
+
|
|
66
|
+
export type MWASessionEvent =
|
|
67
|
+
| SessionStartEvent
|
|
68
|
+
| SessionReadyEvent
|
|
69
|
+
| SessionTerminatedEvent
|
|
70
|
+
| SessionServingClientsEvent
|
|
71
|
+
| SessionServingCompleteEvent
|
|
72
|
+
| SessionCompleteEvent
|
|
73
|
+
| SessionErrorEvent
|
|
74
|
+
| SessionTeardownCompleteEvent
|
|
75
|
+
| LowPowerNoConnectionEvent;
|
package/src/resolve.ts
ADDED
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import type { IdentifierArray } from '@wallet-standard/core';
|
|
2
|
+
import { NativeModules, Platform } from 'react-native';
|
|
3
|
+
|
|
4
|
+
const LINKING_ERROR =
|
|
5
|
+
`The package 'solana-mobile-wallet-adapter-walletlib' doesn't seem to be linked. Make sure: \n\n` +
|
|
6
|
+
'- You rebuilt the app after installing the package\n' +
|
|
7
|
+
'- If you are using Lerna workspaces\n' +
|
|
8
|
+
' - You have added `@solana-mobile/mobile-wallet-adapter-walletlib` as an explicit dependency, and\n' +
|
|
9
|
+
' - You have added `@solana-mobile/mobile-wallet-adapter-walletlib` to the `nohoist` section of your package.json\n' +
|
|
10
|
+
'- You are not using Expo managed workflow\n';
|
|
11
|
+
|
|
12
|
+
const SolanaMobileWalletAdapterWalletLib =
|
|
13
|
+
Platform.OS === 'android' && NativeModules.SolanaMobileWalletAdapterWalletLib
|
|
14
|
+
? NativeModules.SolanaMobileWalletAdapterWalletLib
|
|
15
|
+
: new Proxy(
|
|
16
|
+
{},
|
|
17
|
+
{
|
|
18
|
+
get() {
|
|
19
|
+
throw new Error(
|
|
20
|
+
Platform.OS !== 'android'
|
|
21
|
+
? 'The package `solana-mobile-wallet-adapter-walletlib` is only compatible with React Native Android'
|
|
22
|
+
: LINKING_ERROR,
|
|
23
|
+
);
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
type AppIdentity = Readonly<{
|
|
29
|
+
identityUri?: string;
|
|
30
|
+
iconRelativeUri?: string;
|
|
31
|
+
identityName?: string;
|
|
32
|
+
}>;
|
|
33
|
+
|
|
34
|
+
export type SignInPayload = Readonly<{
|
|
35
|
+
domain?: string;
|
|
36
|
+
address?: string;
|
|
37
|
+
statement?: string;
|
|
38
|
+
uri?: string;
|
|
39
|
+
version?: string;
|
|
40
|
+
chainId?: string;
|
|
41
|
+
nonce?: string;
|
|
42
|
+
issuedAt?: string;
|
|
43
|
+
expirationTime?: string;
|
|
44
|
+
notBefore?: string;
|
|
45
|
+
requestId?: string;
|
|
46
|
+
resources?: readonly string[];
|
|
47
|
+
}>;
|
|
48
|
+
|
|
49
|
+
export type Base64EncodedAddress = string;
|
|
50
|
+
export type Base64EncodedSignature = string;
|
|
51
|
+
type Base64EncodedSignedMessage = string;
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Mobile Wallet Adapter Requests are remote requests coming from
|
|
55
|
+
* the dApp for authorization, signing, and sending services.
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
export type MWARequest =
|
|
59
|
+
| SignMessagesRequest
|
|
60
|
+
| SignTransactionsRequest
|
|
61
|
+
| SignAndSendTransactionsRequest
|
|
62
|
+
| AuthorizeDappRequest
|
|
63
|
+
| ReauthorizeDappRequest
|
|
64
|
+
| DeauthorizeDappRequest;
|
|
65
|
+
|
|
66
|
+
export enum MWARequestType {
|
|
67
|
+
AuthorizeDappRequest = 'AUTHORIZE_DAPP',
|
|
68
|
+
ReauthorizeDappRequest = 'REAUTHORIZE_DAPP',
|
|
69
|
+
DeauthorizeDappRequest = 'DEAUTHORIZE_DAPP',
|
|
70
|
+
SignMessagesRequest = 'SIGN_MESSAGES',
|
|
71
|
+
SignTransactionsRequest = 'SIGN_TRANSACTIONS',
|
|
72
|
+
SignAndSendTransactionsRequest = 'SIGN_AND_SEND_TRANSACTIONS',
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
interface IMWARequest {
|
|
76
|
+
__type: MWARequestType;
|
|
77
|
+
requestId: string;
|
|
78
|
+
sessionId: string;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
interface IVerifiableIdentityRequest {
|
|
82
|
+
chain: string;
|
|
83
|
+
authorizationScope: Uint8Array;
|
|
84
|
+
appIdentity?: AppIdentity;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export type AuthorizeDappRequest = Readonly<{
|
|
88
|
+
__type: MWARequestType.AuthorizeDappRequest;
|
|
89
|
+
chain: string;
|
|
90
|
+
appIdentity?: AppIdentity;
|
|
91
|
+
features?: IdentifierArray;
|
|
92
|
+
addresses?: [string];
|
|
93
|
+
signInPayload?: SignInPayload;
|
|
94
|
+
}> &
|
|
95
|
+
IMWARequest;
|
|
96
|
+
|
|
97
|
+
export type ReauthorizeDappRequest = Readonly<{
|
|
98
|
+
__type: MWARequestType.ReauthorizeDappRequest;
|
|
99
|
+
}> &
|
|
100
|
+
IMWARequest &
|
|
101
|
+
IVerifiableIdentityRequest;
|
|
102
|
+
|
|
103
|
+
export type DeauthorizeDappRequest = Readonly<{
|
|
104
|
+
__type: MWARequestType.DeauthorizeDappRequest;
|
|
105
|
+
}> &
|
|
106
|
+
IMWARequest &
|
|
107
|
+
IVerifiableIdentityRequest;
|
|
108
|
+
|
|
109
|
+
export type SignMessagesRequest = Readonly<{
|
|
110
|
+
__type: MWARequestType.SignMessagesRequest;
|
|
111
|
+
payloads: Uint8Array[];
|
|
112
|
+
}> &
|
|
113
|
+
IMWARequest &
|
|
114
|
+
IVerifiableIdentityRequest;
|
|
115
|
+
|
|
116
|
+
export type SignTransactionsRequest = Readonly<{
|
|
117
|
+
__type: MWARequestType.SignTransactionsRequest;
|
|
118
|
+
payloads: Uint8Array[];
|
|
119
|
+
}> &
|
|
120
|
+
IMWARequest &
|
|
121
|
+
IVerifiableIdentityRequest;
|
|
122
|
+
|
|
123
|
+
export type SignAndSendTransactionsRequest = Readonly<{
|
|
124
|
+
__type: MWARequestType.SignAndSendTransactionsRequest;
|
|
125
|
+
payloads: Uint8Array[];
|
|
126
|
+
minContextSlot?: number;
|
|
127
|
+
commitment?: string;
|
|
128
|
+
skipPreflight?: boolean;
|
|
129
|
+
maxRetries?: number;
|
|
130
|
+
waitForCommitmentToSendNextTransaction?: boolean;
|
|
131
|
+
}> &
|
|
132
|
+
IMWARequest &
|
|
133
|
+
IVerifiableIdentityRequest;
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* MWA Request Responses
|
|
137
|
+
*/
|
|
138
|
+
|
|
139
|
+
export type MWAResponse =
|
|
140
|
+
| AuthorizeDappResponse
|
|
141
|
+
| ReauthorizeDappResponse
|
|
142
|
+
| DeauthorizeDappResponse
|
|
143
|
+
| SignMessagesResponse
|
|
144
|
+
| SignTransactionsResponse
|
|
145
|
+
| SignAndSendTransactionsResponse;
|
|
146
|
+
|
|
147
|
+
/* Failure Responses */
|
|
148
|
+
export enum MWARequestFailReason {
|
|
149
|
+
UserDeclined = 'USER_DECLINED',
|
|
150
|
+
TooManyPayloads = 'TOO_MANY_PAYLOADS',
|
|
151
|
+
InvalidSignatures = 'INVALID_SIGNATURES',
|
|
152
|
+
AuthorizationNotValid = 'AUTHORIZATION_NOT_VALID',
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export type UserDeclinedResponse = Readonly<{
|
|
156
|
+
failReason: MWARequestFailReason.UserDeclined;
|
|
157
|
+
}>;
|
|
158
|
+
|
|
159
|
+
export type TooManyPayloadsResponse = Readonly<{
|
|
160
|
+
failReason: MWARequestFailReason.TooManyPayloads;
|
|
161
|
+
}>;
|
|
162
|
+
|
|
163
|
+
export type AuthorizationNotValidResponse = Readonly<{
|
|
164
|
+
failReason: MWARequestFailReason.AuthorizationNotValid;
|
|
165
|
+
}>;
|
|
166
|
+
|
|
167
|
+
export type InvalidSignaturesResponse = Readonly<{
|
|
168
|
+
failReason: MWARequestFailReason.InvalidSignatures;
|
|
169
|
+
valid: boolean[];
|
|
170
|
+
}>;
|
|
171
|
+
|
|
172
|
+
/* Authorize Dapp */
|
|
173
|
+
export type AuthorizedAccount = Readonly<{
|
|
174
|
+
publicKey: Uint8Array;
|
|
175
|
+
accountLabel?: string;
|
|
176
|
+
icon?: string;
|
|
177
|
+
chains?: IdentifierArray;
|
|
178
|
+
features?: IdentifierArray;
|
|
179
|
+
}>;
|
|
180
|
+
export type SignInResult = Readonly<{
|
|
181
|
+
address: Base64EncodedAddress;
|
|
182
|
+
signed_message: Base64EncodedSignedMessage;
|
|
183
|
+
signature: Base64EncodedSignature;
|
|
184
|
+
signature_type?: string;
|
|
185
|
+
}>;
|
|
186
|
+
export type AuthorizeDappCompleteResponse = Readonly<{
|
|
187
|
+
accounts: Array<AuthorizedAccount>;
|
|
188
|
+
walletUriBase?: string;
|
|
189
|
+
authorizationScope?: Uint8Array;
|
|
190
|
+
signInResult?: SignInResult;
|
|
191
|
+
}>;
|
|
192
|
+
export type AuthorizeDappResponse = AuthorizeDappCompleteResponse | UserDeclinedResponse;
|
|
193
|
+
|
|
194
|
+
/* Reauthorize Dapp */
|
|
195
|
+
export type ReauthorizeDappCompleteResponse = Readonly<{
|
|
196
|
+
authorizationScope?: Uint8Array;
|
|
197
|
+
}>;
|
|
198
|
+
export type ReauthorizeDappResponse = ReauthorizeDappCompleteResponse | AuthorizationNotValidResponse;
|
|
199
|
+
|
|
200
|
+
/* Deauthorize Dapp */
|
|
201
|
+
export type DeauthorizeDappCompleteResponse = Readonly<Record<string, never>>;
|
|
202
|
+
export type DeauthorizeDappResponse = DeauthorizeDappCompleteResponse | AuthorizationNotValidResponse;
|
|
203
|
+
|
|
204
|
+
/* Sign Transactions/Messages */
|
|
205
|
+
export type SignPayloadsCompleteResponse = Readonly<{ signedPayloads: Uint8Array[] }>;
|
|
206
|
+
export type SignPayloadsFailResponse =
|
|
207
|
+
| UserDeclinedResponse
|
|
208
|
+
| TooManyPayloadsResponse
|
|
209
|
+
| AuthorizationNotValidResponse
|
|
210
|
+
| InvalidSignaturesResponse;
|
|
211
|
+
|
|
212
|
+
export type SignTransactionsResponse = SignPayloadsCompleteResponse | SignPayloadsFailResponse;
|
|
213
|
+
export type SignMessagesResponse = SignPayloadsCompleteResponse | SignPayloadsFailResponse;
|
|
214
|
+
|
|
215
|
+
/* Sign and Send Transaction */
|
|
216
|
+
export type SignAndSendTransactionsCompleteResponse = Readonly<{ signedTransactions: Uint8Array[] }>;
|
|
217
|
+
export type SignAndSendTransactionsResponse =
|
|
218
|
+
| SignAndSendTransactionsCompleteResponse
|
|
219
|
+
| UserDeclinedResponse
|
|
220
|
+
| TooManyPayloadsResponse
|
|
221
|
+
| AuthorizationNotValidResponse
|
|
222
|
+
| InvalidSignaturesResponse;
|
|
223
|
+
|
|
224
|
+
export function resolve(request: AuthorizeDappRequest, response: AuthorizeDappResponse): void;
|
|
225
|
+
export function resolve(request: ReauthorizeDappRequest, response: ReauthorizeDappResponse): void;
|
|
226
|
+
export function resolve(request: DeauthorizeDappRequest, response: DeauthorizeDappResponse): void;
|
|
227
|
+
export function resolve(request: SignMessagesRequest, response: SignMessagesResponse): void;
|
|
228
|
+
export function resolve(request: SignTransactionsRequest, response: SignTransactionsResponse): void;
|
|
229
|
+
export function resolve(request: SignAndSendTransactionsRequest, response: SignAndSendTransactionsResponse): void;
|
|
230
|
+
export function resolve(request: MWARequest, response: MWAResponse): void {
|
|
231
|
+
SolanaMobileWalletAdapterWalletLib.resolve(JSON.stringify(request), JSON.stringify(response));
|
|
232
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { NativeModules, Platform } from 'react-native';
|
|
2
|
+
|
|
3
|
+
const LINKING_ERROR =
|
|
4
|
+
`The package 'solana-mobile-wallet-adapter-walletlib' doesn't seem to be linked. Make sure: \n\n` +
|
|
5
|
+
'- You rebuilt the app after installing the package\n' +
|
|
6
|
+
'- If you are using Lerna workspaces\n' +
|
|
7
|
+
' - You have added `@solana-mobile/mobile-wallet-adapter-walletlib` as an explicit dependency, and\n' +
|
|
8
|
+
' - You have added `@solana-mobile/mobile-wallet-adapter-walletlib` to the `nohoist` section of your package.json\n' +
|
|
9
|
+
'- You are not using Expo managed workflow\n';
|
|
10
|
+
|
|
11
|
+
const SolanaMobileDigitalAssetLinks =
|
|
12
|
+
Platform.OS === 'android' && NativeModules.SolanaMobileDigitalAssetLinks
|
|
13
|
+
? NativeModules.SolanaMobileDigitalAssetLinks
|
|
14
|
+
: new Proxy(
|
|
15
|
+
{},
|
|
16
|
+
{
|
|
17
|
+
get() {
|
|
18
|
+
throw new Error(
|
|
19
|
+
Platform.OS !== 'android'
|
|
20
|
+
? 'The package `solana-mobile-wallet-adapter-walletlib` is only compatible with React Native Android'
|
|
21
|
+
: LINKING_ERROR,
|
|
22
|
+
);
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
);
|
|
26
|
+
|
|
27
|
+
export async function getCallingPackage(): Promise<string | undefined> {
|
|
28
|
+
return await SolanaMobileDigitalAssetLinks.getCallingPackage();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export async function verifyCallingPackage(clientIdentityUri: string) {
|
|
32
|
+
return await SolanaMobileDigitalAssetLinks.verifyCallingPackage(clientIdentityUri);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export async function getCallingPackageUid() {
|
|
36
|
+
return await SolanaMobileDigitalAssetLinks.getCallingPackageUid();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export async function getUidForPackage(packageName: string) {
|
|
40
|
+
return await SolanaMobileDigitalAssetLinks.getUidForPackage(packageName);
|
|
41
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
initializeMobileWalletAdapterSession,
|
|
5
|
+
MobileWalletAdapterConfig,
|
|
6
|
+
} from './initializeMobileWalletAdapterSession.js';
|
|
7
|
+
import { initializeMWAEventListener } from './initializeMWAEventListener.js';
|
|
8
|
+
import { MWASessionEvent } from './mwaSessionEvents.js';
|
|
9
|
+
import { MWARequest } from './resolve.js';
|
|
10
|
+
|
|
11
|
+
export function useMobileWalletAdapterSession(
|
|
12
|
+
walletName: string,
|
|
13
|
+
config: MobileWalletAdapterConfig,
|
|
14
|
+
handleRequest: (request: MWARequest) => void,
|
|
15
|
+
handleSessionEvent: (sessionEvent: MWASessionEvent) => void,
|
|
16
|
+
) {
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
async function startSession() {
|
|
19
|
+
try {
|
|
20
|
+
await initializeMobileWalletAdapterSession(walletName, config);
|
|
21
|
+
} catch (e) {
|
|
22
|
+
console.error(e);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const listener = initializeMWAEventListener(handleRequest, handleSessionEvent);
|
|
26
|
+
startSession();
|
|
27
|
+
return () => {
|
|
28
|
+
listener.remove();
|
|
29
|
+
};
|
|
30
|
+
}, []);
|
|
31
|
+
}
|