From 22fd228510e83d752471850a06ec0d843487a26a Mon Sep 17 00:00:00 2001 From: Josh Scanlan <75971516+joshuascan@users.noreply.github.com> Date: Tue, 21 Jan 2025 10:42:41 -0800 Subject: [PATCH 1/2] chore: adds kadena packages --- packages/@magic-ext/kadena/package.json | 4 + yarn.lock | 381 ++++++++++++++++++++---- 2 files changed, 327 insertions(+), 58 deletions(-) diff --git a/packages/@magic-ext/kadena/package.json b/packages/@magic-ext/kadena/package.json index 1d08f4db..b085aba2 100644 --- a/packages/@magic-ext/kadena/package.json +++ b/packages/@magic-ext/kadena/package.json @@ -29,5 +29,9 @@ }, "devDependencies": { "@magic-sdk/commons": "^24.20.0" + }, + "dependencies": { + "@kadena/client": "^1.16.0", + "@kadena/spirekey-sdk": "^1.0.0" } } diff --git a/yarn.lock b/yarn.lock index 958c455b..e1306de8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1167,6 +1167,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.12.5": + version: 7.26.0 + resolution: "@babel/runtime@npm:7.26.0" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: c8e2c0504ab271b3467a261a8f119bf2603eb857a0d71e37791f4e3fae00f681365073cc79f141ddaa90c6077c60ba56448004ad5429d07ac73532be9f7cf28a + languageName: node + linkType: hard + "@babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.22.6": version: 7.23.2 resolution: "@babel/runtime@npm:7.23.2" @@ -1276,6 +1285,13 @@ __metadata: languageName: node linkType: hard +"@emotion/hash@npm:^0.9.0": + version: 0.9.2 + resolution: "@emotion/hash@npm:0.9.2" + checksum: 379bde2830ccb0328c2617ec009642321c0e009a46aa383dfbe75b679c6aea977ca698c832d225a893901f29d7b3eef0e38cf341f560f6b2b56f1ff23c172387 + languageName: node + linkType: hard + "@endemolshinegroup/cosmiconfig-typescript-loader@npm:^3.0.2": version: 3.0.2 resolution: "@endemolshinegroup/cosmiconfig-typescript-loader@npm:3.0.2" @@ -2306,6 +2322,61 @@ __metadata: languageName: node linkType: hard +"@kadena/chainweb-node-client@npm:0.8.0": + version: 0.8.0 + resolution: "@kadena/chainweb-node-client@npm:0.8.0" + dependencies: + "@kadena/cryptography-utils": 0.4.4 + "@kadena/pactjs": 0.4.3 + cross-fetch: ~3.1.5 + checksum: 068fd9fba0bb460610eb69e350432cfaca48d13c0503f615968423511e6b37f2bee01e606a0da44ee5ad6fc0f4669bdaa6fb59bc875526e6ee9d0513ae5926ba + languageName: node + linkType: hard + +"@kadena/client@npm:^1.12.0, @kadena/client@npm:^1.16.0": + version: 1.16.0 + resolution: "@kadena/client@npm:1.16.0" + dependencies: + "@kadena/chainweb-node-client": 0.8.0 + "@kadena/cryptography-utils": 0.4.4 + "@kadena/pactjs": 0.4.3 + "@walletconnect/sign-client": ~2.8.1 + cross-fetch: ~3.1.5 + debug: 4.3.4 + checksum: febe2853df0bea50254f0144089c6a6ca7c91a237357048941dd5ee85e55c05ca3f9e9922e706a04cd17d105bcaf868335b474b06f3c6e27c8e204e3707d8c4c + languageName: node + linkType: hard + +"@kadena/cryptography-utils@npm:0.4.4": + version: 0.4.4 + resolution: "@kadena/cryptography-utils@npm:0.4.4" + dependencies: + blakejs: ^1.2.1 + buffer: 6.0.3 + tweetnacl: ^1.0.3 + checksum: 89b259bfda654bb9fb28369e8874c3c89d6fd367027a7281f4b42c8274d94bc07859cd5c6a4cdd2bd6bf749aa4639cdd9a5b3d0739ba8a7749b66666ee5ad443 + languageName: node + linkType: hard + +"@kadena/pactjs@npm:0.4.3": + version: 0.4.3 + resolution: "@kadena/pactjs@npm:0.4.3" + dependencies: + bignumber.js: ^9.1.2 + checksum: 5d090deb83ea907fa1fd28b3959a828dffeb131aca35f809ccd370da436edb9b2ab100cb1359366d597f78176d287bc97edd1940c2a8fe192f4ad001097a881d + languageName: node + linkType: hard + +"@kadena/spirekey-sdk@npm:^1.0.0": + version: 1.0.0 + resolution: "@kadena/spirekey-sdk@npm:1.0.0" + dependencies: + "@kadena/client": ^1.12.0 + "@vanilla-extract/css": ^1.15.3 + checksum: 98e50a0d4cb06c5fd65fdc56c97e1166f4d57ba0041906071470112a2f181921f408ee393486a536df0d0fb9a147bc4c1dd2c76d7d70d9dd7887c7028c985645 + languageName: node + linkType: hard + "@lerna/create@npm:8.0.2": version: 8.0.2 resolution: "@lerna/create@npm:8.0.2" @@ -2407,7 +2478,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/algorand@workspace:packages/@magic-ext/algorand" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2416,8 +2487,8 @@ __metadata: resolution: "@magic-ext/aptos@workspace:packages/@magic-ext/aptos" dependencies: "@aptos-labs/wallet-adapter-core": ^2.2.0 - "@magic-sdk/commons": ^24.19.0 - "@magic-sdk/provider": ^28.19.0 + "@magic-sdk/commons": ^24.20.0 + "@magic-sdk/provider": ^28.20.0 aptos: ^1.8.5 peerDependencies: "@aptos-labs/wallet-adapter-core": ^2.2.0 @@ -2429,7 +2500,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/avalanche@workspace:packages/@magic-ext/avalanche" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2437,7 +2508,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/bitcoin@workspace:packages/@magic-ext/bitcoin" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2445,7 +2516,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/conflux@workspace:packages/@magic-ext/conflux" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2453,7 +2524,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/cosmos@workspace:packages/@magic-ext/cosmos" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2461,7 +2532,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/ed25519@workspace:packages/@magic-ext/ed25519" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2469,7 +2540,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/farcaster@workspace:packages/@magic-ext/farcaster" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2477,7 +2548,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/flow@workspace:packages/@magic-ext/flow" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 "@onflow/fcl": ^1.4.1 "@onflow/types": ^1.1.0 peerDependencies: @@ -2490,8 +2561,8 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/gdkms@workspace:packages/@magic-ext/gdkms" dependencies: - "@magic-sdk/commons": ^24.19.0 - "@magic-sdk/types": ^24.17.0 + "@magic-sdk/commons": ^24.20.0 + "@magic-sdk/types": ^24.18.0 "@peculiar/webcrypto": ^1.4.3 languageName: unknown linkType: soft @@ -2500,7 +2571,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/harmony@workspace:packages/@magic-ext/harmony" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2518,7 +2589,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/icon@workspace:packages/@magic-ext/icon" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2526,7 +2597,9 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/kadena@workspace:packages/@magic-ext/kadena" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@kadena/client": ^1.16.0 + "@kadena/spirekey-sdk": ^1.0.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2534,7 +2607,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/near@workspace:packages/@magic-ext/near" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2542,17 +2615,17 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/oauth2@workspace:packages/@magic-ext/oauth2" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 "@types/crypto-js": ~3.1.47 crypto-js: ^3.3.0 languageName: unknown linkType: soft -"@magic-ext/oauth@^22.19.0, @magic-ext/oauth@workspace:packages/@magic-ext/oauth": +"@magic-ext/oauth@^22.20.0, @magic-ext/oauth@workspace:packages/@magic-ext/oauth": version: 0.0.0-use.local resolution: "@magic-ext/oauth@workspace:packages/@magic-ext/oauth" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 "@types/crypto-js": ~3.1.47 crypto-js: ^3.3.0 languageName: unknown @@ -2562,7 +2635,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/oidc@workspace:packages/@magic-ext/oidc" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2570,7 +2643,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/polkadot@workspace:packages/@magic-ext/polkadot" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2578,8 +2651,8 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/react-native-bare-oauth@workspace:packages/@magic-ext/react-native-bare-oauth" dependencies: - "@magic-sdk/react-native-bare": ^29.20.0 - "@magic-sdk/types": ^24.17.0 + "@magic-sdk/react-native-bare": ^29.21.0 + "@magic-sdk/types": ^24.18.0 "@types/crypto-js": ~3.1.47 crypto-js: ^3.3.0 react-native-device-info: ^10.3.0 @@ -2594,7 +2667,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/react-native-expo-oauth@workspace:packages/@magic-ext/react-native-expo-oauth" dependencies: - "@magic-sdk/react-native-expo": ^29.20.0 + "@magic-sdk/react-native-expo": ^29.21.0 "@magic-sdk/types": ^10.0.0 "@types/crypto-js": ~3.1.47 crypto-js: ^3.3.0 @@ -2609,7 +2682,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/solana@workspace:packages/@magic-ext/solana" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 "@solana/web3.js": ^1.87.2 peerDependencies: "@solana/web3.js": ^1.87.2 @@ -2620,7 +2693,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/sui@workspace:packages/@magic-ext/sui" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2628,7 +2701,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/taquito@workspace:packages/@magic-ext/taquito" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2636,7 +2709,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/terra@workspace:packages/@magic-ext/terra" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2644,7 +2717,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/tezos@workspace:packages/@magic-ext/tezos" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2652,7 +2725,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/web3modal-ethers5@workspace:packages/@magic-ext/web3modal-ethers5" dependencies: - "@magic-sdk/commons": ^24.0.2 + "@magic-sdk/commons": ^24.20.0 "@magic-sdk/types": 24.0.6-canary.742.10067162636.0 "@web3modal/ethers5": 5.0.3 ethers: 5.7.2 @@ -2663,7 +2736,7 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/webauthn@workspace:packages/@magic-ext/webauthn" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft @@ -2671,16 +2744,16 @@ __metadata: version: 0.0.0-use.local resolution: "@magic-ext/zilliqa@workspace:packages/@magic-ext/zilliqa" dependencies: - "@magic-sdk/commons": ^24.19.0 + "@magic-sdk/commons": ^24.20.0 languageName: unknown linkType: soft -"@magic-sdk/commons@^24.0.2, @magic-sdk/commons@^24.19.0, @magic-sdk/commons@workspace:packages/@magic-sdk/commons": +"@magic-sdk/commons@^24.20.0, @magic-sdk/commons@workspace:packages/@magic-sdk/commons": version: 0.0.0-use.local resolution: "@magic-sdk/commons@workspace:packages/@magic-sdk/commons" dependencies: - "@magic-sdk/provider": ^28.19.0 - "@magic-sdk/types": ^24.17.0 + "@magic-sdk/provider": ^28.20.0 + "@magic-sdk/types": ^24.18.0 peerDependencies: "@magic-sdk/provider": ">=18.6.0" "@magic-sdk/types": ">=15.8.0" @@ -2704,17 +2777,17 @@ __metadata: "@babel/core": ^7.9.6 "@babel/plugin-proposal-optional-chaining": ^7.9.0 "@babel/runtime": ^7.9.6 - "@magic-ext/oauth": ^22.19.0 - magic-sdk: ^28.20.0 + "@magic-ext/oauth": ^22.20.0 + magic-sdk: ^28.21.0 languageName: unknown linkType: soft -"@magic-sdk/provider@^28.19.0, @magic-sdk/provider@workspace:packages/@magic-sdk/provider": +"@magic-sdk/provider@^28.20.0, @magic-sdk/provider@workspace:packages/@magic-sdk/provider": version: 0.0.0-use.local resolution: "@magic-sdk/provider@workspace:packages/@magic-sdk/provider" dependencies: "@babel/plugin-transform-modules-commonjs": ^7.9.6 - "@magic-sdk/types": ^24.17.0 + "@magic-sdk/types": ^24.18.0 "@peculiar/webcrypto": ^1.1.7 eventemitter3: ^4.0.4 localforage: ^1.7.4 @@ -2726,7 +2799,7 @@ __metadata: languageName: unknown linkType: soft -"@magic-sdk/react-native-bare@^29.20.0, @magic-sdk/react-native-bare@workspace:packages/@magic-sdk/react-native-bare": +"@magic-sdk/react-native-bare@^29.21.0, @magic-sdk/react-native-bare@workspace:packages/@magic-sdk/react-native-bare": version: 0.0.0-use.local resolution: "@magic-sdk/react-native-bare@workspace:packages/@magic-sdk/react-native-bare" dependencies: @@ -2734,9 +2807,9 @@ __metadata: "@babel/core": ^7.15.0 "@babel/plugin-transform-flow-strip-types": ^7.14.5 "@babel/runtime": ~7.10.4 - "@magic-sdk/commons": ^24.19.0 - "@magic-sdk/provider": ^28.19.0 - "@magic-sdk/types": ^24.17.0 + "@magic-sdk/commons": ^24.20.0 + "@magic-sdk/provider": ^28.20.0 + "@magic-sdk/types": ^24.18.0 "@react-native-async-storage/async-storage": ^1.15.5 "@react-native-community/netinfo": ">11.0.0" "@testing-library/react-native": ^12.4.0 @@ -2767,7 +2840,7 @@ __metadata: languageName: unknown linkType: soft -"@magic-sdk/react-native-expo@^29.20.0, @magic-sdk/react-native-expo@workspace:packages/@magic-sdk/react-native-expo": +"@magic-sdk/react-native-expo@^29.21.0, @magic-sdk/react-native-expo@workspace:packages/@magic-sdk/react-native-expo": version: 0.0.0-use.local resolution: "@magic-sdk/react-native-expo@workspace:packages/@magic-sdk/react-native-expo" dependencies: @@ -2775,9 +2848,9 @@ __metadata: "@babel/core": ^7.15.0 "@babel/plugin-transform-flow-strip-types": ^7.14.5 "@babel/runtime": ~7.10.4 - "@magic-sdk/commons": ^24.19.0 - "@magic-sdk/provider": ^28.19.0 - "@magic-sdk/types": ^24.17.0 + "@magic-sdk/commons": ^24.20.0 + "@magic-sdk/provider": ^28.20.0 + "@magic-sdk/types": ^24.18.0 "@react-native-async-storage/async-storage": ^1.15.5 "@react-native-community/netinfo": ">11.0.0" "@testing-library/react-native": ^12.4.0 @@ -2808,7 +2881,7 @@ __metadata: languageName: unknown linkType: soft -"@magic-sdk/types@^24.17.0, @magic-sdk/types@workspace:packages/@magic-sdk/types": +"@magic-sdk/types@^24.18.0, @magic-sdk/types@workspace:packages/@magic-sdk/types": version: 0.0.0-use.local resolution: "@magic-sdk/types@workspace:packages/@magic-sdk/types" languageName: unknown @@ -5083,6 +5156,33 @@ __metadata: languageName: node linkType: hard +"@vanilla-extract/css@npm:^1.15.3": + version: 1.17.0 + resolution: "@vanilla-extract/css@npm:1.17.0" + dependencies: + "@emotion/hash": ^0.9.0 + "@vanilla-extract/private": ^1.0.6 + css-what: ^6.1.0 + cssesc: ^3.0.0 + csstype: ^3.0.7 + dedent: ^1.5.3 + deep-object-diff: ^1.1.9 + deepmerge: ^4.2.2 + lru-cache: ^10.4.3 + media-query-parser: ^2.0.2 + modern-ahocorasick: ^1.0.0 + picocolors: ^1.0.0 + checksum: 7f2c59b37b2bcb6f64a4213cf9389a51269d6ac6dc7fa5982e434c987b3674cad3fa374dcb570786e7d3fe002a3a1e600933757d38772e2d880a568c7170f1c9 + languageName: node + linkType: hard + +"@vanilla-extract/private@npm:^1.0.6": + version: 1.0.6 + resolution: "@vanilla-extract/private@npm:1.0.6" + checksum: 2265b02af29d8cd40f6ddeeed197fb2df1a7695f5a9821d5e3597677179be8b83bcd8fe4df4a6178544f89123d745a3c6a13599d4fe4e5873b065a8ad329f690 + languageName: node + linkType: hard + "@walletconnect/core@npm:2.13.0": version: 2.13.0 resolution: "@walletconnect/core@npm:2.13.0" @@ -5108,6 +5208,30 @@ __metadata: languageName: node linkType: hard +"@walletconnect/core@npm:2.8.6": + version: 2.8.6 + resolution: "@walletconnect/core@npm:2.8.6" + dependencies: + "@walletconnect/heartbeat": 1.2.1 + "@walletconnect/jsonrpc-provider": 1.0.13 + "@walletconnect/jsonrpc-types": 1.0.3 + "@walletconnect/jsonrpc-utils": 1.0.8 + "@walletconnect/jsonrpc-ws-connection": ^1.0.11 + "@walletconnect/keyvaluestorage": ^1.0.2 + "@walletconnect/logger": ^2.0.1 + "@walletconnect/relay-api": ^1.0.9 + "@walletconnect/relay-auth": ^1.0.4 + "@walletconnect/safe-json": ^1.0.2 + "@walletconnect/time": ^1.0.2 + "@walletconnect/types": 2.8.6 + "@walletconnect/utils": 2.8.6 + events: ^3.3.0 + lodash.isequal: 4.5.0 + uint8arrays: ^3.1.0 + checksum: dbb2a18de5b4e8162516fbb0db1272ebf898aca66ca8cad3003d36f077ef8cac3dff3731d0a25b1352586e66418770747c49ea9f8e70ffd924ee1a0177c14439 + languageName: node + linkType: hard + "@walletconnect/environment@npm:^1.0.1": version: 1.0.1 resolution: "@walletconnect/environment@npm:1.0.1" @@ -5179,6 +5303,17 @@ __metadata: languageName: node linkType: hard +"@walletconnect/jsonrpc-provider@npm:1.0.13": + version: 1.0.13 + resolution: "@walletconnect/jsonrpc-provider@npm:1.0.13" + dependencies: + "@walletconnect/jsonrpc-utils": ^1.0.8 + "@walletconnect/safe-json": ^1.0.2 + tslib: 1.14.1 + checksum: 497dfdd9f988432f171bc98336f3583c679059f0a166f95d6e51c8e1937c17abd9a5fd3aadfcebf6964bae14edd1e05fb0453e370d6e3bbc7ff4919fcad7c478 + languageName: node + linkType: hard + "@walletconnect/jsonrpc-provider@npm:1.0.14": version: 1.0.14 resolution: "@walletconnect/jsonrpc-provider@npm:1.0.14" @@ -5233,7 +5368,19 @@ __metadata: languageName: node linkType: hard -"@walletconnect/keyvaluestorage@npm:1.1.1, @walletconnect/keyvaluestorage@npm:^1.1.1": +"@walletconnect/jsonrpc-ws-connection@npm:^1.0.11": + version: 1.0.16 + resolution: "@walletconnect/jsonrpc-ws-connection@npm:1.0.16" + dependencies: + "@walletconnect/jsonrpc-utils": ^1.0.6 + "@walletconnect/safe-json": ^1.0.2 + events: ^3.3.0 + ws: ^7.5.1 + checksum: 8d1b551d69f8a5b27894d2b37cfd28d407634a95acc920db127daa4a20999676780ce157ba44614e3c048acfe8adc494592bd49f314c1601e6daf60e2bbae385 + languageName: node + linkType: hard + +"@walletconnect/keyvaluestorage@npm:1.1.1, @walletconnect/keyvaluestorage@npm:^1.0.2, @walletconnect/keyvaluestorage@npm:^1.1.1": version: 1.1.1 resolution: "@walletconnect/keyvaluestorage@npm:1.1.1" dependencies: @@ -5299,7 +5446,7 @@ __metadata: languageName: node linkType: hard -"@walletconnect/relay-auth@npm:1.0.4": +"@walletconnect/relay-auth@npm:1.0.4, @walletconnect/relay-auth@npm:^1.0.4": version: 1.0.4 resolution: "@walletconnect/relay-auth@npm:1.0.4" dependencies: @@ -5339,6 +5486,23 @@ __metadata: languageName: node linkType: hard +"@walletconnect/sign-client@npm:~2.8.1": + version: 2.8.6 + resolution: "@walletconnect/sign-client@npm:2.8.6" + dependencies: + "@walletconnect/core": 2.8.6 + "@walletconnect/events": ^1.0.1 + "@walletconnect/heartbeat": 1.2.1 + "@walletconnect/jsonrpc-utils": 1.0.8 + "@walletconnect/logger": ^2.0.1 + "@walletconnect/time": ^1.0.2 + "@walletconnect/types": 2.8.6 + "@walletconnect/utils": 2.8.6 + events: ^3.3.0 + checksum: 0595bd5beb0474f350d88306f68808d0542097b440714a622ca0663339586f14d1b2057fd101435de83875344f6d2579ed94e0480a1457f06a689ded6a184ce1 + languageName: node + linkType: hard + "@walletconnect/time@npm:1.0.2, @walletconnect/time@npm:^1.0.2": version: 1.0.2 resolution: "@walletconnect/time@npm:1.0.2" @@ -5376,6 +5540,20 @@ __metadata: languageName: node linkType: hard +"@walletconnect/types@npm:2.8.6": + version: 2.8.6 + resolution: "@walletconnect/types@npm:2.8.6" + dependencies: + "@walletconnect/events": ^1.0.1 + "@walletconnect/heartbeat": 1.2.1 + "@walletconnect/jsonrpc-types": 1.0.3 + "@walletconnect/keyvaluestorage": ^1.0.2 + "@walletconnect/logger": ^2.0.1 + events: ^3.3.0 + checksum: e744b55a7a6e92a46b534176bcc047a5c7d04a7b8d10b46bb52350f65afbb575c21b9c33e42f27b428d14e5eb245682a4af7126a25167e576490d15021e88de8 + languageName: node + linkType: hard + "@walletconnect/universal-provider@npm:2.13.0": version: 2.13.0 resolution: "@walletconnect/universal-provider@npm:2.13.0" @@ -5437,6 +5615,28 @@ __metadata: languageName: node linkType: hard +"@walletconnect/utils@npm:2.8.6": + version: 2.8.6 + resolution: "@walletconnect/utils@npm:2.8.6" + dependencies: + "@stablelib/chacha20poly1305": 1.0.1 + "@stablelib/hkdf": 1.0.1 + "@stablelib/random": ^1.0.2 + "@stablelib/sha256": 1.0.1 + "@stablelib/x25519": ^1.0.3 + "@walletconnect/relay-api": ^1.0.9 + "@walletconnect/safe-json": ^1.0.2 + "@walletconnect/time": ^1.0.2 + "@walletconnect/types": 2.8.6 + "@walletconnect/window-getters": ^1.0.1 + "@walletconnect/window-metadata": ^1.0.1 + detect-browser: 5.3.0 + query-string: 7.1.3 + uint8arrays: ^3.1.0 + checksum: b35555def95c45605dbd8ae09f933a49d9ad1f71b6f66332792a7eb3b22090bfffd7c4cc7c61eb9d285dcf4d750cb06cee6daee2f94f29fe044902b44de9aa12 + languageName: node + linkType: hard + "@walletconnect/window-getters@npm:1.0.1, @walletconnect/window-getters@npm:^1.0.1": version: 1.0.1 resolution: "@walletconnect/window-getters@npm:1.0.1" @@ -6841,7 +7041,7 @@ __metadata: languageName: node linkType: hard -"bignumber.js@npm:9.1.2": +"bignumber.js@npm:9.1.2, bignumber.js@npm:^9.1.2": version: 9.1.2 resolution: "bignumber.js@npm:9.1.2" checksum: 582c03af77ec9cb0ebd682a373ee6c66475db94a4325f92299621d544aa4bd45cb45fd60001610e94aef8ae98a0905fa538241d9638d4422d57abbeeac6fadaf @@ -6889,7 +7089,7 @@ __metadata: languageName: node linkType: hard -"blakejs@npm:^1.1.0": +"blakejs@npm:^1.1.0, blakejs@npm:^1.2.1": version: 1.2.1 resolution: "blakejs@npm:1.2.1" checksum: d699ba116cfa21d0b01d12014a03e484dd76d483133e6dc9eb415aa70a119f08beb3bcefb8c71840106a00b542cba77383f8be60cd1f0d4589cb8afb922eefbe @@ -8273,7 +8473,7 @@ __metadata: languageName: node linkType: hard -"cross-fetch@npm:^3.1.4, cross-fetch@npm:^3.1.6": +"cross-fetch@npm:^3.1.4, cross-fetch@npm:^3.1.6, cross-fetch@npm:~3.1.5": version: 3.1.8 resolution: "cross-fetch@npm:3.1.8" dependencies: @@ -8346,6 +8546,22 @@ __metadata: languageName: node linkType: hard +"css-what@npm:^6.1.0": + version: 6.1.0 + resolution: "css-what@npm:6.1.0" + checksum: b975e547e1e90b79625918f84e67db5d33d896e6de846c9b584094e529f0c63e2ab85ee33b9daffd05bff3a146a1916bec664e18bb76dd5f66cbff9fc13b2bbe + languageName: node + linkType: hard + +"cssesc@npm:^3.0.0": + version: 3.0.0 + resolution: "cssesc@npm:3.0.0" + bin: + cssesc: bin/cssesc + checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 + languageName: node + linkType: hard + "cssom@npm:^0.4.1, cssom@npm:^0.4.4": version: 0.4.4 resolution: "cssom@npm:0.4.4" @@ -8376,6 +8592,13 @@ __metadata: languageName: node linkType: hard +"csstype@npm:^3.0.7": + version: 3.1.3 + resolution: "csstype@npm:3.1.3" + checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 + languageName: node + linkType: hard + "d@npm:1, d@npm:^1.0.1": version: 1.0.1 resolution: "d@npm:1.0.1" @@ -8501,7 +8724,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.2.0, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.2.0, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -8581,6 +8804,18 @@ __metadata: languageName: node linkType: hard +"dedent@npm:^1.5.3": + version: 1.5.3 + resolution: "dedent@npm:1.5.3" + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true + checksum: 045b595557b2a8ea2eb9b0b4623d764e9a87326486fe2b61191b4342ed93dc01245644d8a09f3108a50c0ee7965f1eedd92e4a3a503ed89ea8e810566ea27f9a + languageName: node + linkType: hard + "deep-extend@npm:^0.6.0, deep-extend@npm:~0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -8595,6 +8830,13 @@ __metadata: languageName: node linkType: hard +"deep-object-diff@npm:^1.1.9": + version: 1.1.9 + resolution: "deep-object-diff@npm:1.1.9" + checksum: ecd42455e4773f653595d28070295e7aaa8402db5f8ab21d0bec115a7cb4de5e207a5665514767da5f025c96597f1d3a0a4888aeb4dd49e03c996871a3aa05ef + languageName: node + linkType: hard + "deepmerge@npm:^3.2.0": version: 3.3.0 resolution: "deepmerge@npm:3.3.0" @@ -14993,6 +15235,13 @@ fsevents@^2.3.2: languageName: node linkType: hard +"lru-cache@npm:^10.4.3": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a + languageName: node + linkType: hard + "lru-cache@npm:^4.0.1": version: 4.1.5 resolution: "lru-cache@npm:4.1.5" @@ -15104,16 +15353,16 @@ fsevents@^2.3.2: languageName: unknown linkType: soft -"magic-sdk@^28.20.0, magic-sdk@workspace:packages/magic-sdk": +"magic-sdk@^28.21.0, magic-sdk@workspace:packages/magic-sdk": version: 0.0.0-use.local resolution: "magic-sdk@workspace:packages/magic-sdk" dependencies: "@babel/core": ^7.9.6 "@babel/plugin-proposal-optional-chaining": ^7.9.0 "@babel/runtime": ^7.9.6 - "@magic-sdk/commons": ^24.19.0 - "@magic-sdk/provider": ^28.19.0 - "@magic-sdk/types": ^24.17.0 + "@magic-sdk/commons": ^24.20.0 + "@magic-sdk/provider": ^28.20.0 + "@magic-sdk/types": ^24.18.0 localforage: ^1.7.4 localforage-driver-memory: ^1.0.5 languageName: unknown @@ -15309,6 +15558,15 @@ fsevents@^2.3.2: languageName: node linkType: hard +"media-query-parser@npm:^2.0.2": + version: 2.0.2 + resolution: "media-query-parser@npm:2.0.2" + dependencies: + "@babel/runtime": ^7.12.5 + checksum: 8ef956d9e63fe6f4041988beda69843b3a6bb48228ea2923a066f6e7c8f7c5dba75fae357318c48a97ed5beae840b8425cb7e727fc1bb77acc65f2005f8945ab + languageName: node + linkType: hard + "mem@npm:^1.1.0": version: 1.1.0 resolution: "mem@npm:1.1.0" @@ -16223,6 +16481,13 @@ fsevents@^2.3.2: languageName: node linkType: hard +"modern-ahocorasick@npm:^1.0.0": + version: 1.1.0 + resolution: "modern-ahocorasick@npm:1.1.0" + checksum: 78b99840c9af086c1e36a594ee85bebd8c19d48e2ef31a67d1bad0e673ac12fc931e5961abb5b16daaf820af4923e700f76b1793b7413e18782230162866a0af + languageName: node + linkType: hard + "modify-values@npm:^1.0.1": version: 1.0.1 resolution: "modify-values@npm:1.0.1" From f3493a939e1bfc2ebdcf8cdea3bd513bd635209d Mon Sep 17 00:00:00 2001 From: Josh Scanlan <75971516+joshuascan@users.noreply.github.com> Date: Tue, 21 Jan 2025 10:59:03 -0800 Subject: [PATCH 2/2] chore: wip --- packages/@magic-ext/kadena/src/index.ts | 120 +++++++++++++++++++++++- packages/@magic-ext/kadena/src/types.ts | 5 + 2 files changed, 120 insertions(+), 5 deletions(-) diff --git a/packages/@magic-ext/kadena/src/index.ts b/packages/@magic-ext/kadena/src/index.ts index 02d32c72..991a1fab 100644 --- a/packages/@magic-ext/kadena/src/index.ts +++ b/packages/@magic-ext/kadena/src/index.ts @@ -8,13 +8,17 @@ import { SignatureWithPublicKey, SignedTransactions, OptimalTransactionsAccount, + LoginWithSpireKeyEvents, } from './types'; +import { connect, sign } from '@kadena/spirekey-sdk'; +import { addSignatures, Pact } from '@kadena/client'; export class KadenaExtension extends Extension.Internal<'kadena'> { name = 'kadena' as const; config = {}; constructor(public kadenaConfig: KadenaConfig) { + console.log('KadenaExtension constructor2'); super(); this.config = { @@ -34,19 +38,125 @@ export class KadenaExtension extends Extension.Internal<'kadena'> { public async signTransactionWithSpireKey( transaction: UnsignedCommand, - accounts?: OptimalTransactionsAccount[] + accounts?: OptimalTransactionsAccount[], ): Promise { const signedTransaction = await this.request( this.utils.createJsonRpcRequestPayload(KadenaPayloadMethod.KadenaSignTransactionWithSpireKey, [ { transaction, accounts: accounts || undefined }, - ]) + ]), ); return signedTransaction; } - public loginWithSpireKey(): Promise { - const requestPayload = this.utils.createJsonRpcRequestPayload(KadenaPayloadMethod.KadenaLoginWithSpireKey, []); - return this.request(requestPayload); + public async loginWithSpireKey(): Promise { + const promiEvent = this.utils.createPromiEvent( + async (resolve, reject) => { + try { + console.log('1. SDK loginWithSpireKey'); + // 1. Sdk sends rpc request to iframe + // CONTINUE IN SPIREKEY - choose an account + const requestPayload = this.utils.createJsonRpcRequestPayload( + KadenaPayloadMethod.KadenaLoginWithSpireKey, + [], + ); + const loginRequest = this.request(requestPayload); + + // 2. ----- Iframe starts listening for a `spirekey-connected` event + + // 3. Sdk triggers spirekey `connect()` + const connectedAccount = await connect((this.config as any).options.networkId, (this.config as any).chainId); + console.log('3. SDK connectedAccount', connectedAccount); + + // 5. Sdk emits `spirekey-connected` event to iframe + this.createIntermediaryEvent( + // @ts-ignore + 'spirekey-connected', + requestPayload.id as string, + )(JSON.stringify(connectedAccount)); + + // 4. Sdk listens for `login-signature-prompt` event + loginRequest.on('login-signature-prompt', async (challenge: string) => { + console.log('4. SDK payload on login-signature-prompt', challenge); + // 8. Sdk triggers spirekey `sign(url, account, challenge)` + const transaction = Pact.builder + .execution( + (Pact.modules as any)['n_aaf06a1ea6bb83b56abb6d37362ac1b05a91409a']['login']( + window.location.origin, + connectedAccount.accountName, + challenge, + ), + ) + .addSigner( + { + pubKey: connectedAccount.devices[0].guard.keys[0], + scheme: 'WebAuthn', + }, + signFor => [ + signFor( + `n_aaf06a1ea6bb83b56abb6d37362ac1b05a91409a.LOGIN`, + window.location.origin, + connectedAccount.accountName, + challenge, + ), + ], + ) + .setMeta({ + chainId: (this.config as any).chainId, + senderAccount: connectedAccount.accountName, + }) + .setNetworkId((this.config as any).options.networkId) + .createTransaction(); + console.log('transaction', transaction); + + // const button = document.createElement('button'); + // button.id = `popup-trigger`; + // button.style.cssText = 'position:fixed; top:-100px; pointer-events:none;'; + // document.body.appendChild(button); + // console.log('about to click button'); + // button.onclick = async () => await sign(transaction, [connectedAccount]); + // button.click(); + + const signature = await sign(transaction, [connectedAccount]); + console.log('8. SDK signature', signature); + const signedTransaction = addSignatures(transaction, ...signature.transactions[0].sigs); + // 9. Sdk emits `login-signature` event to iframe with signature + // @ts-ignore + this.createIntermediaryEvent('login-signature', requestPayload.id as string)(signedTransaction); + }); + + // (user connects to spirekey) + + // CONNECTED + + // 6. ----- Iframe calls `/challenge` endpoint + + // CONTINUE IN SPIREKEY - approve the request + + // 7. ----- Iframe listens for `login-signature` event + + // 7. ----- Iframe emits `login-signature-prompt` event with challenge + + // CONFIRMING LOGIN... + + // ----- 10. Iframe calls `/verify` endpoint with signature + + // CONNECTED + + // ----- 11. Iframe persists auth state + + // 12. Iframe resolves request + console.log('awaiting loginRequest'); + await loginRequest; + // 13. Sdk returns `connect()` response + console.log('resolving connectedAccount'); + resolve(connectedAccount); + } catch (error) { + console.log('EEEE', error); + reject(error); + } + }, + ); + return promiEvent; } public getUserInfo(): Promise { diff --git a/packages/@magic-ext/kadena/src/types.ts b/packages/@magic-ext/kadena/src/types.ts index 9921f7fe..f7e145a1 100644 --- a/packages/@magic-ext/kadena/src/types.ts +++ b/packages/@magic-ext/kadena/src/types.ts @@ -12,6 +12,11 @@ export enum KadenaPayloadMethod { KadenaSignTransactionWithSpireKey = 'kda_signTransactionWithSpireKey', } +export type LoginWithSpireKeyEvents = Record void> & { + 'login-signature-prompt': () => void; + 'spirekey-connected': () => void; +}; + export interface SignatureWithPublicKey { sig: string; pubKey?: string;