From 23100d9a2abd832df8331564ddefcafec26e5c17 Mon Sep 17 00:00:00 2001 From: EmberSpirit Date: Mon, 14 Aug 2023 18:37:11 +0200 Subject: [PATCH] stakemenu --- public/assets/img/token/bloodline.png | Bin 0 -> 12347 bytes src/components/StakeMenu.vue | 91 ++++++++++++++++++++++++++ src/components/TokenInput.vue | 53 +++++++++++++++ src/components/TokenLogo.vue | 24 +++++++ src/helper/blockchain.js | 72 ++++++++++++++++++++ 5 files changed, 240 insertions(+) create mode 100644 public/assets/img/token/bloodline.png create mode 100644 src/components/StakeMenu.vue create mode 100644 src/components/TokenInput.vue create mode 100644 src/components/TokenLogo.vue create mode 100644 src/helper/blockchain.js diff --git a/public/assets/img/token/bloodline.png b/public/assets/img/token/bloodline.png new file mode 100644 index 0000000000000000000000000000000000000000..ab604367614a30b69de30d50031cd80944920c51 GIT binary patch literal 12347 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 literal 0 HcmV?d00001 diff --git a/src/components/StakeMenu.vue b/src/components/StakeMenu.vue new file mode 100644 index 0000000..454f31a --- /dev/null +++ b/src/components/StakeMenu.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/components/TokenInput.vue b/src/components/TokenInput.vue new file mode 100644 index 0000000..f3d2937 --- /dev/null +++ b/src/components/TokenInput.vue @@ -0,0 +1,53 @@ + + + + + diff --git a/src/components/TokenLogo.vue b/src/components/TokenLogo.vue new file mode 100644 index 0000000..667781d --- /dev/null +++ b/src/components/TokenLogo.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/src/helper/blockchain.js b/src/helper/blockchain.js new file mode 100644 index 0000000..c35f940 --- /dev/null +++ b/src/helper/blockchain.js @@ -0,0 +1,72 @@ +import { useTokenStore } from "@/stores/tokens"; + +export function createPermitObject(fromAddress, spender, nonce, deadline, value) { + const tokenStore = useTokenStore(); + + const message = { + owner: fromAddress, + spender: spender, + nonce: nonce, + deadline: deadline, + value: value, + }; + + const domainType = [ + { name: "name", type: "string" }, + { name: "version", type: "string" }, + { name: "chainId", type: "uint256" }, + { name: "verifyingContract", type: "address" }, + ]; + + + const primaryType = "Permit"; + + const types = { + EIP712Domain: domainType, + Permit: [ + { + name: "owner", + type: "address", + }, + { + name: "spender", + type: "address", + }, + { + name: "value", + type: "uint256", + }, + { + name: "nonce", + type: "uint256", + }, + { + name: "deadline", + type: "uint256", + }, + ], + } + + const domain = { + name: "Bloodline", + version: "1", + chainId: 5, + verifyingContract: tokenStore.memeToken.contractAddress, + }; + + return { + types, + message, + domain, + primaryType, + }; +} + +export function getSignatureRSV(sig) { + // splits the signature to r, s, and v values. + // const pureSig = sig.replace("0x", ""); + const r = sig.slice(0, 66); + const s = "0x" + sig.slice(66, 130); + const v = Number("0x" + sig.slice(130, 132)); + return { v, r, s }; +};