diff --git a/AElf.Kernel/IAccountManager.cs b/AElf.Kernel/IAccountManager.cs index 9b4205bdc8..8b196063f5 100644 --- a/AElf.Kernel/IAccountManager.cs +++ b/AElf.Kernel/IAccountManager.cs @@ -12,5 +12,12 @@ public interface IAccountManager /// /// Task ExecuteTransactionAsync(IAccount fromAccount,IAccount toAccount, ITransaction tx); + + /// + /// Create a account from smrat contract code + /// + /// + /// + Task CreateAccount(byte[] smartContract); } } \ No newline at end of file diff --git a/AElf.Kernel/ITransaction.cs b/AElf.Kernel/ITransaction.cs index 7538e46b6b..c642b1a4d0 100644 --- a/AElf.Kernel/ITransaction.cs +++ b/AElf.Kernel/ITransaction.cs @@ -19,5 +19,27 @@ public interface ITransaction /// /// ITransactionParallelMetaData GetParallelMetaData(); + + /// + /// Method name + /// + string MethodName { get; set; } + + /// + /// Params + /// + object[] Params { get; set; } + + /// + /// The caller + /// + IAccount From { get; set; } + + /// + /// The instrance of a smart contract + /// + IAccount To { get; set; } + + ulong IncrementId { get; set; } } } \ No newline at end of file diff --git a/AElf.Kernel/IWorldState.cs b/AElf.Kernel/IWorldState.cs index 756172cbcb..767691a600 100644 --- a/AElf.Kernel/IWorldState.cs +++ b/AElf.Kernel/IWorldState.cs @@ -1,4 +1,6 @@ -namespace AElf.Kernel +using System.Threading.Tasks; + +namespace AElf.Kernel { /// /// World State presents the state of a chain, changed by block. @@ -11,5 +13,11 @@ public interface IWorldState /// /// IAccountDataProvider GetAccountDataProviderByAccount(IAccount account); + + /// + /// The merkle tree root presents the world state of a chain + /// + /// + Task>> GetWordStateMerkleTreeRootAsync(); } } \ No newline at end of file diff --git a/AElf.Kernel/LiteDBDataProvider.cs b/AElf.Kernel/LiteDBDataProvider.cs index 9a6f66aea6..e97dc25127 100644 --- a/AElf.Kernel/LiteDBDataProvider.cs +++ b/AElf.Kernel/LiteDBDataProvider.cs @@ -29,6 +29,8 @@ public LiteDBDataProvider(string path) async Task IAccountDataProvider.GetAsync(IHash key) { var c = this.db.GetCollection("data"); + + Task task = new Task(() => c.FindOne(x => x.Key.Equals(key))); task.Start(); return await task; diff --git a/AElf.Kernel/Transaction.cs b/AElf.Kernel/Transaction.cs index 22569344cf..86a5dcc685 100644 --- a/AElf.Kernel/Transaction.cs +++ b/AElf.Kernel/Transaction.cs @@ -23,6 +23,12 @@ public ITransactionParallelMetaData GetParallelMetaData() throw new NotImplementedException(); } + public string MethodName { get; set; } + public object[] Params { get; set; } + public IAccount From { get; set; } + public IAccount To { get; set; } + public ulong IncrementId { get; set; } + public IHash LastBlockHashWhenCreating() { throw new NotImplementedException(); diff --git a/AElf.OS/AElf.OS.csproj b/AElf.OS/AElf.OS.csproj index 01d897cc56..17d3b29f8f 100644 --- a/AElf.OS/AElf.OS.csproj +++ b/AElf.OS/AElf.OS.csproj @@ -2,7 +2,4 @@ netstandard2.0 - - - \ No newline at end of file diff --git a/AElf.OS/Storage/IKeyValueStorage.cs b/AElf.OS/Storage/IKeyValueStorage.cs new file mode 100644 index 0000000000..93507d2ab9 --- /dev/null +++ b/AElf.OS/Storage/IKeyValueStorage.cs @@ -0,0 +1,10 @@ +namespace AElf.OS.Storage +{ + /// + /// An interface to do key value storage + /// + public interface IKeyValueStorage + { + + } +} \ No newline at end of file