Ejemplo n.º 1
0
        public int GetIndexOfValidator(Address address)
        {
            if (address == Address.Null)
            {
                return(-1);
            }

            var result = (int)(BigInteger)RootChain.InvokeContract("consensus", "GetIndexOfValidator", address);

            return(result);
        }
Ejemplo n.º 2
0
        public Address GetValidatorByIndex(int index)
        {
            if (RootChain == null)
            {
                return(Address.Null);
            }

            Throw.If(index < 0, "invalid validator index");

            var result = (Address)RootChain.InvokeContract("consensus", "GetValidatorByIndex", (BigInteger)index);

            return(result);
        }
Ejemplo n.º 3
0
        public bool CreateGenesisBlock(KeyPair owner, Timestamp timestamp)
        {
            if (FuelToken != null)
            {
                return(false);
            }

            var transactions = new List <Transaction>
            {
                TokenCreateTx(RootChain, owner, StakingTokenSymbol, StakingTokenName, UnitConversion.ToBigInteger(91136374, StakingTokenDecimals), StakingTokenDecimals, TokenFlags.Fungible | TokenFlags.Transferable | TokenFlags.Finite | TokenFlags.Divisible | TokenFlags.Stakable | TokenFlags.External, false),
                TokenCreateTx(RootChain, owner, FuelTokenSymbol, FuelTokenName, PlatformSupply, FuelTokenDecimals, TokenFlags.Fungible | TokenFlags.Transferable | TokenFlags.Finite | TokenFlags.Divisible | TokenFlags.Fuel, false),
                TokenCreateTx(RootChain, owner, StableTokenSymbol, StableTokenName, 0, StableTokenDecimals, TokenFlags.Fungible | TokenFlags.Transferable | TokenFlags.Divisible | TokenFlags.Stable, true),

                SideChainCreateTx(RootChain, owner, "privacy"),
                SideChainCreateTx(RootChain, owner, "vault"),
                SideChainCreateTx(RootChain, owner, "bank"),
                SideChainCreateTx(RootChain, owner, "interop"),
                // SideChainCreateTx(RootChain, owner, "market"), TODO
                SideChainCreateTx(RootChain, owner, "apps"),
                SideChainCreateTx(RootChain, owner, "energy"),

                TokenCreateTx(RootChain, owner, "NEO", "NEO", UnitConversion.ToBigInteger(100000000, 0), 0, TokenFlags.Fungible | TokenFlags.Transferable | TokenFlags.Finite | TokenFlags.External, true),
                TokenCreateTx(RootChain, owner, "ETH", "Ethereum", UnitConversion.ToBigInteger(0, 18), 18, TokenFlags.Fungible | TokenFlags.Transferable | TokenFlags.Divisible | TokenFlags.External, true),
                TokenCreateTx(RootChain, owner, "EOS", "EOS", UnitConversion.ToBigInteger(1006245120, 18), 18, TokenFlags.Fungible | TokenFlags.Transferable | TokenFlags.Finite | TokenFlags.Divisible | TokenFlags.External, true),

                ConsensusStakeCreateTx(RootChain, owner)
            };

            var genesisMessage = Encoding.UTF8.GetBytes("A Phantasma was born...");
            var block          = new Block(Chain.InitialHeight, RootChain.Address, timestamp, transactions.Select(tx => tx.Hash), Hash.Null, genesisMessage);

            try
            {
                RootChain.AddBlock(block, transactions);
            }
            catch (Exception e)
            {
                return(false);
            }

            return(true);
        }
Ejemplo n.º 4
0
        public int GetValidatorCount()
        {
            var count = (BigInteger)RootChain.InvokeContract("consensus", "GetActiveValidatorss");

            return((int)count);
        }
Ejemplo n.º 5
0
        public IEnumerable <Address> GetValidators()
        {
            var validators = (Address[])RootChain.InvokeContract("consensus", "GetValidators");

            return(validators);
        }