我正在集成这里给出的MetaMask统一插件:https://assetstore.unity.com/packages/decentralization/infrastructure/metamask-246786
并遵循这里提供的文档:https://c0f4f41c-2f55-4863-921b-sdk-docs.github.io/guide/metamask-sdk-unity.html
允许用户将他们的MetaMask移动钱包应用程序与我的Windows连接起来,并授权交易。
我使用他们提供的代码片段在Sepolia上测试事务(rpc: rpc.sepolia.org,chainID: 11155111):
var wallet = MetaMaskUnity.Instance.Wallet;
var transactionParams = new MetaMaskTranscation
{
To = "0xd00..................................a",
From = MetaMaskUnity.Instance.Wallet.SelectedAddress,
Value = "0x0" //------------------------> note
};
var request = new MetaMaskEthereumRequest
{
Method = "eth_sendTransaction",
Parameters = new MetaMaskTranscation[] { transactionParams }
};
await wallet.Request(request);我修改了接收地址和要发送的值。钱包是连接和交易工作的,除了不正确的数额显示和转移到接收者。据我所知,这个插件所要求的值是魏的,而移动应用程序中显示的值将显示大于0.00001 eth的以太值。对于较小的数量,我需要从块资源管理器确认。
下面是我做过的一个示例事务(不要扫描这个):

对于下面的txRequests,Mobile在弹出请求中显示了相应的金额。
Sent Request Received Request Gas Fee Total
1000000000000 0.00028 + 0.000032 = 0.000313
10000000000000 0.00045 + 0.000032 = 0.004536
100000000000000 0.07206 + 0.000032 = 0.007209我不明白这种转换,因为据我所知,1 we= 10^-18。
发布于 2023-03-24 05:14:26
它的意图是,以"0x“开头的字符串将被解析为十六进制,而其他字符串则被解析为小数。但是,目前该方法试图以十六进制格式解析这两种字符串。因此,如果我们发送'1‘或'0x1’,它将两者都视为1魏,'A‘为'10','16’为22,等等。
因此,我们可以传递值的十六进制格式。不过,这一问题将在今后的更新中得到解决:
https://ethereum.stackexchange.com/questions/147717
复制相似问题