diff --git a/examples/wc-dapp-react/src/components/HelloWorld.tsx b/examples/wc-dapp-react/src/components/HelloWorld.tsx index 1bedd68..20fe1f1 100644 --- a/examples/wc-dapp-react/src/components/HelloWorld.tsx +++ b/examples/wc-dapp-react/src/components/HelloWorld.tsx @@ -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 = { 'neo3:mainnet': { @@ -19,7 +19,7 @@ function HelloWorld () { const [networkType, setNetworkType] = React.useState('neo3:testnet') const connect = async (): Promise => { - 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 => { @@ -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: [] } ] }], @@ -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: [] } ] }], @@ -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 @@ -111,7 +111,7 @@ function HelloWorld () { const signAndVerify = async (): Promise => { 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)) @@ -124,7 +124,7 @@ function HelloWorld () { const signWithoutSaltAndVerify = async (): Promise => { 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)) @@ -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); @@ -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
{!wcSdk && Loading...} {wcSdk && (
@@ -211,6 +258,9 @@ function HelloWorld () { + + + }
)} diff --git a/examples/wc-dapp-react/yarn.lock b/examples/wc-dapp-react/yarn.lock index 0e405e0..6990bc7 100644 --- a/examples/wc-dapp-react/yarn.lock +++ b/examples/wc-dapp-react/yarn.lock @@ -1063,16 +1063,6 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@cityofzion/neo3-invoker@1.4.1": - 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/neo3-signer@1.1.0": - 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/neon-core@5.3.0": version "5.3.0" resolved "https://registry.yarnpkg.com/@cityofzion/neon-core/-/neon-core-5.3.0.tgz#ce3bede855e39d8d153b4f9c3a491803603019e3" @@ -1090,25 +1080,28 @@ loglevel-plugin-prefix "0.8.4" scrypt-js "3.0.1" -"@cityofzion/wallet-connect-sdk-core@2.5.3": - 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/neon-dappkit-types@0.0.5": + 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/wallet-connect-sdk-core@2.6.0": + 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" diff --git a/packages/wallet-connect-sdk-core/src/index.ts b/packages/wallet-connect-sdk-core/src/index.ts index 50b826f..1035dc3 100644 --- a/packages/wallet-connect-sdk-core/src/index.ts +++ b/packages/wallet-connect-sdk-core/src/index.ts @@ -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