Skip to content

createWallet

createWallet fonksiyonu, gömülü cüzdanı başlatır ve web3 sağlayıcılarını web sayfasına sunar.

Örnek

ts
import { createWallet } from '@money-sdk/core'

const wallet = createWallet({
  appId: '<YOUR_APP_ID>',
  providers: {
    bitcoin: true,
    ethereum: true,
    solana: true,
  },
})

const ethereumProvider = await wallet.getProvider('ethereum')

ethereumProvider.request(/* ... */)

Referans

appId

Uygulamanızın tanımlayıcısı. Bu, entegrasyonunuzun kendi ayarlarına sahip olmasını sağlar — izin verilen üst origin'ler, feature flag'ler ve dApp başına analitik kapsamı.

INFO

Bu yalnızca üretim için gereklidir. Kayıt için App ID kılavuzuna bakın. Yerel geliştirme sırasında atlayabilirsiniz; cüzdan yalnızca localhost'a izin veren bir allow-list ile yüklenir.

walletUrl

Drop cüzdanı iframe'inin origin'i. Varsayılan olarak https://dropwallet.app.

Bunu yalnızca bir preview deployment'a veya yerel bir cüzdan örneğine yönlendirmek için geçersiz kılın — üretim dApp'leri her zaman varsayılanı bırakmalıdır.

signerUrl

Passkey akışları için kullanılan Drop signer popup'ının origin'i. Varsayılan olarak canonical signer'a ayarlıdır. walletUrl ile aynı kurallar geçerlidir.

providers

dApp'inize sunmak istediğiniz web3 sağlayıcılarının, isteğe bağlı yapılandırmalarıyla birlikte listesi.

Ethereum & EVM uyumlu zincirler

Varsayılan olarak bir EIP-1193 sağlayıcısı döndürülür.

Örnek
ts
const wallet = createWallet({
  providers: {
    ethereum: true,
  },
})

const ethereumProvider = await wallet.getProvider('ethereum')

ethereumProvider.request(/* ... */)

Ayrıca sağlayıcı, web sayfasına EIP-6963 izlenerek duyurulur. Bu davranışı devre dışı bırakmak isterseniz eip6963 seçeneğini geçin.

Örnek
ts
const wallet = createWallet({
  providers: {
    ethereum: {
      eip6963: false,
    },
  },
})

dApp'iniz sağlayıcının window.ethereum üzerinde mevcut olmasını bekliyorsa, dangerouslyInjectWindow seçeneğini geçerek oraya da enjekte edebilirsiniz.

Örnek
ts
const wallet = createWallet({
  providers: {
    ethereum: {
      dangerouslyInjectWindow: true,
    },
  },
})

window.ethereum.request(/* ... */)

Solana

Varsayılan olarak Phantom benzeri bir sağlayıcı döndürülür.

Örnek
ts
const wallet = createWallet({
  providers: {
    solana: true,
  },
})

const solanaProvider = await wallet.getProvider('solana')

solanaProvider.connect()

Ayrıca sağlayıcı, web sayfasına Wallet Standard izlenerek duyurulur. Bu davranışı devre dışı bırakmak isterseniz walletStandard seçeneğini geçin.

Örnek
ts
const wallet = createWallet({
  providers: {
    solana: {
      walletStandard: false,
    },
  },
})

dApp'iniz sağlayıcının window.solana üzerinde mevcut olmasını bekliyorsa, dangerouslyInjectWindow seçeneğini geçerek oraya da enjekte edebilirsiniz.

Örnek
ts
const wallet = createWallet({
  providers: {
    solana: {
      dangerouslyInjectWindow: true,
    },
  },
})

window.solana.connect()

Bitcoin

Varsayılan olarak bir Sats Connect v1 sağlayıcısı döndürülür.

Örnek
ts
const wallet = createWallet({
  providers: {
    bitcoin: true,
  },
})

const bitcoinProvider = await wallet.getProvider('bitcoin')

bitcoinProvider.connect(/* ... */)

Ayrıca sağlayıcı, web sayfasına Wallet Standard izlenerek duyurulur. Bu davranışı devre dışı bırakmak isterseniz walletStandard seçeneğini geçin.

Örnek
ts
const wallet = createWallet({
  providers: {
    bitcoin: {
      walletStandard: false,
    },
  },
})

Universal

Drop, çok zincirli bir dApp için tek bir bağlanma akışı kullanmanıza olanak tanıyan bir evrensel sağlayıcı ile gelir. Sağlayıcıyla Wallet Standard üzerinden etkileşim kurmanız önerilir. Evrensel sağlayıcı, kendisini Drop Universal adıyla kaydeder.

Örnek
ts
import { createWallet } from '@money-sdk/core'

const wallet = createWallet({
  providers: {
    ethereum: true,
    solana: true,
    universal: true,
  },
})
tsx
import { useWallets, useConnect } from '@wallet-standard/react'
import { useMemo } from 'react'

const wallets = useWallets()
const universalWallet = useMemo(
  () => wallets.find(({ name }) => name === 'Drop Universal'),
  [wallets],
)

const [connecting, connect] = useConnect(universalWallet)

/** Connect Ethereum and Solana at the same time. */
const accounts = connect()

Evrensel sağlayıcı bağlandıktan sonra, diğer sağlayıcıları alışık olduğunuz gibi kullanabilirsiniz.

INFO

Evrensel sağlayıcı yalnızca config'de etkinleştirilmiş diğer sağlayıcıları bağlar.

Ayrıca, sağlayıcıya cüzdan örneğinden de erişilebilir.

Örnek
ts
import { createWallet } from '@money-sdk/core'

const wallet = createWallet({
  providers: {
    bitcoin: true,
    ethereum: true,
    solana: true,
    universal: true,
  },
})

const provider = await wallet.getProvider('universal')

/** Connect Bitcoin, Ethereum and Solana at the same time. */
const accounts = provider.connect()

Dönüş değeri

createWallet, aşağıdaki metotlara sahip bir Wallet örneği döndürür:

getProvider(chain)

Verilen zincir ('bitcoin', 'ethereum', 'solana' veya 'universal') için web3 sağlayıcısına çözümlenen bir promise döndürür. Sağlayıcı providers config'inde etkinleştirilmemişse null olarak çözümlenir.

renderWidget(element)

Kullanıcının cüzdan UI'ını görebilmesi için cüzdan iframe'ini belirli bir DOM elementine bağlar. iframe'i tekrar document.body'ye ayırmak için null geçin. React bağlamaları bunu sizin için <WalletWidget> aracılığıyla yönetir.

setWidgetConfig(config)

Gömülü cüzdana bir widget yapılandırması (tema, boyut, şekil, compact) iletir. React bağlamaları bunu sizin için <WalletWidget> aracılığıyla yönetir.

disconnect()

iframe'e bir wallet:disconnect mesajı iletir. Kullanıcının widget içindeki disconnect butonuna tıklamasını beklemeden onu programatik olarak oturumdan çıkarmak istediğinizde kullanışlıdır.