Skip to content

Commit

Permalink
CU-8678g1znh - nwm: encrypt, decrypt and decryptFromArray WC's methods
Browse files Browse the repository at this point in the history
  • Loading branch information
endkeyCoder committed Sep 20, 2023
1 parent 2469139 commit 9377ac0
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 32 deletions.
66 changes: 58 additions & 8 deletions examples/wc-dapp-react/src/components/HelloWorld.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React from "react";
import {NetworkType, useWalletConnect} from '@cityofzion/wallet-connect-sdk-react'
import { typeChecker } from "@cityofzion/neon-dappkit"
import {NetworkType, useWalletConnect, SignMessageVersion} from '@cityofzion/wallet-connect-sdk-react'

const networks: Record<NetworkType, {name: string}> = {
'neo3:mainnet': {
Expand All @@ -19,7 +19,7 @@ function HelloWorld () {
const [networkType, setNetworkType] = React.useState<NetworkType>('neo3:testnet')

const connect = async (): Promise<void> => {
await wcSdk.connect(networkType, ['invokeFunction', 'testInvoke', 'signMessage','verifyMessage', 'traverseIterator', 'getWalletInfo', 'getNetworkVersion'])
await wcSdk.connect(networkType, ['invokeFunction', 'testInvoke', 'signMessage','verifyMessage', 'traverseIterator', 'getWalletInfo', 'getNetworkVersion', 'decrypt', 'encrypt', 'decryptFromArray'])
}

const disconnect = async (): Promise<void> => {
Expand Down Expand Up @@ -50,7 +50,7 @@ function HelloWorld () {
args: [
{ type: 'Hash160', value: wcSdk.getAccountAddress() ?? '' },
{ type: 'Hash160', value: 'NbnjKGMBJzJ6j5PHeYhjJDaQ5Vy5UYu4Fv' },
{ type: 'Integer', value: '100000000' },
{ type: 'Any', value: 100000000 },
{ type: 'Array', value: [] }
]
}],
Expand All @@ -69,7 +69,7 @@ function HelloWorld () {
args: [
{ type: 'Hash160', value: wcSdk.getAccountAddress() ?? '' },
{ type: 'Hash160', value: 'NbnjKGMBJzJ6j5PHeYhjJDaQ5Vy5UYu4Fv' },
{ type: 'Integer', value: '100000000' },
{ type: 'Any', value: 100000000 },
{ type: 'Array', value: [] }
]
}],
Expand Down Expand Up @@ -97,7 +97,7 @@ function HelloWorld () {
args: [
{ type: 'Hash160', value: wcSdk.getAccountAddress() ?? '' },
{ type: 'Hash160', value: 'NbnjKGMBJzJ6j5PHeYhjJDaQ5Vy5UYu4Fv' },
{ type: 'Integer', value: '100000000' },
{ type: 'Any', value: 100000000 },
{ type: 'Array', value: [] }
],
abortOnFail: true
Expand All @@ -111,7 +111,7 @@ function HelloWorld () {

const signAndVerify = async (): Promise<void> => {
if (!wcSdk) return
const resp = await wcSdk.signMessage({ message: 'Caralho, muleq, o baguiu eh issumermo taix ligado na missão?', version: 2 })
const resp = await wcSdk.signMessage({ message: 'Caralho, muleq, o baguiu eh issumermo taix ligado na missão?', version: SignMessageVersion.DEFAULT })

console.log(resp)
window.alert(JSON.stringify(resp, null, 2))
Expand All @@ -124,7 +124,7 @@ function HelloWorld () {

const signWithoutSaltAndVerify = async (): Promise<void> => {
if (!wcSdk) return
const resp = await wcSdk.signMessage({ message: 'Caralho, muleq, o baguiu eh issumermo taix ligado na missão?', version: 3 })
const resp = await wcSdk.signMessage({ message: 'Caralho, muleq, o baguiu eh issumermo taix ligado na missão?', version: SignMessageVersion.WITHOUT_SALT })

console.log(resp)
window.alert(JSON.stringify(resp, null, 2))
Expand Down Expand Up @@ -174,7 +174,8 @@ function HelloWorld () {
if (!typeChecker.isStackTypeInteropInterface(resp.stack[0])) throw new Error('Invalid response');

const sessionId = resp.session as string;
const iteratorId = resp.stack[0].id;
//@ts-ignore
const iteratorId = resp.stack[0].id as string;

const resp2 = await wcSdk.traverseIterator(sessionId, iteratorId, 10);

Expand All @@ -189,6 +190,52 @@ function HelloWorld () {
window.alert(JSON.stringify(resp, null, 2))
}

/**
* Account WIF used in encrypt, decrypt and decryptFromArray
* KxF6YMo7JojuEWsPFRhMR5zT8nkwyVMUs1d2ZX3QrRBr1SzLcdi7
*/

const encrypt = async () => {
const message = "Caralho, muleq, o baguiu eh issumermo taix ligado na missão?"
const publicKeys = ["02dd8169fb780a9cc01d785efc96888f99c39ab671c039acad8f1f646b9f944a0e"]
const resp = await wcSdk.encrypt(message, publicKeys)
console.log(resp)
window.alert(JSON.stringify(resp, null, 2))
}

const decrypt = async () => {
try {
const payload = {
"cipherText": "fcb01b8b9be61a195f7d5cc09e96f341866b2d4cb2e548146f83a7f7f2d6972424d946def236dc9ca8297c994d58f84dfba9d89325049a55dca64e69e8907922",
"dataTag": "f43335d550f081d345084ea0f9d1207119f93996b4e0cfd6204e0ddccbebeac3",
"ephemPublicKey": "0278bcb970272910a0bbe69061a435586428e87363018bd0616b3ffebd66774ba9",
"randomVector": "1bd2a7e1305a02e3d89dbd277d6272e5",
}
const resp2 = await wcSdk.decrypt(payload)
console.log({ resp2 })
window.alert(JSON.stringify(resp2, null, 2))
} catch (error) {
//@ts-ignore
window.alert(error.message)
}
}

const decryptFromArray = async () => {
try {
const payload = {
"cipherText": "fcb01b8b9be61a195f7d5cc09e96f341866b2d4cb2e548146f83a7f7f2d6972424d946def236dc9ca8297c994d58f84dfba9d89325049a55dca64e69e8907922",
"dataTag": "f43335d550f081d345084ea0f9d1207119f93996b4e0cfd6204e0ddccbebeac3",
"ephemPublicKey": "0278bcb970272910a0bbe69061a435586428e87363018bd0616b3ffebd66774ba9",
"randomVector": "1bd2a7e1305a02e3d89dbd277d6272e5",
}
const resp2 = await wcSdk.decryptFromArray([payload])
console.log(resp2)
window.alert(JSON.stringify(resp2, null, 2))
} catch (error) {
console.log(error)
}
}

return <div>
{!wcSdk && <span>Loading...</span>}
{wcSdk && (<div>
Expand All @@ -211,6 +258,9 @@ function HelloWorld () {
<button onClick={verify}>Verify Success</button>
<button onClick={traverseIterator}>Traverse Iterator</button>
<button onClick={getWalletInfo}>Get Wallet Info</button>
<button onClick={encrypt}>encrypt</button>
<button onClick={decrypt}>decrypt</button>
<button onClick={decryptFromArray}>decrypt from array</button>
</>}

</div>)}
Expand Down
39 changes: 16 additions & 23 deletions examples/wc-dapp-react/yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1063,16 +1063,6 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==

"@cityofzion/[email protected]":
version "1.4.1"
resolved "https://registry.yarnpkg.com/@cityofzion/neo3-invoker/-/neo3-invoker-1.4.1.tgz#70b617dd73574682f6e3f0b775ab8df2120e49e1"
integrity sha512-2BNSQRydNuGZi7wam/kdvCoTw8m3wq1zbC6QBkkS9maRO/gliLEgDj0hjBazaP+slqtwR8DMdQsgbonJ9oIYEA==

"@cityofzion/[email protected]":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@cityofzion/neo3-signer/-/neo3-signer-1.1.0.tgz#3fa81977e1778b6acc863c85788a0525ecc4c21a"
integrity sha512-mUJNF5gOuX1aGdbuOwZ+nke03y2GavzYwnti8dr8kzm6lNbn5npLsy4vSHxfgS+gt+TYEeZTtnlf87QkjkEiNQ==

"@cityofzion/[email protected]":
version "5.3.0"
resolved "https://registry.yarnpkg.com/@cityofzion/neon-core/-/neon-core-5.3.0.tgz#ce3bede855e39d8d153b4f9c3a491803603019e3"
Expand All @@ -1090,25 +1080,28 @@
loglevel-plugin-prefix "0.8.4"
scrypt-js "3.0.1"

"@cityofzion/[email protected]":
version "2.5.3"
resolved "https://registry.yarnpkg.com/@cityofzion/wallet-connect-sdk-core/-/wallet-connect-sdk-core-2.5.3.tgz#ffa017c57fc939e05c53b5896e2ca842d89b06e2"
integrity sha512-CDMgGQe6aCbDt1brN3KEgvvJquAHJOhVrJcTUfrEkNp2S48xpyTYfskBK+5L1Z/iM/sxuY92qTjnnqxXUmaByw==
"@cityofzion/[email protected]":
version "0.0.5"
resolved "https://registry.yarnpkg.com/@cityofzion/neon-dappkit-types/-/neon-dappkit-types-0.0.5.tgz#97abeacf09971bc318e864871549f5a00545bc09"
integrity sha512-SRjmfzgI1aNhXdKby4gRrJBveFeSAdttSaLwNfQ/Xq19VwM2NOf2NATg7wDrtTY4sQLKwCyPjPaAePZwKLP8Xw==

"@cityofzion/[email protected]":
version "2.6.0"
resolved "https://registry.yarnpkg.com/@cityofzion/wallet-connect-sdk-core/-/wallet-connect-sdk-core-2.6.0.tgz#4f8e6fc4f2599cc30d92521194bce616dfc3b44d"
integrity sha512-CJn9kK3ILEbSg4qh7RdJVV1PWgM2v7BquSREkQfD+YFsUkdsHMeJzuPzrrC93q+hTlNKSwOpdVDLhlKs92fvoA==
dependencies:
"@cityofzion/neo3-invoker" "1.4.1"
"@cityofzion/neo3-signer" "1.1.0"
"@cityofzion/neon-core" "5.3.0"
"@cityofzion/neon-dappkit-types" "0.0.5"
"@walletconnect/sign-client" "2.0.0-rc.3"
"@walletconnect/types" "2.0.0-rc.3"

"@cityofzion/wallet-connect-sdk-react@^2.5.3":
version "2.5.3"
resolved "https://registry.yarnpkg.com/@cityofzion/wallet-connect-sdk-react/-/wallet-connect-sdk-react-2.5.3.tgz#dc4b1d2e062b9a362d240e4ed0200bd86b8a9b13"
integrity sha512-TOlXBtMDgn7aphCePqVzB47l8YrtT3lnJ/veZRmAVijhvlrEhkU1oxi55hIshfuDu3c7rZ8coL79X1Jf9bmVLA==
"@cityofzion/wallet-connect-sdk-react@2.6.0":
version "2.6.0"
resolved "https://registry.yarnpkg.com/@cityofzion/wallet-connect-sdk-react/-/wallet-connect-sdk-react-2.6.0.tgz#e871933a711f0ccf55f1c7a5ee97b163508d34ae"
integrity sha512-6oKmjtKZiqFeM1F7ckc+FtvN2pu4qjZeyKQlKg4Han2/oP3dL+xByyb8M/LQQdNV+pf0WnAHcxamOLntKrtlBw==
dependencies:
"@cityofzion/neo3-invoker" "1.4.1"
"@cityofzion/neo3-signer" "1.1.0"
"@cityofzion/wallet-connect-sdk-core" "2.5.3"
"@cityofzion/neon-dappkit-types" "0.0.5"
"@cityofzion/wallet-connect-sdk-core" "2.6.0"
"@walletconnect/sign-client" "2.0.0-rc.3"
"@walletconnect/types" "2.0.0-rc.3"

Expand Down
2 changes: 1 addition & 1 deletion packages/wallet-connect-sdk-core/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export type Chain = "private" | "testnet" | "mainnet"

export type NetworkType = `${Blockchain}:${Chain}`

export type Method = 'invokeFunction' | 'testInvoke' | 'signMessage' | 'verifyMessage' | 'traverseIterator' | 'getWalletInfo' | "getNetworkVersion"
export type Method = 'invokeFunction' | 'testInvoke' | 'signMessage' | 'verifyMessage' | 'traverseIterator' | 'getWalletInfo' | "getNetworkVersion" | "encrypt" | "decrypt" | "decryptFromArray"

/**
* A number that will be compared by the wallet to check if it is compatible with the dApp
Expand Down

0 comments on commit 9377ac0

Please sign in to comment.