From 42fd657b3f502ddcec482abd050ccb06b993d50e Mon Sep 17 00:00:00 2001 From: Erik Zhang Date: Fri, 11 Dec 2020 15:38:14 +0800 Subject: [PATCH 1/2] Fix asset symbol --- src/neo/SmartContract/Native/Tokens/GasToken.cs | 2 +- src/neo/SmartContract/Native/Tokens/NeoToken.cs | 2 +- src/neo/Wallets/AssetDescriptor.cs | 9 ++++++--- .../SmartContract/Native/Tokens/UT_GasToken.cs | 2 +- .../SmartContract/Native/Tokens/UT_NeoToken.cs | 2 +- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/neo/SmartContract/Native/Tokens/GasToken.cs b/src/neo/SmartContract/Native/Tokens/GasToken.cs index 8ee59c9a12..9988f7b041 100644 --- a/src/neo/SmartContract/Native/Tokens/GasToken.cs +++ b/src/neo/SmartContract/Native/Tokens/GasToken.cs @@ -9,7 +9,7 @@ public sealed class GasToken : Nep17Token public override int Id => -2; public override string Name => "GAS"; public override uint ActiveBlockIndex => 0; - public override string Symbol => "gas"; + public override string Symbol => "GAS"; public override byte Decimals => 8; internal GasToken() diff --git a/src/neo/SmartContract/Native/Tokens/NeoToken.cs b/src/neo/SmartContract/Native/Tokens/NeoToken.cs index 4c8b0fefa3..3fd6bc75e6 100644 --- a/src/neo/SmartContract/Native/Tokens/NeoToken.cs +++ b/src/neo/SmartContract/Native/Tokens/NeoToken.cs @@ -20,7 +20,7 @@ public sealed class NeoToken : Nep17Token public override int Id => -1; public override string Name => "NEO"; public override uint ActiveBlockIndex => 0; - public override string Symbol => "neo"; + public override string Symbol => "NEO"; public override byte Decimals => 0; public BigInteger TotalAmount { get; } diff --git a/src/neo/Wallets/AssetDescriptor.cs b/src/neo/Wallets/AssetDescriptor.cs index 5df14f1a0a..3dd52f57c8 100644 --- a/src/neo/Wallets/AssetDescriptor.cs +++ b/src/neo/Wallets/AssetDescriptor.cs @@ -9,9 +9,10 @@ namespace Neo.Wallets { public class AssetDescriptor { - public UInt160 AssetId; - public string AssetName; - public byte Decimals; + public UInt160 AssetId { get; } + public string AssetName { get; } + public string Symbol { get; } + public byte Decimals { get; } public AssetDescriptor(UInt160 asset_id) { @@ -23,12 +24,14 @@ public AssetDescriptor(UInt160 asset_id) using (ScriptBuilder sb = new ScriptBuilder()) { sb.EmitAppCall(asset_id, "decimals"); + sb.EmitAppCall(asset_id, "symbol"); script = sb.ToArray(); } using ApplicationEngine engine = ApplicationEngine.Run(script, snapshot, gas: 0_02000000); if (engine.State.HasFlag(VMState.FAULT)) throw new ArgumentException(); this.AssetId = asset_id; this.AssetName = contract.Manifest.Name; + this.Symbol = engine.ResultStack.Pop().GetString(); this.Decimals = (byte)engine.ResultStack.Pop().GetInteger(); } diff --git a/tests/neo.UnitTests/SmartContract/Native/Tokens/UT_GasToken.cs b/tests/neo.UnitTests/SmartContract/Native/Tokens/UT_GasToken.cs index a7564ea8b0..73c801b6b4 100644 --- a/tests/neo.UnitTests/SmartContract/Native/Tokens/UT_GasToken.cs +++ b/tests/neo.UnitTests/SmartContract/Native/Tokens/UT_GasToken.cs @@ -32,7 +32,7 @@ public void TestSetup() public void Check_Name() => NativeContract.GAS.Name.Should().Be("GAS"); [TestMethod] - public void Check_Symbol() => NativeContract.GAS.Symbol(_snapshot).Should().Be("gas"); + public void Check_Symbol() => NativeContract.GAS.Symbol(_snapshot).Should().Be("GAS"); [TestMethod] public void Check_Decimals() => NativeContract.GAS.Decimals(_snapshot).Should().Be(8); diff --git a/tests/neo.UnitTests/SmartContract/Native/Tokens/UT_NeoToken.cs b/tests/neo.UnitTests/SmartContract/Native/Tokens/UT_NeoToken.cs index c281034c21..419124058a 100644 --- a/tests/neo.UnitTests/SmartContract/Native/Tokens/UT_NeoToken.cs +++ b/tests/neo.UnitTests/SmartContract/Native/Tokens/UT_NeoToken.cs @@ -36,7 +36,7 @@ public void TestSetup() public void Check_Name() => NativeContract.NEO.Name.Should().Be("NEO"); [TestMethod] - public void Check_Symbol() => NativeContract.NEO.Symbol(_snapshot).Should().Be("neo"); + public void Check_Symbol() => NativeContract.NEO.Symbol(_snapshot).Should().Be("NEO"); [TestMethod] public void Check_Decimals() => NativeContract.NEO.Decimals(_snapshot).Should().Be(0); From f01aa627d175d19ebd758842e60f752cf975cabf Mon Sep 17 00:00:00 2001 From: Shargon Date: Fri, 11 Dec 2020 09:22:41 +0100 Subject: [PATCH 2/2] Increase coverage --- tests/neo.UnitTests/Wallets/UT_AssetDescriptor.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/neo.UnitTests/Wallets/UT_AssetDescriptor.cs b/tests/neo.UnitTests/Wallets/UT_AssetDescriptor.cs index bf9fbbae25..7498c96680 100644 --- a/tests/neo.UnitTests/Wallets/UT_AssetDescriptor.cs +++ b/tests/neo.UnitTests/Wallets/UT_AssetDescriptor.cs @@ -30,6 +30,7 @@ public void Check_GAS() var descriptor = new Neo.Wallets.AssetDescriptor(NativeContract.GAS.Hash); descriptor.AssetId.Should().Be(NativeContract.GAS.Hash); descriptor.AssetName.Should().Be("GAS"); + descriptor.Symbol.Should().Be("GAS"); descriptor.ToString().Should().Be("GAS"); descriptor.Decimals.Should().Be(8); } @@ -40,6 +41,7 @@ public void Check_NEO() var descriptor = new Neo.Wallets.AssetDescriptor(NativeContract.NEO.Hash); descriptor.AssetId.Should().Be(NativeContract.NEO.Hash); descriptor.AssetName.Should().Be("NEO"); + descriptor.Symbol.Should().Be("NEO"); descriptor.ToString().Should().Be("NEO"); descriptor.Decimals.Should().Be(0); }