我不明白为什么当我使用提供者调用方法时,walletconnect 不断在https://link.trustwallet.com中重定向我,而不是打开我的应用程序来批准交易。我已经为 metamask 和 walletconnect 编写了代码,并且我使用 ethersjs 来处理提供程序。
这是连接代码
const getBlockchain = (typew) =>
new Promise(async (resolve) => {
var provider;
if(typew == "metamask"){
/* @ts-ignore */
if(window.ethereum) {
/* @ts-ignore */
await window.ethereum.enable();
/* @ts-ignore */
provider = new ethers.providers.Web3Provider(window.ethereum);
}
}
if(typew == "walletconnect"){
providerEth = new WalletConnectProvider({
chainId: 56,
rpc: {
56: "https://bsc-dataseed.binance.org",
}
});
await providerEth.enable();
provider = new ethers.providers.Web3Provider(providerEth);
provider.off("disconnect");
provider.on("disconnect", () => {
closeBlockhain();
})
}
if(provider !== undefined){
const signer = provider.getSigner();
/* @ts-ignore */
const signerAddress:any = await signer.getAddress();
const contract = new Contract(
Contract.networks[56].address,
Contract.abi,
signer
);
const contract_two = new Contract(
Contract_two.networks[56].address,
Contract_two.abi,
signer
);
configConnections = {
connected: true,
provider,
contract,
contract_two,
signerAddress: signerAddress
}
resolve(configConnections);
}
resolve(configConnections);
});
这是方法的代码
let test = await configConnections.contract.awardItem(ethers.utils.formatBytes32String("1"),res.data.hash);
无法向自己解释为什么如果我在移动设备上打开应用程序并尝试调用方法,浏览器会将我重定向到其他页面而不是 TrustWallet 或 Metamask 应用程序上。
谢谢你。