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