import { generateBlocklyJson } from './GenerateUiMetadata'; jest.setTimeout(100000); describe('generateUiMetadata', () => { let miniscriptTwoOfTwO; let miniscriptHold; let miniscriptHoldWASM; let miniscriptInheritanceWASM; let miniscriptSocialRecovery; let miniscriptOneOfFourWASM; let miniscriptThreeOfFourWASM; beforeAll(() => { miniscriptHoldWASM = "or(pk(c67c515bb4a81bde965ab9a808cf0afdb1e5657e55224ed2bb1a3df94ff322da),and(pk([7c997e72/86'/1'/784923']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/*),after(10000)))" miniscriptTwoOfTwO = "thresh(2,pk([5f2bef9b/86'/1'/784923']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/*),pk([7c997e72/86'/1'/784923']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/*))" miniscriptHold = "and(pk([7c997e72/86'/1'/784923']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/*),after(10000))" miniscriptInheritanceWASM = "or(1@pk([5f2bef9b/86'/1'/784923']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/*),1@and(thresh(3,pk([7c997e72/86'/1'/784923']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/*),pk([20cfcb40/86'/1'/784923']tpubDD8mi8kBUTVCNimabA5aWDwzu72hnWGjiX18dnXu8EsYZebx12a9sLT5BeSshcAoSfiZ8bXLBNz7X6xtGS6D6r2r1pMgmZGMYRLqUur6dxv/0/*),pk([87131a00/86'/1'/784923']tpubDDEaK5JwGiGDTRkML9YKh8AF4rHPhkpnXzVjVMDBtzayJpnsWKeiFPxtiyYeGHQj8pnjsei7N98winwZ3ivGoVVKArZVMsEYGig73XVqbSX/0/*)),after(1693461600)))" miniscriptSocialRecovery = "or(pk([7c997e72/86'/1'/784923']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/*),and(thresh(1,pk([5f2bef9b/86'/1'/784923']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/*),pk([87131a00/86'/1'/784923']tpubDDEaK5JwGiGDTRkML9YKh8AF4rHPhkpnXzVjVMDBtzayJpnsWKeiFPxtiyYeGHQj8pnjsei7N98winwZ3ivGoVVKArZVMsEYGig73XVqbSX/0/*)),after(10000)))" miniscriptOneOfFourWASM = "or(pk([5f2bef9b/86'/1'/784923']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/*),or(pk([20cfcb40/86'/1'/784923']tpubDD8mi8kBUTVCNimabA5aWDwzu72hnWGjiX18dnXu8EsYZebx12a9sLT5BeSshcAoSfiZ8bXLBNz7X6xtGS6D6r2r1pMgmZGMYRLqUur6dxv/0/*),pk([87131a00/86'/1'/784923']tpubDDEaK5JwGiGDTRkML9YKh8AF4rHPhkpnXzVjVMDBtzayJpnsWKeiFPxtiyYeGHQj8pnjsei7N98winwZ3ivGoVVKArZVMsEYGig73XVqbSX/0/*),pk([7c997e72/86'/1'/784923']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/*)))" miniscriptThreeOfFourWASM = "or(pk(eceb2ebe34363e398bc71d4e944116539e95ce87fe00f6a0c01b098bd138e3e4),thresh(3,pk([5f2bef9b/86'/1'/784923']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/*),pk([7c997e72/86'/1'/784923']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/*),pk([20cfcb40/86'/1'/784923']tpubDD8mi8kBUTVCNimabA5aWDwzu72hnWGjiX18dnXu8EsYZebx12a9sLT5BeSshcAoSfiZ8bXLBNz7X6xtGS6D6r2r1pMgmZGMYRLqUur6dxv/0/*),pk([87131a00/86'/1'/784923']tpubDDEaK5JwGiGDTRkML9YKh8AF4rHPhkpnXzVjVMDBtzayJpnsWKeiFPxtiyYeGHQj8pnjsei7N98winwZ3ivGoVVKArZVMsEYGig73XVqbSX/0/*)))" } ) describe('toMiniscript', () => { it('generateBlocklyJson works', async () => { const createdAt = new Date(); const ownedSigner = [{ "fingerprint": "7c997e72", "descriptor": "", "key": "", "description": "", "name": "", "t": "", "id": "", createdAt }] const ownedSigner2 = [{ "fingerprint": "5f2bef9b", "descriptor": "", "key": "", "description": "", "name": "", "t": "", "id": "", createdAt }] const hold = '{ "blocks": { "languageVersion": 0, "blocks": [ { "type": "begin", "id": "mockId", "x": 293, "y": 10, "fields": { "SPACE": " " }, "next": { "block": { "type": "and", "id": "mockId", "fields": { "A_weight": 1, "SPACE": " ", "B_weight": 1 }, "inputs": { "A": { "block": { "type": "pk", "id": "mockId", "inputs": { "Key": { "block": { "type": "my_key", "id": "mockId", "fields": { "Key": "[7c997e72/86\'/1\'/784923\']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/\*" } } } } } }, "B": { "block": { "type": "after", "id": "mockId", "fields": { "value": 10000 } } } } } } } ] } }' const holdJson = JSON.stringify(JSON.parse(hold)) const holdN = JSON.stringify(generateBlocklyJson(miniscriptHold, ownedSigner)[0]).replace(/"id":\s*"[^"]*"/g, '"id":"mockId"'); const holdWASM = JSON.stringify(generateBlocklyJson(miniscriptHoldWASM, ownedSigner)[0]).replace(/"id":\s*"[^"]*"/g, '"id":"mockId"'); expect(holdN).toEqual(holdJson) expect(holdWASM).toEqual(holdJson) const twoOfTwo = '{ "blocks": { "languageVersion": 0, "blocks": [ { "type": "begin", "id": "jed6xn4lt28", "x": 293, "y": 10, "fields": { "SPACE": " " }, "next": { "block": { "type": "thresh", "id": "2m0554kaiwk", "fields": { "Threshold": 2, "SPACE": " " }, "inputs": { "Statements": { "block": { "type": "pk", "id": "d3b7y28xujn", "inputs": { "Key": { "block": { "type": "key", "id": "5g9eehic4ph", "fields": { "Key": "[5f2bef9b/86\'/1\'/784923\']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/\*" } } } }, "next": { "block": { "type": "pk", "id": "of3tky9ovi", "inputs": { "Key": { "block": { "type": "my_key", "id": "2vv256pyy8x", "fields": { "Key": "[7c997e72/86\'/1\'/784923\']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/\*" } } } } } } } } } } } } ] } }'.replace(/"id":\s*"[^"]*"/g, '"id":"mockId"') const twoOfTwoMetadata = JSON.stringify(generateBlocklyJson(miniscriptTwoOfTwO, ownedSigner)[0]).replace(/"id":\s*"[^"]*"/g, '"id":"mockId"'); expect(twoOfTwoMetadata).toEqual(JSON.stringify(JSON.parse(twoOfTwo))) const inheritance = ' { "blocks": { "languageVersion": 0, "blocks": [ { "type": "begin", "id": "jgxpz1s6elm", "x": 293, "y": 10, "fields": { "SPACE": " " }, "next": { "block": { "type": "or", "id": "g6pc53foiww", "fields": { "A_weight": 1, "SPACE": " ", "B_weight": 1 }, "inputs": { "A": { "block": { "type": "pk", "id": "4f5rp8q403y", "inputs": { "Key": { "block": { "type": "my_key", "id": "u4cts2vv4ri", "fields": { "Key": "[5f2bef9b/86\'/1\'/784923\']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/*" } } } } } }, "B": { "block": { "type": "and", "id": "sefx4sw28vt", "fields": { "A_weight": 1, "SPACE": " ", "B_weight": 1 }, "inputs": { "A": { "block": { "type": "thresh", "id": "xnpz2eq4s3", "fields": { "Threshold": 3, "SPACE": " " }, "inputs": { "Statements": { "block": { "type": "pk", "id": "b9s8epsgzu5", "inputs": { "Key": { "block": { "type": "key", "id": "s7msfye2zwi", "fields": { "Key": "[7c997e72/86\'/1\'/784923\']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/*" } } } }, "next": { "block": { "type": "pk", "id": "bfhf8hd7gw8", "inputs": { "Key": { "block": { "type": "key", "id": "v8uovv1sbpg", "fields": { "Key": "[20cfcb40/86\'/1\'/784923\']tpubDD8mi8kBUTVCNimabA5aWDwzu72hnWGjiX18dnXu8EsYZebx12a9sLT5BeSshcAoSfiZ8bXLBNz7X6xtGS6D6r2r1pMgmZGMYRLqUur6dxv/0/*" } } } }, "next": { "block": { "type": "pk", "id": "gdp4dgxse3d", "inputs": { "Key": { "block": { "type": "key", "id": "tdh81iiw0b", "fields": { "Key": "[87131a00/86\'/1\'/784923\']tpubDDEaK5JwGiGDTRkML9YKh8AF4rHPhkpnXzVjVMDBtzayJpnsWKeiFPxtiyYeGHQj8pnjsei7N98winwZ3ivGoVVKArZVMsEYGig73XVqbSX/0/*" } } } } } } } } } } } } }, "B": { "block": { "type": "after", "id": "m71vxa5bxtd", "fields": { "value": 1693461600 } } } } } } } } } } ] } }'.replace(/"id":\s*"[^"]*"/g, '"id":"mockId"') const inheritanceWASM = JSON.stringify(generateBlocklyJson(miniscriptInheritanceWASM, ownedSigner2)[0]).replace(/"id":\s*"[^"]*"/g, '"id":"mockId"'); expect(inheritanceWASM).toEqual(JSON.stringify(JSON.parse(inheritance))) const socialRecovery = '{ "blocks": { "languageVersion": 0, "blocks": [ { "type": "begin", "id": "ez2tax8epf", "x": 293, "y": 10, "fields": { "SPACE": " " }, "next": { "block": { "type": "or", "id": "1n0i2747qy1", "fields": { "A_weight": 1, "SPACE": " ", "B_weight": 1 }, "inputs": { "A": { "block": { "type": "pk", "id": "6zglbbom8pu", "inputs": { "Key": { "block": { "type": "my_key", "id": "la22i4e2o38", "fields": { "Key": "[7c997e72/86\'/1\'/784923\']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/*" } } } } } }, "B": { "block": { "type": "and", "id": "dgcis2kjd8m", "fields": { "A_weight": 1, "SPACE": " ", "B_weight": 1 }, "inputs": { "A": { "block": { "type": "thresh", "id": "sm1y6yao1s9", "fields": { "Threshold": 1, "SPACE": " " }, "inputs": { "Statements": { "block": { "type": "pk", "id": "lk4iqy7q41m", "inputs": { "Key": { "block": { "type": "key", "id": "uf1foalmn6", "fields": { "Key": "[5f2bef9b/86\'/1\'/784923\']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/*" } } } }, "next": { "block": { "type": "pk", "id": "ouxaixibo8", "inputs": { "Key": { "block": { "type": "key", "id": "tbzawfbrp5", "fields": { "Key": "[87131a00/86\'/1\'/784923\']tpubDDEaK5JwGiGDTRkML9YKh8AF4rHPhkpnXzVjVMDBtzayJpnsWKeiFPxtiyYeGHQj8pnjsei7N98winwZ3ivGoVVKArZVMsEYGig73XVqbSX/0/*" } } } } } } } } } } }, "B": { "block": { "type": "after", "id": "7spcy57t89w", "fields": { "value": 10000 } } } } } } } } } } ] } }'.replace(/"id":\s*"[^"]*"/g, '"id":"mockId"') const socialRecoveryMetadata = JSON.stringify(generateBlocklyJson(miniscriptSocialRecovery, ownedSigner)[0]).replace(/"id":\s*"[^"]*"/g, '"id":"mockId"'); const explicitWeightMin = 'or(1@pk([87131a00/86\'/1\'/784923\']tpubDDEaK5JwGiGDTRkML9YKh8AF4rHPhkpnXzVjVMDBtzayJpnsWKeiFPxtiyYeGHQj8pnjsei7N98winwZ3ivGoVVKArZVMsEYGig73XVqbSX/0/*),1@and(thresh(1,pk([5f2bef9b/86\'/1\'/784923\']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/*)),after(1693198800)))' const explicitWeightJson = '{ "blocks": { "languageVersion": 0, "blocks": [ { "type": "begin", "id": "qir5dhi6xr", "x": 293, "y": 10, "fields": { "SPACE": " " }, "next": { "block": { "type": "or", "id": "4flm801o321", "fields": { "A_weight": 1, "SPACE": " ", "B_weight": 1 }, "inputs": { "A": { "block": { "type": "pk", "id": "3e57qo9mo5k", "inputs": { "Key": { "block": { "type": "key", "id": "0wi9inqn2usf", "fields": { "Key": "[87131a00/86\'/1\'/784923\']tpubDDEaK5JwGiGDTRkML9YKh8AF4rHPhkpnXzVjVMDBtzayJpnsWKeiFPxtiyYeGHQj8pnjsei7N98winwZ3ivGoVVKArZVMsEYGig73XVqbSX/0/*" } } } } } }, "B": { "block": { "type": "and", "id": "eyt6hh4ge1n", "fields": { "A_weight": 1, "SPACE": " ", "B_weight": 1 }, "inputs": { "A": { "block": { "type": "thresh", "id": "o5a2ly6hj8", "fields": { "Threshold": 1, "SPACE": " " }, "inputs": { "Statements": { "block": { "type": "pk", "id": "k37vxdj3jk", "inputs": { "Key": { "block": { "type": "my_key", "id": "xinptdiokoo", "fields": { "Key": "[5f2bef9b/86\'/1\'/784923\']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/*" } } } } } } } } }, "B": { "block": { "type": "after", "id": "znrn9ie3be", "fields": { "value": 1693198800 } } } } } } } } } } ] } }'.replace(/"id":\s*"[^"]*"/g, '"id":"mockId"') expect(socialRecoveryMetadata).toEqual(JSON.stringify(JSON.parse(socialRecovery))) const explicitWeight = JSON.stringify(generateBlocklyJson(explicitWeightMin, ownedSigner2)[0]).replace(/"id":\s*"[^"]*"/g, '"id":"mockId"') expect(explicitWeight).toEqual(JSON.stringify(JSON.parse(explicitWeightJson))) const oneOfFour = ' { "blocks": { "languageVersion": 0, "blocks": [ { "type": "begin", "id": "aykt0tnujja", "x": 293, "y": 10, "fields": { "SPACE": " " }, "next": { "block": { "type": "thresh", "id": "jbng341d9f7", "fields": { "Threshold": 1, "SPACE": " " }, "inputs": { "Statements": { "block": { "type": "pk", "id": "uxceonbvs5r", "inputs": { "Key": { "block": { "type": "my_key", "id": "xjf53iq40gr", "fields": { "Key": "[5f2bef9b/86\'/1\'/784923\']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/*" } } } }, "next": { "block": { "type": "pk", "id": "8e8tetegupr", "inputs": { "Key": { "block": { "type": "key", "id": "wzqw7ojl0z", "fields": { "Key": "[20cfcb40/86\'/1\'/784923\']tpubDD8mi8kBUTVCNimabA5aWDwzu72hnWGjiX18dnXu8EsYZebx12a9sLT5BeSshcAoSfiZ8bXLBNz7X6xtGS6D6r2r1pMgmZGMYRLqUur6dxv/0/*" } } } }, "next": { "block": { "type": "pk", "id": "246yy4j2g1i", "inputs": { "Key": { "block": { "type": "key", "id": "glx846l0bg", "fields": { "Key": "[87131a00/86\'/1\'/784923\']tpubDDEaK5JwGiGDTRkML9YKh8AF4rHPhkpnXzVjVMDBtzayJpnsWKeiFPxtiyYeGHQj8pnjsei7N98winwZ3ivGoVVKArZVMsEYGig73XVqbSX/0/*" } } } }, "next": { "block": { "type": "pk", "id": "6k0vveexpws", "inputs": { "Key": { "block": { "type": "key", "id": "jwmao3dstj", "fields": { "Key": "[7c997e72/86\'/1\'/784923\']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/*" } } } } } } } } } } } } } } } } ] } }'.replace(/"id":\s*"[^"]*"/g, '"id":"mockId"') const oneOfFourWASM = JSON.stringify(generateBlocklyJson(miniscriptOneOfFourWASM, ownedSigner2)[0]).replace(/"id":\s*"[^"]*"/g, '"id":"mockId"'); const oneOfFourJson = JSON.stringify(JSON.parse(oneOfFour)) expect(oneOfFourWASM).toEqual(oneOfFourJson) const threeOfFour = '{ "blocks": { "languageVersion": 0, "blocks": [ { "type": "begin", "id": "wc4eqef5mtp", "x": 293, "y": 10, "fields": { "SPACE": " " }, "next": { "block": { "type": "thresh", "id": "bxpv4gsw2jr", "fields": { "Threshold": 3, "SPACE": " " }, "inputs": { "Statements": { "block": { "type": "pk", "id": "e88os2ol1gf", "inputs": { "Key": { "block": { "type": "my_key", "id": "u4uihpm9zsp", "fields": { "Key": "[5f2bef9b/86\'/1\'/784923\']tpubDDtLZM2VKqgSFAWQ4omDqJHHoQWQ151tpN7V8ZyEEKkNJhZpUbyDapfYK5grw2gpwhsyRudSyX9XeU8h3oSvDjnRxLPvYhBqQJTYr2hSmzi/0/*" } } } }, "next": { "block": { "type": "pk", "id": "yqlqwagnpwh", "inputs": { "Key": { "block": { "type": "key", "id": "gp3vq3qh1", "fields": { "Key": "[7c997e72/86\'/1\'/784923\']tpubDDTGvzeqbVUeCApGdB84rXDoQeqvZWmeLyNcUVHs34e913aCNBmj3tsGdXTt5Sn3o7RWcBsRsjUyoSB2ih2krVxe64FjX3C52yzEh7U5Qoh/0/*" } } } }, "next": { "block": { "type": "pk", "id": "0d216qy3znsg", "inputs": { "Key": { "block": { "type": "key", "id": "sbg1atak2i", "fields": { "Key": "[20cfcb40/86\'/1\'/784923\']tpubDD8mi8kBUTVCNimabA5aWDwzu72hnWGjiX18dnXu8EsYZebx12a9sLT5BeSshcAoSfiZ8bXLBNz7X6xtGS6D6r2r1pMgmZGMYRLqUur6dxv/0/*" } } } }, "next": { "block": { "type": "pk", "id": "kc3yf0nj0bf", "inputs": { "Key": { "block": { "type": "key", "id": "72ag6r7e4uu", "fields": { "Key": "[87131a00/86\'/1\'/784923\']tpubDDEaK5JwGiGDTRkML9YKh8AF4rHPhkpnXzVjVMDBtzayJpnsWKeiFPxtiyYeGHQj8pnjsei7N98winwZ3ivGoVVKArZVMsEYGig73XVqbSX/0/*" } } } } } } } } } } } } } } } } ] } }'.replace(/"id":\s*"[^"]*"/g, '"id":"mockId"') const threeOfFourWASM = JSON.stringify(generateBlocklyJson(miniscriptThreeOfFourWASM, ownedSigner2)[0]).replace(/"id":\s*"[^"]*"/g, '"id":"mockId"'); const threeOfFourJson = JSON.stringify(JSON.parse(threeOfFour)) expect(threeOfFourWASM).toEqual(threeOfFourJson) } ) }) })