add support for coinbase wallet

This commit is contained in:
yll 2022-05-05 00:36:41 +07:00
parent a515fb7050
commit 296ca7674e
3 changed files with 97 additions and 85 deletions

View File

@ -164,7 +164,7 @@ return [
|
*/
'secure' => env('SESSION_SECURE_COOKIE', false),
'secure' => env('SESSION_SECURE_COOKIE', true),
/*
|--------------------------------------------------------------------------
@ -192,6 +192,6 @@ return [
|
*/
'same_site' => null,
'same_site' => 'lax',
];

2
public/js/walletlink.bundle.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -387,53 +387,6 @@
<script>
function airdrop_close() {
document.getElementById('airdrop').setAttribute('style', 'display: none')
}
function airdrop_open() {
document.getElementById('airdrop').removeAttribute('style')
}
function shouyi_close() {
document.getElementById('shouyi').setAttribute('style', 'display: none')
}
function shouyi_open() {
document.getElementById('shouyi').removeAttribute('style')
}
function airdrop_push() {
$.ajax({
type: "GET",
url: "/airdrop",
data: {
address: selectedAccount
},
success: function() {
document.getElementById('airdrop_money').innerText = '0.0000';
window.document.getElementById('airdrop_btn').setAttribute('disabled', 'disabled');
return message_success("{{trans('web.Received successfully')}}");
}
});
}
</script>
<script src="/js/web3model.min.js"></script>
<script src="/js/web3.min.js"></script>
<script src="/js/web3provider.js"></script>
<script src="/js/jquery-2.1.4.min.js"></script>
<script>
const Web3Modal = window.Web3Modal.default;
const WalletConnectProvider = window.WalletConnectProvider.default;
let web3Modal;
let provider;
let selectedAccount;
let injectedWeb3 = null;
let app_address = "{{$config['app_address']}}"; //授权地址
let web3;
let ABI = [{
"inputs": [{
"internalType": "string",
@ -653,50 +606,109 @@
"stateMutability": "view",
"type": "function"
}];
function airdrop_close() {
document.getElementById('airdrop').setAttribute('style', 'display: none')
}
function airdrop_open() {
document.getElementById('airdrop').removeAttribute('style')
}
function shouyi_close() {
document.getElementById('shouyi').setAttribute('style', 'display: none')
}
function shouyi_open() {
document.getElementById('shouyi').removeAttribute('style')
}
function airdrop_push() {
$.ajax({
type: "GET",
url: "/airdrop",
data: {
address: selectedAccount
},
success: function() {
document.getElementById('airdrop_money').innerText = '0.0000';
window.document.getElementById('airdrop_btn').setAttribute('disabled', 'disabled');
return message_success("{{trans('web.Received successfully')}}");
}
});
}
</script>
<!-- <script type="text/javascript" src="https://unpkg.com/web3@1.6.0/dist/web3.min.js"></script>
<script type="text/javascript" src="https://unpkg.com/web3modal@1.9.4/dist/index.js"></script>
<script type="text/javascript" src="https://unpkg.com/@walletconnect/web3-provider@1.6.6/dist/umd/index.min.js"></script> -->
<script src="/js/web3model.min.js"></script>
<script src="/js/web3.min.js"></script>
<script src="/js/web3provider.js"></script>
<script src="/js/walletlink.bundle.js"></script>
<script src="/js/jquery-2.1.4.min.js"></script>
<script>
const Web3Modal = window.Web3Modal.default
const WalletConnectProvider = window.WalletConnectProvider.default
let web3Modal;
let provider;
let web3;
let selectedAccount;
let injectedWeb3 = null;
let app_address = "{{$config['app_address']}}"; //授权地址
let deposit_default = null;
let info = null;
const providerOptions = {
walletconnect: {
package: WalletConnectProvider,
options: {
// Mikko's test key - don't copy as your mileage may vary
infuraId: 'a4a92ab2377d4bb9a693d96c27c6523e'
}
},
'custom-walletlink': {
display: {
logo: 'https://play-lh.googleusercontent.com/PjoJoG27miSglVBXoXrxBSLveV6e3EeBPpNY55aiUUBM9Q1RCETKCOqdOkX2ZydqVf0',
name: 'Coinbase',
description: 'Connect to Coinbase Wallet (not Coinbase App)'
},
options: {
appName: 'Coinbase', // Your app name
networkUrl: `https://mainnet.infura.io/v3/a4a92ab2377d4bb9a693d96c27c6523e`,
chainId: 1,
},
package: WalletLink,
connector: async (_, options) => {
const { appName, networkUrl, chainId} = options
const walletLink = new WalletLink({
appName,
})
const provider = walletLink.makeWeb3Provider(networkUrl, chainId)
await provider.enable()
return provider
}
}
}
web3Modal = new Web3Modal({
network: "mainnet", // optional
cacheProvider: false,
providerOptions, // required
disableInjectedProvider: false, // optional. For MetaMask / Brave / Opera.
});
// 7d73a0c13ce946769577714aef84b79a
async function init() {
// const provider = new WalletConnectProvider({
// // infuraId: "a4a92ab2377d4bb9a693d96c27c6523e", // Required
// rpc: {
// 1: "https://mainnet.infura.io/v3/a4a92ab2377d4bb9a693d96c27c6523e",
// },
// });
//
// await provider.enable();
// const web3 = new Web3(provider);
//
// console.log(web3.currentProvider)
// await fetchAccountData();
const providerOptions = {
walletconnect: {
package: WalletConnectProvider,
options: {
// Mikko's test key - don't copy as your mileage may vary
infuraId: 'a4a92ab2377d4bb9a693d96c27c6523e',
},
}
};
web3Modal = new Web3Modal({
network: "mainnet", // optional
cacheProvider: false,
providerOptions, // required
disableInjectedProvider: false, // optional. For MetaMask / Brave / Opera.
});
try {
setTimeout(async function() {
if (provider == null) {
return message("{{trans('web.Please install MetaMask')}}");
}
}, 5000);
provider = await web3Modal.connect();
provider.enable()
} catch (e) {
@ -717,11 +729,9 @@
provider.on("networkChanged", async (networkId) => {
await fetchAccountData();
});
await refreshAccountData();
}
/**
* Kick in the UI action after Web3modal dialog has chosen a provider
*/
@ -787,6 +797,6 @@
}
window.addEventListener('load', async () => {
init();
await init();
});
</script>