Пример #1
0
        internal async Task <string> GetExtrinsicParametersAsync(GenericExtrinsicCall callArguments, Account account, uint tip, uint lifeTime, CancellationToken token)
        {
            Method method = GetMethod(callArguments);

            uint nonce = await System.AccountNextIndexAsync(account.Address, token);

            Era  era;
            Hash startEra;

            if (lifeTime == 0)
            {
                era      = Era.Create(0, 0);
                startEra = GenesisHash;
            }
            else
            {
                startEra = await Chain.GetFinalizedHeadAsync(token);

                Header finalizedHeader = await Chain.GetHeaderAsync(startEra, token);

                era = Era.Create(lifeTime, finalizedHeader.Number);
            }

            var uncheckedExtrinsic = RequestGenerator.SubmitExtrinsic(true, account, method, era, nonce, tip, GenesisHash, startEra);

            return(Utils.Bytes2HexString(uncheckedExtrinsic.Encode(), Utils.HexStringFormat.PREFIXED));
        }
Пример #2
0
        /// <summary>
        /// Get an unchecked extrinsic.
        /// </summary>
        /// <param name="callArguments"></param>
        /// <param name="account"></param>
        /// <param name="tip"></param>
        /// <param name="lifeTime"></param>
        /// <param name="signed"></param>
        /// <param name="token"></param>
        /// <returns></returns>
        public async Task <UnCheckedExtrinsic> GetExtrinsicParametersAsync(GenericExtrinsicCall callArguments, Account account, uint tip, uint lifeTime, bool signed, CancellationToken token)
        {
            var method = GetMethod(callArguments);

            var nonce = await System.AccountNextIndexAsync(account.Value, token);

            Era  era;
            Hash startEra;

            if (lifeTime == 0)
            {
                era      = Era.Create(0, 0);
                startEra = GenesisHash;
            }
            else
            {
                startEra = await Chain.GetFinalizedHeadAsync(token);

                var finalizedHeader = await Chain.GetHeaderAsync(startEra, token);

                era = Era.Create(lifeTime, finalizedHeader.Number.Value);
            }

            return(RequestGenerator.SubmitExtrinsic(signed, account, method, era, nonce, tip, GenesisHash, startEra, RuntimeVersion));
        }