Top Level Namespace

Defined Under Namespace

Modules: Siwe

Constant Summary collapse

SIWE_DOMAIN =
"^(?<domain>([^?#]*)) wants you to sign in with your Ethereum account:\\n"
SIWE_ADDRESS =
"(?<address>0x[a-zA-Z0-9]{40})\\n\\n"
SIWE_STATEMENT =
"((?<statement>[^\\n]+)\\n)?\\n"
SIWE_URI =
"(([^:?#]+):)?(([^?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))"
SIWE_URI_LINE =
"URI: (?<uri>#{SIWE_URI}?)\\n"
SIWE_VERSION =
"Version: (?<version>1)\\n"
SIWE_CHAIN_ID =
"Chain ID: (?<chain_id>[0-9]+)\\n"
SIWE_NONCE =
"Nonce: (?<nonce>[a-zA-Z0-9]{8,})\\n"
SIWE_DATETIME =
"([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])[Tt]([01][0-9]|2[0-3]):([0-5][0-9])"\
":([0-5][0-9]|60)(\.[0-9]+)?(([Zz])|([\+|\-]([01][0-9]|2[0-3]):[0-5][0-9]))"
SIWE_ISSUED_AT =
"Issued At: (?<issued_at>#{SIWE_DATETIME})"
SIWE_EXPIRATION_TIME =
"(\\nExpiration Time: (?<expiration_time>#{SIWE_DATETIME}))?"
SIWE_NOT_BEFORE =
"(\\nNot Before: (?<not_before>#{SIWE_DATETIME}))?"
SIWE_REQUEST_ID =
"(\\nRequest ID: (?<request_id>[-._~!$&'()*+,;=:@%a-zA-Z0-9]*))?"
SIWE_RESOURCES =
"(\\nResources:(?<resources>(\\n- #{SIWE_URI}?)+))?$"
SIWE_MESSAGE =
"#{SIWE_DOMAIN}#{SIWE_ADDRESS}#{SIWE_STATEMENT}#{SIWE_URI_LINE}#{SIWE_VERSION}#{SIWE_CHAIN_ID}"\
"#{SIWE_NONCE}#{SIWE_ISSUED_AT}#{SIWE_EXPIRATION_TIME}#{SIWE_NOT_BEFORE}#{SIWE_REQUEST_ID}"\
"#{SIWE_RESOURCES}"