Is your feature request related to a problem? Please describe.
In addition to using the PersonalInfo contract as a protocol for registering investors' personal information, we would also like to support off-chain 'sealed' registration.
Describe the solution you'd like
We would like to support off-chain message transactions similar to those used for issuers, such as the PersonalInfo contract. Specifically, we plan to define a 'SealedTx' API like the example below to accept execution commands from account addresses.
Endpoint: /sealed_tx/personal_info/register
Parameters: Same as the input parameters of the contract.
Header: The signature of the account performing the transaction (X-SealedTx-Signature)
HTTPMethod: GET, POST, or other HTTP methods as strings.
CanonicalRequestPath: The path part of the URI (e.g., /sealed_tx/personal_info/register).
CanonicalQueryString: Query string sorted by key (e.g., ?amount=123&card=hoge).
Note: If there is no CanonicalQueryString, it is treated as an empty string.
Note: If the RequestBody is empty, keccak256(RequestBody) uses keccak256("{}").
Signature and Authentication Process Overview
Client-Side (Creating the Signature)
Generate a CanonicalRequest using the details of the request to be sent.
Sign the CanonicalRequest using the account's private key.
Set the generated signature in the header (as "X-SealedTx-Signature") and send the request.
Server-Side (Verifying the Signature)
Generate a CanonicalRequest from the received request.
Verify the X-SealedTx-Signature using the CanonicalRequest.
Recover the account address from the signature. If the original request matches the recovered address, proceed with the subsequent processing.
Is your feature request related to a problem? Please describe.
In addition to using the PersonalInfo contract as a protocol for registering investors' personal information, we would also like to support off-chain 'sealed' registration.
Describe the solution you'd like
We would like to support off-chain message transactions similar to those used for issuers, such as the PersonalInfo contract. Specifically, we plan to define a 'SealedTx' API like the example below to accept execution commands from account addresses.
/sealed_tx/personal_info/register
X-SealedTx-Signature
)π "X-SealedTx-Signature" Specifications
HTTPMethod
: GET, POST, or other HTTP methods as strings.CanonicalRequestPath
: The path part of the URI (e.g., /sealed_tx/personal_info/register).CanonicalQueryString
: Query string sorted by key (e.g., ?amount=123&card=hoge).Note: If there is no
CanonicalQueryString
, it is treated as an empty string. Note: If theRequestBody
is empty,keccak256(RequestBody)
useskeccak256("{}")
.Signature and Authentication Process Overview
Client-Side (Creating the Signature)
CanonicalRequest
using the details of the request to be sent.CanonicalRequest
using the account's private key.Server-Side (Verifying the Signature)
CanonicalRequest
from the received request.X-SealedTx-Signature
using theCanonicalRequest
.