Skip to content

Commit eb408a3

Browse files
fix: Improve error messages for AddressStruct (#3270)
Improve error messages when validating `AddressStruct` by using `selectiveUnion`. This may also improve performance when validating JSX blobs.
1 parent e871704 commit eb408a3

File tree

3 files changed

+8
-3
lines changed

3 files changed

+8
-3
lines changed

packages/examples/packages/browserify-plugin/snap.manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "https://github.com/MetaMask/snaps.git"
88
},
99
"source": {
10-
"shasum": "T5ccDAybeUsAJ9yFxrXmWXVcQCVnavpmmc1fE3PlOpA=",
10+
"shasum": "zIDqJzXMi7kdr4+TOIKO1lOK4o3r60fEDRMO4Q6lXzk=",
1111
"location": {
1212
"npm": {
1313
"filePath": "dist/bundle.js",

packages/examples/packages/browserify/snap.manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "https://github.com/MetaMask/snaps.git"
88
},
99
"source": {
10-
"shasum": "UnuvG6B1bTtsFwaahkqTlmPJ70y1ZrXj5vu0m8tjISw=",
10+
"shasum": "coTp9c/ZNMaIGqnTbDMfSpt867Gyq6kQCbmgsZzTARg=",
1111
"location": {
1212
"npm": {
1313
"filePath": "dist/bundle.js",

packages/snaps-sdk/src/jsx/validation.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,12 @@ export const DropdownStruct: Describe<DropdownElement> = element('Dropdown', {
385385
* A struct for the {@link AddressElement} type.
386386
*/
387387
export const AddressStruct: Describe<AddressElement> = element('Address', {
388-
address: nullUnion([HexChecksumAddressStruct, CaipAccountIdStruct]),
388+
address: selectiveUnion((value) => {
389+
if (typeof value === 'string' && value.startsWith('0x')) {
390+
return HexChecksumAddressStruct;
391+
}
392+
return CaipAccountIdStruct;
393+
}),
389394
truncate: optional(boolean()),
390395
displayName: optional(boolean()),
391396
avatar: optional(boolean()),

0 commit comments

Comments
 (0)