Example #1
0
        public static AstContractDefinition[] GetLinearizedBaseContracts(AstContractDefinition contractNode)
        {
            // Obtain our linearized contracts
            AstContractDefinition[] linearizedContracts = contractNode.LinearizedBaseContracts.Select(x => GetNode <AstContractDefinition>(x)).ToArray();

            // Return the array
            return(linearizedContracts);
        }
Example #2
0
        public static AstVariableDeclaration[] GetStateVariableDeclarations(AstContractDefinition contractNode)
        {
            // Loop for each linearized base contract (includes the contract id itself).
            AstContractDefinition[] linearizedContracts = GetLinearizedBaseContracts(contractNode);

            // Create a list of our resulting state variables.
            List <AstVariableDeclaration> stateVariables = new List <AstVariableDeclaration>();

            // Loop for each contract our target contract is based off of, and add it's variable declarations.
            for (int i = linearizedContracts.Length - 1; i >= 0; i--)
            {
                stateVariables.AddRange(linearizedContracts[i].VariableDeclarations);
            }

            // Return our state variable array.
            return(stateVariables.ToArray());
        }