-
Notifications
You must be signed in to change notification settings - Fork 104
Expand file tree
/
Copy pathModifier.cs
More file actions
50 lines (44 loc) · 1.5 KB
/
Modifier.cs
File metadata and controls
50 lines (44 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
// Copyright (C) 2015-2026 The Neo Project.
//
// Modifier.cs file belongs to the neo project and is free
// software distributed under the MIT software license, see the
// accompanying file LICENSE in the main directory of the
// repository or http://www.opensource.org/licenses/mit-license.php
// for more details.
//
// Redistribution and use in source and binary forms with or without
// modifications are permitted.
using Neo.SmartContract.Framework;
using Neo.SmartContract.Framework.Attributes;
using Neo.SmartContract.Framework.Native;
using Neo.SmartContract.Framework.Services;
using System.ComponentModel;
namespace Modifier
{
public class OnlyOwnerAttribute : ModifierAttribute
{
readonly UInt160 _owner;
public OnlyOwnerAttribute(string hex)
{
_owner = (UInt160)(byte[])StdLib.Base64Decode(hex);
}
public override void Enter()
{
if (!Runtime.CheckWitness(_owner)) throw new System.Exception();
}
public override void Exit() { }
}
[DisplayName("SampleModifier")]
[ContractAuthor("core-dev", "dev@neo.org")]
[ContractDescription("A sample contract to demonstrate how to use modifiers")]
[ContractVersion("0.0.1")]
[ContractSourceCode("https://github.com/neo-project/neo-devpack-dotnet/tree/master/examples/")]
public class SampleModifier : SmartContract
{
[OnlyOwner("AAAAAAAAAAAAAAAAAAAAAAAAAAA=")]
public static bool Test()
{
return true;
}
}
}