saowirricardo/laravel-web3

开启 web3 功能,将您的 Laravel 应用送上月球 🚀

1.0.0 2022-03-15 02:21 UTC

This package is auto-updated.

Last update: 2024-09-15 14:58:18 UTC


README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Laravel Web3 帮助您快速启动您的 web3 应用。

  • 不再为处理钱包地址变化和与 Laravel 后端同步而头疼。
  • 只需这样做
  • 真的,只需按照以下步骤操作即可完成。

支持这个

在 Laravel-Web3 上投资绝对是你明智的选择。您可以通过捐赠到我的钱包来支持

安装

您可以通过 composer 安装此包

composer require sawirricardo/laravel-web3

您可以使用以下命令发布和运行迁移

php artisan vendor:publish --provider="Sawirricardo\LaravelWeb3\LaravelWeb3ServiceProvider" --tag="laravel-web3-migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="Sawirricardo\LaravelWeb3\LaravelWeb3ServiceProvider" --tag="laravel-web3-config"

这是已发布配置文件的内容

return [
  'network' => env('WEB3_NETWORK', 'localhost'),
  'infura_id' => env('WEB3_INFURA_ID', ''),
];

将其添加到您的 .env 文件中

WEB3_NETWORK=localhost #mainnet, mumbai, etc
WEB_INFURA_ID=xxxxxxxxxxxxxxxxxx
MIX_WEB3_NETWORK="${WEB3_NETWORK}"
MIX_WEB3_INFURA_ID="${WEB_INFURA_ID}"

然后,将 "account" 添加到 \App\Models\User 的可填充字段中

// app/Models/User.php
protected $fillable = [
  'email','name','password',
  'account' //Add this
];

还将此添加到您的布局 HTML 中

<body>
    <!-- it's best to drop this at the below -->
    <script
        src="https://cdn.ethers.io/lib/ethers-5.2.umd.min.js"
        type="application/javascript"
    ></script>
    <script
        type="text/javascript"
        src="https://unpkg.com/web3modal@1.9.0/dist/index.js"
    ></script>
    <script
        type="text/javascript"
        src="https://unpkg.com/@walletconnect/web3-provider@1.6.5/dist/umd/index.min.js"
    ></script>
    <x-laravelweb3Scripts />
</body>

用法

@guest
<button onclick="laravelWeb3.onConnect()">Connect to wallet</button>
@endguest

@auth
<button onclick="laravelWeb3.onDisconnect()">Disconnect wallet</button>
@endauth
// return provider object by Ethers JS
// Run wild, my friends
const etherProvider = laravelWeb3.getProvider();

// LaravelWeb3 automatically register laravelWeb3 to window object for you to play.
console.log({window.laravelWeb3});

测试

composer test

变更日志

请参阅 CHANGELOG 了解最近更改的更多信息。

贡献

请参阅 CONTRIBUTING 了解详细信息。

安全漏洞

请查看 我们的安全策略 了解如何报告安全漏洞。

鸣谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件