diff --git a/public/assets/img/token/bloodline.png b/public/assets/img/token/bloodline.png new file mode 100644 index 0000000..ab60436 Binary files /dev/null and b/public/assets/img/token/bloodline.png differ 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 @@ + + + + + 25% + 50% + 75% + 100% + + + Balance: {{ walletStore.memeToken.balanceOf }} + Stake + Unstake + Cancel + + + + + + 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 }; +};