-
Notifications
You must be signed in to change notification settings - Fork 1k
[New] RestServer Plugin
#3390
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[New] RestServer Plugin
#3390
Conversation
| throw new QueryParameterNotFoundException(nameof(method)); | ||
| try | ||
| { | ||
| var engine = ScriptHelper.InvokeMethod(_neosystem.Settings, _neosystem.StoreView, contracts.Hash, method, contractParameters, out var script); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Need supporting signer account and scope like what invokefunction did, or methods can't pass verifywitness.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
@cschuchardt88 conflict |
|
|
|
@shargon rate limiting is applied. |
vncoelho
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are all the converters of Newtonsoft/Json needed?
Do we really need that?
I still worry about maintenance of this plugin compared to how it could be improved in terms of code re-use
There is |
|
see #4093 moved for merging |




Description
In this section you will learn about
RestServerplugin and how it works.Checkout the docs in
./docs/RestServerfolder.Dependencies
RequiredRequiredRequiredRequiredRequiredRequiredRequiredlinux maybeRequiredRequiredRequiredSwagger(optional)Swagger(optional)Swagger(optional)Swagger(optional)Swagger(optional)Swagger UI(optional)In Docker
These files go in the same directory as the
RestServer.dll. In neo-cliplugins/RestServer/folder.Response Headers
neo-cliandRestServerversion.JSON Serializer
RestServeruses custom Newtonsoft Json Converters to serialize controller actionresponses and
routeparameters.One Way Binding -
Writeonly.Neo.SmartContract.ContractStateNeo.SmartContract.NefFileNeo.SmartContract.MethodTokenNeo.SmartContract.Native.TrimmedBlockNeo.SmartContract.Manifest.ContractAbiNeo.SmartContract.Manifest.ContractGroupNeo.SmartContract.Manifest.ContractManifestNeo.SmartContract.Manifest.ContractPermissionNeo.SmartContract.Manifest.ContractPermissionDescriptorNeo.Network.P2P.Payloads.BlockNeo.Network.P2P.Payloads.HeaderNeo.Network.P2P.Payloads.SignerNeo.Network.P2P.Payloads.TransactionAttributeNeo.Network.P2P.Payloads.TransactionNeo.Network.P2P.Payloads.WitnessTwo Way Binding -
Read&WriteSystem.GuidSystem.ReadOnlyMemory<T>Neo.BigDecimalNeo.UInt160Neo.UInt256Neo.Cryptography.ECC.ECPointNeo.VM.Types.ArrayNeo.VM.Types.BooleanNeo.VM.Types.BufferNeo.VM.Types.ByteStringNeo.VM.Types.IntegerNeo.VM.Types.InteropInterfaceNeo.VM.Types.NullNeo.VM.Types.MapNeo.VM.Types.PointerNeo.VM.Types.StackItemNeo.VM.Types.StructRemote Endpoints
Parametes
{hash}can be any Neo N3 address or scripthash;{address}can be any Neo N3 address only;{number}and{index}can be any uint32.Parameter Examples
{hash}- 0xef4073a0f2b305a38ec4050e4d3d28bc40ea63f5 or NiHURyS83nX2mpxtA7xq84cGxVbHojj5Wc{address}- NiHURyS83nX2mpxtA7xq84cGxVbHojj5Wc{number}- 1{index}- 2500000Paths
[GET]/api/v1/utils/{hash}/address[GET]/api/v1/utils/{address}/scripthash[GET]/api/v1/utils/{hash}/{address}/validate[GET]/api/v1/node/peers[GET]/api/v1/node/plugins[GET]/api/v1/node/settings[GET]/api/v1/ledger/neo/accounts[GET]/api/v1/ledger/gas/accounts[GET]/api/v1/ledger/blocks?page={number}&size={number}[GET]/api/v1/ledger/blocks/height[GET]/api/v1/ledger/blocks/{index}[GET]/api/v1/ledger/blocks/{index}/header[GET]/api/v1/ledger/blocks/{index}/witness[GET]/api/v1/ledger/blocks/{index}/transactions?page={number}&size={number}[GET]/api/v1/ledger/transactions/{hash}[GET]/api/v1/ledger/transactions/{hash}/witnesses[GET]/api/v1/ledger/transactions/{hash}/signers[GET]/api/v1/ledger/transactions/{hash}/attributes[GET]/api/v1/ledger/memorypool?page={number}&size={number}[GET]/api/v1/ledger/memorypool/verified?page={number}&size={number}[GET]/api/v1/ledger/memorypool/unverified?page={number}&size={number}[GET]/api/v1/ledger/memorypool/count[GET]/api/v1/tokens/balanceof/{address}[GET]/api/v1/tokens/nep-11?page={number}&size={number}[GET]/api/v1/tokens/nep-11/count[GET]/api/v1/tokens/nep-11/{hash}/balanceof/{address}[GET]/api/v1/tokens/nep-17?page={number}&size={number}[GET]/api/v1/tokens/nep-17/count[GET]/api/v1/tokens/nep-17/{hash}/balanceof/{address}[GET]/api/v1/contracts?page={number}&size={number}[GET]/api/v1/contracts/count[GET]/api/v1/contracts/{hash}[GET]/api/v1/contracts/{hash}/abi[GET]/api/v1/contracts/{hash}/manifest[GET]/api/v1/contracts/{hash}/nef[GET]/api/v1/contracts/{hash}/storageType of change
How Has This Been Tested?
By @superboyiii from neo-project/neo-modules#839
Checklist: