Skip to content

Commit 7fcd262

Browse files
feat(walletkit): add Monad/BSC/Celo support (#365)
* feat(walletkit): add Monad/BSC/Celo support, update Yttrium to 0.10.50, and refine request modal UI - Add Monad (eip155:143), BSC (eip155:56), and Celo (eip155:42220) chains to wallet example - Update YttriumWrapper and YttriumUtilsWrapper to 0.10.50 (iOS and Android) - Remove chain name from network card in request modals (show icon only) - Set verify and network cards to 68px height - Move network card below message card in request modals Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * revert: yttrium version update to 0.10.50 Revert Yttrium native dependencies back to their previous versions (0.10.40/0.10.41 for YttriumWrapper, 0.10.37/0.10.38 for YttriumUtilsWrapper) since 0.10.50 is not yet available on JitPack for Android. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * revert: restore original Podfile.lock Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(ci): clear stale CocoaPods CDN cache before iOS builds Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(ci): use pod repo update instead of cache clear for iOS builds Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: update Podfile.lock (Sentry 8.58.0) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * chore: update Xcode project settings Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(ios): enforce minimum deployment target 13.0 for all pods Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Revert "fix(ios): enforce minimum deployment target 13.0 for all pods" This reverts commit c9eb334. * fix(ios): update code signing to manual with distribution certs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix(ci): hardcode build number 132 to fix TF numbering Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * revert: restore dynamic TF build number Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent e03baeb commit 7fcd262

File tree

8 files changed

+57
-40
lines changed

8 files changed

+57
-40
lines changed

.github/actions/dependencies/action.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,12 @@ runs:
4949
# dart run polkadart_cli:generate -v
5050
# dart format --output=none --set-exit-if-changed .
5151
52+
# Ensure CocoaPods specs are up-to-date (iOS only)
53+
- name: Update CocoaPods specs
54+
if: inputs.platform == 'ios'
55+
shell: bash
56+
run: pod repo update --silent
57+
5258
# Get package dependencies for wallet and generate files
5359
- name: Get package dependencies for wallet and generate files
5460
shell: bash

packages/reown_walletkit/example/ios/Podfile.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ PODS:
1515
- reown_yttrium_utils (0.0.1):
1616
- Flutter
1717
- YttriumUtilsWrapper (= 0.10.37)
18-
- Sentry/HybridSDK (8.56.2)
19-
- sentry_flutter (9.14.0):
18+
- Sentry/HybridSDK (8.58.0)
19+
- sentry_flutter (9.15.0):
2020
- Flutter
2121
- FlutterMacOS
22-
- Sentry/HybridSDK (= 8.56.2)
22+
- Sentry/HybridSDK (= 8.58.0)
2323
- shared_preferences_foundation (0.0.1):
2424
- Flutter
2525
- FlutterMacOS
@@ -96,8 +96,8 @@ SPEC CHECKSUMS:
9696
qr_bar_code_scanner_dialog: a4cb7ad7201cbf8b888f3e6e58972b611ac43b28
9797
qr_code_scanner: d77f94ecc9abf96d9b9b8fc04ef13f611e5a147a
9898
reown_yttrium_utils: 9c407bda2e3db1638eed33598cf58fde08fb48e0
99-
Sentry: b53951377b78e21a734f5dc8318e333dbfc682d7
100-
sentry_flutter: 841fa2fe08dc72eb95e2320b76e3f751f3400cf5
99+
Sentry: d587a8fe91ca13503ecd69a1905f3e8a0fcf61be
100+
sentry_flutter: 8939e491bc1511868118c96cae47d945e6f69798
101101
shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb
102102
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
103103
url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b

packages/reown_walletkit/example/ios/Runner.xcodeproj/project.pbxproj

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
archiveVersion = 1;
44
classes = {
55
};
6-
objectVersion = 54;
6+
objectVersion = 60;
77
objects = {
88

99
/* Begin PBXBuildFile section */
@@ -192,7 +192,7 @@
192192
);
193193
mainGroup = 97C146E51CF9000F007C117D;
194194
packageReferences = (
195-
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */,
195+
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */,
196196
);
197197
productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
198198
projectDirPath = "";
@@ -227,10 +227,14 @@
227227
inputFileListPaths = (
228228
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
229229
);
230+
inputPaths = (
231+
);
230232
name = "[CP] Embed Pods Frameworks";
231233
outputFileListPaths = (
232234
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
233235
);
236+
outputPaths = (
237+
);
234238
runOnlyForDeploymentPostprocessing = 0;
235239
shellPath = /bin/sh;
236240
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
@@ -386,9 +390,11 @@
386390
CLANG_ENABLE_MODULES = YES;
387391
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
388392
CODE_SIGN_IDENTITY = "Apple Development";
389-
CODE_SIGN_STYLE = Automatic;
393+
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
394+
CODE_SIGN_STYLE = Manual;
390395
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
391-
DEVELOPMENT_TEAM = W5R8AG9K22;
396+
DEVELOPMENT_TEAM = "";
397+
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = W5R8AG9K22;
392398
ENABLE_BITCODE = NO;
393399
INFOPLIST_FILE = "Runner/Info-internal.plist";
394400
INFOPLIST_KEY_CFBundleDisplayName = "Flutter Wallet";
@@ -399,6 +405,7 @@
399405
PRODUCT_BUNDLE_IDENTIFIER = com.walletconnect.flutterwallet.internal;
400406
PRODUCT_NAME = "$(TARGET_NAME)";
401407
PROVISIONING_PROFILE_SPECIFIER = "";
408+
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development com.walletconnect.flutterwallet.internal";
402409
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
403410
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
404411
SWIFT_VERSION = 5.0;
@@ -481,7 +488,7 @@
481488
PRODUCT_BUNDLE_IDENTIFIER = com.walletconnect.flutterwallet.internal;
482489
PRODUCT_NAME = "$(TARGET_NAME)";
483490
PROVISIONING_PROFILE_SPECIFIER = "";
484-
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.walletconnect.flutterwallet.internal 1758893639";
491+
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.walletconnect.flutterwallet.internal";
485492
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
486493
SWIFT_VERSION = 5.0;
487494
VERSIONING_SYSTEM = "apple-generic";
@@ -561,7 +568,7 @@
561568
PRODUCT_BUNDLE_IDENTIFIER = com.walletconnect.flutterwallet.internal;
562569
PRODUCT_NAME = "$(TARGET_NAME)";
563570
PROVISIONING_PROFILE_SPECIFIER = "";
564-
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development com.walletconnect.flutterwallet.internal 1758893266";
571+
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development com.walletconnect.flutterwallet.internal";
565572
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
566573
SWIFT_VERSION = 5.0;
567574
VERSIONING_SYSTEM = "apple-generic";
@@ -641,7 +648,7 @@
641648
PRODUCT_BUNDLE_IDENTIFIER = com.walletconnect.flutterwallet;
642649
PRODUCT_NAME = "$(TARGET_NAME)";
643650
PROVISIONING_PROFILE_SPECIFIER = "";
644-
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development com.walletconnect.flutterwallet 1758893168";
651+
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development com.walletconnect.flutterwallet";
645652
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
646653
SWIFT_VERSION = 5.0;
647654
VERSIONING_SYSTEM = "apple-generic";
@@ -763,9 +770,11 @@
763770
CLANG_ENABLE_MODULES = YES;
764771
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
765772
CODE_SIGN_IDENTITY = "Apple Development";
766-
CODE_SIGN_STYLE = Automatic;
773+
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
774+
CODE_SIGN_STYLE = Manual;
767775
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
768-
DEVELOPMENT_TEAM = W5R8AG9K22;
776+
DEVELOPMENT_TEAM = "";
777+
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = W5R8AG9K22;
769778
ENABLE_BITCODE = NO;
770779
INFOPLIST_FILE = Runner/Info.plist;
771780
INFOPLIST_KEY_CFBundleDisplayName = "Flutter Wallet";
@@ -776,6 +785,7 @@
776785
PRODUCT_BUNDLE_IDENTIFIER = com.walletconnect.flutterwallet;
777786
PRODUCT_NAME = "$(TARGET_NAME)";
778787
PROVISIONING_PROFILE_SPECIFIER = "";
788+
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match Development com.walletconnect.flutterwallet";
779789
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
780790
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
781791
SWIFT_VERSION = 5.0;
@@ -806,7 +816,7 @@
806816
PRODUCT_BUNDLE_IDENTIFIER = com.walletconnect.flutterwallet;
807817
PRODUCT_NAME = "$(TARGET_NAME)";
808818
PROVISIONING_PROFILE_SPECIFIER = "";
809-
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.walletconnect.flutterwallet 1758893643";
819+
"PROVISIONING_PROFILE_SPECIFIER[sdk=iphoneos*]" = "match AppStore com.walletconnect.flutterwallet";
810820
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
811821
SWIFT_VERSION = 5.0;
812822
VERSIONING_SYSTEM = "apple-generic";
@@ -845,7 +855,7 @@
845855
/* End XCConfigurationList section */
846856

847857
/* Begin XCLocalSwiftPackageReference section */
848-
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "FlutterGeneratedPluginSwiftPackage" */ = {
858+
781AD8BC2B33823900A9FFBB /* XCLocalSwiftPackageReference "Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage" */ = {
849859
isa = XCLocalSwiftPackageReference;
850860
relativePath = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage;
851861
};

packages/reown_walletkit/example/lib/models/chain_data.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,16 @@ class ChainsDataList {
5656
color: Colors.green,
5757
rpc: ['https://rpc.walletconnect.org/v1'],
5858
),
59+
const ChainMetadata(
60+
type: ChainType.eip155,
61+
chainId: 'eip155:143',
62+
name: 'Monad',
63+
currency: 'MON',
64+
logo:
65+
'https://pbs.twimg.com/profile_images/1945153889881243648/CehOdEnT_400x400.jpg',
66+
color: Colors.deepPurple,
67+
rpc: ['https://rpc.monad.xyz'],
68+
),
5969
const ChainMetadata(
6070
type: ChainType.eip155,
6171
chainId: 'eip155:100',

packages/reown_walletkit/example/lib/widgets/shared/expandable_section.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@ class ExpandableSection extends StatefulWidget {
1010
required this.headerRight,
1111
required this.expandedContent,
1212
this.initiallyExpanded = false,
13+
this.headerHeight,
1314
});
1415

1516
final Widget headerLeft;
1617
final Widget headerRight;
1718
final Widget expandedContent;
1819
final bool initiallyExpanded;
20+
final double? headerHeight;
1921

2022
@override
2123
State<ExpandableSection> createState() => _ExpandableSectionState();
@@ -51,7 +53,8 @@ class _ExpandableSectionState extends State<ExpandableSection> {
5153
GestureDetector(
5254
onTap: _toggle,
5355
behavior: HitTestBehavior.opaque,
54-
child: Padding(
56+
child: Container(
57+
height: widget.headerHeight,
5558
padding: const EdgeInsets.symmetric(
5659
horizontal: AppSpacing.s4,
5760
vertical: 14.0,

packages/reown_walletkit/example/lib/widgets/wc_connection_request/network_section.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@ class NetworkSection extends StatelessWidget {
3333

3434
if (isSingleChain) {
3535
return Container(
36+
height: 68.0,
3637
decoration: BoxDecoration(
3738
color: colors.foregroundPrimary,
3839
borderRadius: BorderRadius.circular(AppRadius.md),
3940
),
4041
padding: const EdgeInsets.symmetric(
4142
horizontal: AppSpacing.s4,
42-
vertical: 14.0,
4343
),
4444
child: Row(
4545
children: [

packages/reown_walletkit/example/lib/widgets/wc_connection_request/verify_section.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ class VerifySection extends StatelessWidget {
2929
final origin = verifyContext!.origin;
3030

3131
return ExpandableSection(
32+
headerHeight: 68.0,
3233
headerLeft: Text(
3334
_cleanUrl(origin),
3435
style: TextStyle(

packages/reown_walletkit/example/lib/widgets/wc_request_modal/wc_request_modal.dart

Lines changed: 9 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,6 @@ class WCRequestModal extends StatelessWidget {
9999
VerifySection(verifyContext: verifyContext),
100100
if (verifyContext != null)
101101
const SizedBox(height: AppSpacing.s2),
102-
if (chain != null) ...[
103-
_NetworkRow(chain: chain!),
104-
const SizedBox(height: AppSpacing.s2),
105-
],
106102
...summaryRows.map(
107103
(row) => Padding(
108104
padding: const EdgeInsets.only(bottom: AppSpacing.s2),
@@ -118,6 +114,10 @@ class WCRequestModal extends StatelessWidget {
118114
),
119115
),
120116
),
117+
if (chain != null) ...[
118+
_NetworkRow(chain: chain!),
119+
const SizedBox(height: AppSpacing.s2),
120+
],
121121
],
122122
),
123123
),
@@ -224,13 +224,13 @@ class _NetworkRow extends StatelessWidget {
224224

225225
return Container(
226226
width: double.infinity,
227+
height: 68.0,
227228
decoration: BoxDecoration(
228229
color: colors.foregroundPrimary,
229230
borderRadius: BorderRadius.circular(AppRadius.md),
230231
),
231232
padding: const EdgeInsets.symmetric(
232233
horizontal: AppSpacing.s5,
233-
vertical: AppSpacing.s5,
234234
),
235235
child: Row(
236236
children: [
@@ -246,24 +246,11 @@ class _NetworkRow extends StatelessWidget {
246246
),
247247
const Spacer(),
248248
if (chain.logo.isNotEmpty)
249-
Padding(
250-
padding: const EdgeInsets.only(right: AppSpacing.s2),
251-
child: ChainIcon(
252-
logoUrl: chain.logo,
253-
size: 24.0,
254-
showBorder: false,
255-
),
249+
ChainIcon(
250+
logoUrl: chain.logo,
251+
size: 24.0,
252+
showBorder: false,
256253
),
257-
Text(
258-
chain.name,
259-
style: TextStyle(
260-
color: colors.textPrimary,
261-
fontSize: 16.0,
262-
fontWeight: FontWeight.w400,
263-
letterSpacing: -0.16,
264-
height: 18.0 / 16.0,
265-
),
266-
),
267254
],
268255
),
269256
);

0 commit comments

Comments
 (0)