JFJun / stafi-substrate-go

substrate-go sdk,support stafi,polkadot,kusma,chainx2.0,darwinia

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

如何计算我想要广播的dot或者ksm交易的手续费

yaoyf888 opened this issue · comments

@JFJun 能帮我看一下吗?

commented

@JFJun 能帮我看一下吗?

@yaoyf888 这篇文章有介绍,https://substrate.dev/docs/en/knowledgebase/runtime/fees
因为波卡的每个链手续费计算有些不一样,我就没有实现,而是根据他上链以后,通过接口去获取(client.go/GetPartialFee)

@JFJun 你看到你的stafi-substrate-go代码有写了一个Test_CalcFee,我测试了一下,好像dot之类的在获取ExtrinsicBaseWeight这个的时候,没有获取到 ,你知道为什么吗?

commented

@JFJun 你看到你的stafi-substrate-go代码有写了一个Test_CalcFee,我测试了一下,好像dot之类的在获取ExtrinsicBaseWeight这个的时候,没有获取到 ,你知道为什么吗?

@yaoyf888 那个测试用例是错的,当时没有写完,因为当时发现又更好的获取手续费的方法,通过接口也是可以获取的,所以当时就没有在交易的时候计算了

@JFJun 好吧,那交易的时候就计算手续费的方式,怎么获取到TransactionByteFee和weight?他是怎么样一个计算方式?能描述下吗?

commented

@JFJun 好吧,那交易的时候就计算手续费的方式,怎么获取到TransactionByteFee和weight?他是怎么样一个计算方式?能描述下吗?

@yaoyf888 是在这个TransactionPayment这个Module下的常量TransactionByteFee中,weight之前实在System这个Module下的ExtrinsicBaseWeight这个常量中,不过现在取消了,应该是需要通过事件去获取

commented

@JFJun 好吧,那交易的时候就计算手续费的方式,怎么获取到TransactionByteFee和weight?他是怎么样一个计算方式?能描述下吗?
@yaoyf888
其实这种计算方法还是需要知道这笔交易是在哪一个区块上的,知道区块才能获取weight,所以其实你使用client.go/GetPartialFee这个方法是一样的

@JFJun 我抓了一下别的app的包,然后发现他们也是使用client.go/GetPartialFee这个方法中的payment_queryInfo这个rpc,你知道这个rpc调用还有别的调用方式吗?
{
"id": 108,
"jsonrpc": "2.0",
"method": "payment_queryInfo",
"params": ["0x2d028400827831a66616d2e71555ccb75360b1bf8a47117e2abc26b8fdd2601b60dcbc200142424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242a5000000040000827831a66616d2e71555ccb75360b1bf8a47117e2abc26b8fdd2601b60dcbc2000"]
}

commented

@JFJun 因为我看到现在的调用方式c.C.Client.Call(&result, "payment_queryInfo", extrinsic, parentHash),入参是以block里的和上一个区块的hash,但是我抓到的这个包,可以看出来,它好像没有用到那两个参数

commented

@JFJun 稍等啊,我晚点发给你

{
"id": 108,
"jsonrpc": "2.0",
"method": "payment_queryInfo",
"params": ["0x2d028400827831a66616d2e71555ccb75360b1bf8a47117e2abc26b8fdd2601b60dcbc200142424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242a5000000040000827831a66616d2e71555ccb75360b1bf8a47117e2abc26b8fdd2601b60dcbc2000"]
}
url:https://kusama.mytokenpocket.vip/

commented

@JFJun 好吧,但是还没有输入密码,他是怎么回去获取这个txid的呢?

commented

嗯,上链之前就可以拿到这个extrinsic了?那我得看看拿到这个extrinsic,就可以估算他的手续费了?

commented