Componentes Principales
<AnySpend>
El componente de interfaz principal para intercambios de token a token y rampas de entrada de fiat.
// https://github.com/b3-fun/b3/blob/main/packages/sdk/src/anyspend/react/components/AnySpend.tsx
import { AnySpend } from "@b3dotfun/sdk/anyspend/react" ;
< AnySpend
mode = "modal"
defaultActiveTab = "crypto"
destinationTokenAddress = "0x..."
destinationTokenChainId = { 8333 }
recipientAddress = "0x..."
hideTransactionHistoryButton = { false }
/> ;
Props
mode
'modal' | 'page'
default: "'modal'"
Mostrar como superposición modal o página completa
defaultActiveTab
'crypto' | 'fiat'
default: "'crypto'"
Pestaña de método de pago inicial
Dirección del token de destino para el modo de compra
Chain ID del token de destino
Dirección de la cartera del destinatario
hideTransactionHistoryButton
Ocultar acceso al historial de transacciones
Cargar orden específica por ID
Ejemplos de Uso
Intercambio de Tokens Básico Rampa de Entrada Fiat-a-Crypto < AnySpend
mode = "page"
recipientAddress = { userWalletAddress }
/>
Un componente de botón simplificado para compras de NFT con manejo de pago integrado.
import { AnySpendNFTButton } from "@b3dotfun/sdk/anyspend/react" ;
< AnySpendNFTButton nftContract = { nftContractDetails } recipientAddress = "0x..." /> ;
Props
Objeto de configuración del contrato NFT
Dirección de la cartera para recibir el NFT
Interfaz NFTContract
interface NFTContract {
chainId : number ; // ID de la red blockchain
contractAddress : string ; // Dirección del contrato NFT
price : string ; // Precio en wei
priceFormatted : string ; // Precio legible por humanos
currency : {
chainId : number ;
address : string ; // Contrato de token (0x0 para ETH nativo)
name : string ;
symbol : string ;
decimals : number ;
metadata : {
logoURI : string ;
};
};
name : string ; // Nombre de la colección NFT
description : string ; // Descripción del NFT
imageUrl : string ; // URL de la imagen de vista previa
tokenId : number | null ; // ID del token (null para ERC721, ID específico para ERC1155)
type : "erc721" | "erc1155" ; // Tipo de contrato NFT
}
Ejemplo de Uso
Integración Completa de NFT
const coolNFT = {
chainId: 8333 ,
contractAddress: "0x9c275ff1634519E9B5449ec79cd939B5F900564d" ,
price: "500000000000000000" , // 0.5 ETH
priceFormatted: "0.5" ,
currency: {
chainId: 8333 ,
address: "0x0000000000000000000000000000000000000000" ,
name: "Ether" ,
symbol: "ETH" ,
decimals: 18 ,
metadata: {
logoURI: "https://assets.coingecko.com/coins/images/279/standard/ethereum.png?1696501628" ,
},
},
name: "Cool Art Collection" ,
description: "Arte digital único" ,
imageUrl: "https://example.com/nft-preview.png" ,
tokenId: null ,
type: "erc721" ,
};
< AnySpendNFTButton nftContract = { coolNFT } recipientAddress = { userAddress } /> ;
<AnySpendCustom>
El componente más flexible para interacciones de contratos inteligentes personalizadas, incluyendo juegos, staking y operaciones de DeFi.
Interacción de Contrato Personalizado
// https://github.com/b3-fun/b3/blob/main/packages/sdk/src/anyspend/react/components/AnySpendCustom.tsx
import { AnySpendCustom } from "@b3dotfun/sdk/anyspend/react" ;
< AnySpendCustom
orderType = "custom"
dstChainId = { 8333 }
dstToken = { tokenDetails }
dstAmount = "1000000000000000000"
contractAddress = "0x..."
encodedData = "0x..."
spenderAddress = "0x..."
metadata = { customMetadata }
header = { CustomHeaderComponent }
onSuccess = { txHash => console . log ( "Acción personalizada completada" , txHash ) }
/> ;
Props
Identificador del tipo de orden
Red blockchain de destino
Token utilizado para el pago
Cantidad en wei/unidad más pequeña
Dirección del contrato inteligente de destino
Datos codificados de la llamada a la función
Dirección del gastador del token opcional
Metadatos personalizados para seguimiento
Componente de encabezado personalizado
onSuccess
(txHash?: string) => void
Callback de éxito con hash de la transacción
Ejemplo de Uso - Staking
// Codificar llamada a función de staking
const stakeAmount = "1000000000000000000" ; // 1 token
const stakingCalldata = encodeFunctionData ({
abi: stakingABI ,
functionName: "stake" ,
args: [ stakeAmount , 30 ], // 30 días
});
< AnySpendCustom
orderType = "custom"
dstChainId = { 8333 }
dstToken = { stakingToken }
dstAmount = { stakeAmount }
contractAddress = "0xStakingContract..."
encodedData = { stakingCalldata }
metadata = { {
action: "stake" ,
duration: 30 ,
expectedRewards: "5.2%" ,
} }
header = { ({ anyspendPrice , isLoadingAnyspendPrice }) => (
< div className = "staking-header" >
< h2 > Stake Tokens </ h2 >
< p > Duración: 30 días </ p >
< p > APY Esperado: 5.2% </ p >
{ ! isLoadingAnyspendPrice && < p > Costo Total: $ { anyspendPrice ?. usdPrice } </ p > }
</ div >
) }
/> ;
Componentes Especializados
<AnySpendNFT>
Componente NFT mejorado con características adicionales del mercado.
// https://github.com/b3-fun/b3/blob/main/packages/sdk/src/anyspend/react/components/AnySpendNFT.tsx
< AnySpendNFT nftContract = { nftDetails } recipientAddress = "0x..." showMetadata = { true } showPriceHistory = { true } />
<AnySpendStakeB3>
Componente preconfigurado para staking de tokens B3.
// https://github.com/b3-fun/b3/blob/main/packages/sdk/src/anyspend/react/components/AnySpendStakeB3.tsx
< AnySpendStakeB3 stakeAmount = "1000000000000000000" stakingDuration = { 30 } recipientAddress = "0x..." />
<AnySpendBuySpin>
Componente específico para juegos para la compra de ruletas o boletos de lotería.
// https://github.com/b3-fun/b3/blob/main/packages/sdk/src/anyspend/react/components/AnySpendBuySpin.tsx
< AnySpendBuySpin gameContract = "0x..." spinPrice = "100000000000000000" recipientAddress = "0x..." />
<AnySpendTournament>
Componente de pago de entrada a torneos.
// https://github.com/b3-fun/b3/blob/main/packages/sdk/src/anyspend/react/components/AnySpendTournament.tsx
< AnySpendTournament tournamentId = "tournament-123" entryFee = "500000000000000000" recipientAddress = "0x..." />
Estilización de Componentes
Todos los componentes vienen con un estilo predeterminado que se puede personalizar usando variables CSS:
Estilización Personalizada
/* Sobrescribir estilos predeterminados */
.anyspend-modal {
--anyspend-primary : #6366f1 ;
--anyspend-secondary : #f3f4f6 ;
--anyspend-border-radius : 12 px ;
}
Componente React Web React Native AnySpend
✅ ✅ AnySpendNFTButton
✅ ✅ AnySpendCustom
✅ ✅ AnySpendNFT
✅ ✅ Características de rampa de entrada fiat ✅ ❌
Próximos Pasos