Skip to content

Commit 743bfbc

Browse files
authored
feat: react native sdk (#110)
* feat: react native sdk * chore: address PR comments
1 parent 7598d9a commit 743bfbc

File tree

197 files changed

+29656
-1620
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

197 files changed

+29656
-1620
lines changed
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# name: Setup React Native dependencies
2+
# description: Setup Node.js and install dependencies
3+
4+
# runs:
5+
# using: composite
6+
# steps:
7+
# - name: Setup Node.js
8+
# uses: actions/setup-node@v4
9+
# with:
10+
# node-version-file: ./packages/sdk-platforms/react-native/react-native-zksync-sso/.nvmrc
11+
12+
# - name: Check React Native package exists
13+
# shell: bash
14+
# run: |
15+
# if [ ! -d "./packages/sdk-platforms/react-native/react-native-zksync-sso" ]; then
16+
# echo "Error: React Native package directory not found at ./packages/sdk-platforms/react-native/react-native-zksync-sso"
17+
# ls -la ./packages/sdk-platforms/react-native/react-native-zksync-sso || echo "react-native-zksync-sso directory not found"
18+
# ls -la ./packages/sdk-platforms/react-native || echo "react-native directory not found"
19+
# ls -la ./packages/sdk-platforms || echo "sdk-platforms directory not found"
20+
# ls -la ./packages || echo "packages directory not found"
21+
# exit 1
22+
# fi
23+
# echo "React Native package directory found"
24+
# ls -la ./packages/sdk-platforms/react-native/react-native-zksync-sso
25+
26+
# - name: Setup Yarn
27+
# shell: bash
28+
# run: |
29+
# echo "Setting up Yarn 3.6.1"
30+
31+
# # Install yarn globally first
32+
# corepack enable
33+
# corepack prepare yarn@3.6.1 --activate
34+
35+
# # Setup directories
36+
# mkdir -p ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/releases
37+
# mkdir -p ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/plugins/@yarnpkg
38+
# mkdir -p ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/cache
39+
40+
# # Try to copy the yarn binary from corepack
41+
# if [ -f ~/.cache/node/corepack/v1/yarn/3.6.1/yarn.js ]; then
42+
# echo "Found yarn.js in corepack cache, copying..."
43+
# cp ~/.cache/node/corepack/v1/yarn/3.6.1/yarn.js ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/releases/yarn-3.6.1.cjs
44+
# else
45+
# echo "Corepack yarn.js not found, downloading yarn directly..."
46+
# # Download the yarn binary directly from GitHub
47+
# curl -L -o ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/releases/yarn-3.6.1.cjs https://github.com/yarnpkg/berry/releases/download/3.6.1/yarn-3.6.1.cjs
48+
# fi
49+
50+
# # Verify the file exists and has content
51+
# if [ -f ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/releases/yarn-3.6.1.cjs ]; then
52+
# echo "Yarn binary installed successfully"
53+
# ls -la ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/releases
54+
# else
55+
# echo "Failed to install Yarn binary"
56+
# exit 1
57+
# fi
58+
59+
# # Create plugin files
60+
# echo "Creating plugin files"
61+
# touch ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
62+
# touch ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
63+
64+
# # Verify plugins
65+
# ls -la ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/plugins/@yarnpkg
66+
67+
# # Fallback: Also update .yarnrc.yml to use global yarn if needed
68+
# echo "Making a backup of original .yarnrc.yml"
69+
# cp ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarnrc.yml ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarnrc.yml.bak
70+
71+
# # Create a simpler .yarnrc.yml without the yarnPath
72+
# echo 'nodeLinker: node-modules' > ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarnrc.yml
73+
# echo 'nmHoistingLimits: workspaces' >> ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarnrc.yml
74+
# echo >> ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarnrc.yml
75+
# echo 'plugins:' >> ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarnrc.yml
76+
# echo ' - path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs' >> ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarnrc.yml
77+
# echo ' spec: "@yarnpkg/plugin-interactive-tools"' >> ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarnrc.yml
78+
# echo ' - path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs' >> ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarnrc.yml
79+
# echo ' spec: "@yarnpkg/plugin-workspace-tools"' >> ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarnrc.yml
80+
81+
# echo "Modified .yarnrc.yml:"
82+
# cat ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarnrc.yml
83+
84+
# - name: Restore dependencies
85+
# id: yarn-cache
86+
# uses: actions/cache/restore@v4
87+
# with:
88+
# path: |
89+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/node_modules
90+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/example/node_modules
91+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/install-state.gz
92+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/releases
93+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/plugins
94+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/cache
95+
# key: ${{ runner.os }}-yarn-rn-${{ hashFiles('./packages/sdk-platforms/react-native/react-native-zksync-sso/yarn.lock') }}-${{ hashFiles('./packages/sdk-platforms/react-native/react-native-zksync-sso/package.json', './packages/sdk-platforms/react-native/react-native-zksync-sso/example/package.json') }}
96+
# restore-keys: |
97+
# ${{ runner.os }}-yarn-rn-${{ hashFiles('./packages/sdk-platforms/react-native/react-native-zksync-sso/yarn.lock') }}
98+
# ${{ runner.os }}-yarn-rn-
99+
100+
# - name: Install dependencies
101+
# if: steps.yarn-cache.outputs.cache-hit != 'true'
102+
# shell: bash
103+
# working-directory: ./packages/sdk-platforms/react-native/react-native-zksync-sso
104+
# run: |
105+
# echo "Installing dependencies"
106+
# yarn install --immutable || yarn install --immutable --no-immutable || npm install -g yarn && yarn install
107+
108+
# - name: Verify dependencies
109+
# if: steps.yarn-cache.outputs.cache-hit == 'true'
110+
# shell: bash
111+
# working-directory: ./packages/sdk-platforms/react-native/react-native-zksync-sso
112+
# run: |
113+
# echo "Verifying dependencies"
114+
# yarn install --immutable --check-cache || yarn install --immutable || yarn install
115+
116+
# - name: Cache dependencies
117+
# if: steps.yarn-cache.outputs.cache-hit != 'true'
118+
# uses: actions/cache/save@v4
119+
# with:
120+
# path: |
121+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/node_modules
122+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/example/node_modules
123+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/install-state.gz
124+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/releases
125+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/plugins
126+
# ./packages/sdk-platforms/react-native/react-native-zksync-sso/.yarn/cache
127+
# key: ${{ steps.yarn-cache.outputs.cache-primary-key }}

.github/workflows/ci-rn.yml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
name: CI for React Native zkSync SSO
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- 'packages/sdk-platforms/react-native/react-native-zksync-sso/**'
9+
pull_request:
10+
branches:
11+
- main
12+
paths:
13+
- 'packages/sdk-platforms/react-native/react-native-zksync-sso/**'
14+
15+
jobs:
16+
build:
17+
runs-on: ubuntu-latest
18+
defaults:
19+
run:
20+
working-directory: packages/sdk-platforms/react-native/react-native-zksync-sso
21+
steps:
22+
- name: Checkout code
23+
uses: actions/checkout@v4
24+
25+
- name: Set up Node.js
26+
uses: actions/setup-node@v4
27+
with:
28+
node-version: '22'
29+
30+
- name: Debug initial setup
31+
run: |
32+
echo "Current working directory: $(pwd)"
33+
echo "Listing subdirectory files:"
34+
ls -la . || echo "Dir listing failed"
35+
echo "Checking package.json:"
36+
cat package.json || echo "No package.json found"
37+
echo "Checking yarn.lock:"
38+
ls -la yarn.lock || echo "No yarn.lock found"
39+
echo "Checking initial .yarnrc.yml:"
40+
cat .yarnrc.yml || echo "No .yarnrc.yml found"
41+
echo "Checking root for package.json:"
42+
ls -la /home/runner/work/zksync-sso/zksync-sso/package.json || echo "No root package.json"
43+
echo "Checking root for yarn.lock:"
44+
ls -la /home/runner/work/zksync-sso/zksync-sso/yarn.lock || echo "No root yarn.lock"
45+
46+
- name: Set up Yarn 3.6.1 and plugins
47+
run: |
48+
# Modify .yarnrc.yml to remove yarnPath and plugin paths
49+
echo "Modifying .yarnrc.yml..."
50+
sed -i '/yarnPath:/d' .yarnrc.yml
51+
sed -i '/- path: .yarn\/plugins/d' .yarnrc.yml
52+
echo "Modified .yarnrc.yml:"
53+
cat .yarnrc.yml
54+
# Enable Corepack and prepare Yarn 3.6.1
55+
corepack enable
56+
corepack prepare yarn@3.6.1 --activate
57+
# Make the Yarn binary executable
58+
chmod +x /home/runner/.cache/node/corepack/v1/yarn/3.6.1/yarn.js
59+
# Verify Yarn version
60+
echo "Yarn version:"
61+
/home/runner/.cache/node/corepack/v1/yarn/3.6.1/yarn.js --version
62+
# Import plugins
63+
echo "Importing plugin interactive-tools..."
64+
/home/runner/.cache/node/corepack/v1/yarn/3.6.1/yarn.js plugin import @yarnpkg/plugin-interactive-tools
65+
echo "Importing plugin workspace-tools..."
66+
/home/runner/.cache/node/corepack/v1/yarn/3.6.1/yarn.js plugin import @yarnpkg/plugin-workspace-tools
67+
68+
- name: Debug post-Yarn setup
69+
run: |
70+
echo "Checking Yarn plugins directory:"
71+
ls -la .yarn/plugins/ || echo "No .yarn/plugins directory"
72+
echo "Yarn version again for confirmation:"
73+
/home/runner/.cache/node/corepack/v1/yarn/3.6.1/yarn.js --version
74+
75+
- name: Install dependencies
76+
run: |
77+
echo "Running yarn install..."
78+
/home/runner/.cache/node/corepack/v1/yarn/3.6.1/yarn.js install --frozen-lockfile
79+
80+
# - name: Build
81+
# run: |
82+
# echo "Running yarn prepare..."
83+
# /home/runner/.cache/node/corepack/v1/yarn/3.6.1/yarn.js prepare
84+
85+
# - name: Debug Jest setup
86+
# run: |
87+
# echo "Node version:"
88+
# node --version
89+
# echo "Yarn version:"
90+
# /home/runner/.cache/node/corepack/v1/yarn/3.6.1/yarn.js --version
91+
# echo "Checking node_modules for Jest:"
92+
# ls -la node_modules/jest || echo "Jest not found in node_modules"
93+
# echo "Listing Yarn cache:"
94+
# ls -la .yarn/cache/ || echo "No .yarn/cache directory"
95+
96+
# - name: Run tests
97+
# run: |
98+
# echo "Running yarn test..."
99+
# /home/runner/.cache/node/corepack/v1/yarn/3.6.1/yarn.js test
100+

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ cache/
1616
zkout/
1717

1818
package-lock.json
19-
yarn.lock
2019

2120
.cache/
2221

eslint.config.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,21 @@ import globals from "globals";
55
import tseslint from "typescript-eslint";
66

77
export default [
8-
{ ignores: ["**/node_modules/", "**/dist/", "**/temp/", "**/tmp/", "**/.nuxt/", "**/.output/", "**/artifacts-zk/", "**/deployments-zk/", "**/cache-zk/", "**/typechain-types/"] },
8+
{
9+
ignores: [
10+
"**/node_modules/",
11+
"**/dist/",
12+
"**/temp/",
13+
"**/tmp/",
14+
"**/.nuxt/",
15+
"**/.output/",
16+
"**/artifacts-zk/",
17+
"**/deployments-zk/",
18+
"**/cache-zk/",
19+
"**/typechain-types/",
20+
"**/react-native-zksync-sso/",
21+
],
22+
},
923
{ files: ["**/*.{js,mjs,cjs,ts}"] },
1024
stylistic.configs.customize({
1125
indent: 2,
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# EditorConfig helps developers define and maintain consistent
2+
# coding styles between different editors and IDEs
3+
# editorconfig.org
4+
5+
root = true
6+
7+
[*]
8+
9+
indent_style = space
10+
indent_size = 2
11+
12+
end_of_line = lf
13+
charset = utf-8
14+
trim_trailing_whitespace = true
15+
insert_final_newline = true
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*.pbxproj -text
2+
# specific for windows script files
3+
*.bat text eol=crlf
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
# OSX
2+
#
3+
.DS_Store
4+
5+
# XDE
6+
.expo/
7+
8+
# VSCode
9+
.vscode/
10+
jsconfig.json
11+
12+
# Xcode
13+
#
14+
build/
15+
*.pbxuser
16+
!default.pbxuser
17+
*.mode1v3
18+
!default.mode1v3
19+
*.mode2v3
20+
!default.mode2v3
21+
*.perspectivev3
22+
!default.perspectivev3
23+
xcuserdata
24+
*.xccheckout
25+
*.moved-aside
26+
DerivedData
27+
*.hmap
28+
*.ipa
29+
*.xcuserstate
30+
project.xcworkspace
31+
**/.xcode.env.local
32+
33+
# Android/IJ
34+
#
35+
.classpath
36+
.cxx
37+
.gradle
38+
.idea
39+
.project
40+
.settings
41+
local.properties
42+
android.iml
43+
44+
# Cocoapods
45+
#
46+
example/ios/Pods
47+
48+
# Ruby
49+
example/vendor/
50+
51+
# node.js
52+
#
53+
node_modules/
54+
npm-debug.log
55+
yarn-debug.log
56+
yarn-error.log
57+
58+
# BUCK
59+
buck-out/
60+
\.buckd/
61+
android/app/libs
62+
android/keystores/debug.keystore
63+
64+
# Yarn
65+
.yarn/*
66+
!.yarn/patches
67+
!.yarn/plugins
68+
!.yarn/releases
69+
!.yarn/sdks
70+
!.yarn/versions
71+
72+
# Expo
73+
.expo/
74+
75+
# Turborepo
76+
.turbo/
77+
78+
# generated by bob
79+
lib/
80+
81+
# React Native Codegen
82+
ios/generated
83+
android/generated
84+
85+
# React Native Nitro Modules
86+
nitrogen/
87+
88+
# React Native
89+
.yarn/*
90+
ZksyncSsoFramework.xcframework
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v22
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
nodeLinker: node-modules
2+
nmHoistingLimits: workspaces
3+
4+
plugins:
5+
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
6+
spec: "@yarnpkg/plugin-interactive-tools"
7+
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
8+
spec: "@yarnpkg/plugin-workspace-tools"
9+
10+
yarnPath: .yarn/releases/yarn-3.6.1.cjs

0 commit comments

Comments
 (0)