diff --git a/packages/neo-one-node-vm/lib/Dispatcher.csproj b/packages/neo-one-node-vm/lib/Dispatcher.csproj index dfd61c9da0..5af090e5d7 100644 --- a/packages/neo-one-node-vm/lib/Dispatcher.csproj +++ b/packages/neo-one-node-vm/lib/Dispatcher.csproj @@ -14,8 +14,8 @@ - + + diff --git a/packages/neo-one-node-vm/lib/ReturnHelpers.cs b/packages/neo-one-node-vm/lib/ReturnHelpers.cs index 056e61ae85..e3261f3e50 100644 --- a/packages/neo-one-node-vm/lib/ReturnHelpers.cs +++ b/packages/neo-one-node-vm/lib/ReturnHelpers.cs @@ -106,6 +106,18 @@ public MapReturn(Map item) } } + public class BufferReturn + { + public byte[] value; + public StackItemType Type => StackItemType.Buffer; + public readonly bool IsNull; + public BufferReturn(Neo.VM.Types.Buffer item) + { + this.value = item.InnerBuffer; + this.IsNull = item.IsNull; + } + } + public class InteropInterfaceReturn { public dynamic value; @@ -135,7 +147,7 @@ public static dynamic convertStackItem(StackItem item) return item.Type switch { StackItemType.Any => item, - StackItemType.Buffer => item, + StackItemType.Buffer => new BufferReturn((Neo.VM.Types.Buffer)item), StackItemType.Pointer => new PointerReturn((Neo.VM.Types.Pointer)item), StackItemType.Array => new ArrayReturn((Neo.VM.Types.Array)item), StackItemType.Struct => new StructReturn((Struct)item),