public void ConvertLogic() { tokenContract = new SolidityContract(token.ToStructureName()); tokenContract.AddInheritance(ConverterConfig.OWNABLE_NAME); //constructor tokenContract.AddComponent(CreateConstructor()); //mint tokenContract.AddComponent(CreateMintFunction()); //transfer tokenContract.AddComponent(CreateTransferFunction()); dataModelConverter.AddDependency(ConverterConfig.OWNABLE_IMPORT); if (token.IsFungible) { tokenContract.AddInheritance(ConverterConfig.FUNGIBLE_TOKEN_NAME); dataModelConverter.AddDependency(ConverterConfig.FUNGIBLE_TOKEN_IMPORT); } else { tokenContract.AddInheritance(ConverterConfig.NON_FUNGIBLE_TOKEN_NAME); dataModelConverter.AddDependency(ConverterConfig.NON_FUNGIBLE_TOKEN_IMPORT); } foreach (var property in token.Properties) { tokenContract.AddComponent(dataModelConverter.ConvertProperty(property)); } }
public async Task <bool> Insert(SolidityContractAggregate contract) { if (contract == null) { throw new ArgumentNullException(nameof(contract)); } var exists = await _currentDbContext.SolidityContracts.AnyAsync(w => w.Address == contract.Address).ConfigureAwait(false); if (exists) { return(false); } var record = new SolidityContract { Address = contract.Address, Code = contract.Code, Abi = contract.Abi }; _currentDbContext.SolidityContracts.Add(record); await _currentDbContext.SaveChangesAsync().ConfigureAwait(false); return(true); }
public ContractConverter(Contract contract) { Contract = contract; mainSolidityContract = new SolidityContract(contract.Id); DataModelConverter = new DataModelConverter(this); CreateProcessConverters(); }
public void TestEmptyContract() { SolidityContract contract = new SolidityContract("foo"); var actual = contract.ToString(); var expected = "contract foo { \n }"; Assert.Equal(expected, actual); }
public ContractConverter(Contract contract) { Contract = contract; var contractName = $"contract{contract.Id.Replace("-", "")}"; mainSolidityContract = new SolidityContract(contractName); DataModelConverter = new DataModelConverter(this); CreateProcessConverters(); }
public ContractConverter(Contract contract) { Contract = contract; var contractName = contract.Name == null ? contract.Id : contract.Name; mainSolidityContract = new SolidityContract(contractName); DataModelConverter = new DataModelConverter(this); CreateProcessConverters(); }
public void TestSingleInheritance() { SolidityContract contract = new SolidityContract("foo"); contract.AddInheritance("Bar1"); var actual = contract.ToString(); var expected = "contract foo is Bar1{ \n }"; Assert.Equal(expected, actual); }
public void TestContractWithFunction() { SolidityContract contract = new SolidityContract("foo"); contract.AddComponent(new SolidityFunction("bar", SolidityVisibility.Public)); var actual = contract.ToString(); var expected = "contract foo { \n" + "\tfunction bar() public {\n" + "\t}\n" + "\n }"; Assert.Equal(expected, actual); }
public ProcessConverter(Contract contract) { process = contract.Process; entities = (List <Entity>)contract.Entities; solidityContract = new SolidityContract("GeneratedContract"); AddDataModel(); // ERC721 HouseToken address, only for Mortgage usecase, remove otherwise solidityContract.AddComponent(new SolidityStatement("IERC721 houseTokenAddress = IERC721(address(0x93b6784CE509d1cEA255aE8269af4Ee258943Bd0))")); //Current state declaration solidityContract.AddComponent(new SolidityStatement("mapping (string => bool) public " + ACTIVE_STATES_NAME)); solidityContract.AddComponent(new SolidityStatement("mapping (string => address) public " + Helpers.ADDRESS_MAPPING_VAR_NAME)); //Method for retrieving current state var getStateFunction = new SolidityFunction(IS_STATE_ACTIVE_FUNCTION_NAME, SolidityVisibility.Public, "bool"); getStateFunction.AddToBody(new SolidityStatement("return " + ACTIVE_STATES_NAME + "[" + STATE_PARAMETER_NAME + "]")); getStateFunction.AddParameter(new SolidityParameter("string", STATE_PARAMETER_NAME)); solidityContract.AddComponent(getStateFunction); IterateProcess(); }