From 362fe04a5b07d40bc43958a721c0e7b8ce036fe2 Mon Sep 17 00:00:00 2001 From: Robert Lukotka Date: Thu, 18 Apr 2024 22:36:13 +0200 Subject: [PATCH] Update manifest --- js/src/txMerkleTree.js | 72 +++---- js/test/test.js | 17 +- src/tx_metadata.c | 4 +- tests/application_client/txMerkleTree.py | 72 +++---- tests/manifestPayloadCases.json | 192 +++++++++--------- tests/test_sign_cmd.py | 24 +-- transaction_metadata/manifest.mainnet.json | 32 +-- transaction_metadata/manifest.testnet.json | 32 +-- .../testvectors/manifestEnvelopeCases.json | 192 +++++++++--------- .../testvectors/manifestPayloadCases.json | 192 +++++++++--------- transaction_metadata/txMerkleTree.js | 72 +++---- transaction_metadata/txMerkleTree.mjs | 72 +++---- transaction_metadata/txMerkleTree.py | 72 +++---- transaction_metadata/usage.md | 18 +- 14 files changed, 541 insertions(+), 522 deletions(-) diff --git a/js/src/txMerkleTree.js b/js/src/txMerkleTree.js index 974efc72..e82da320 100644 --- a/js/src/txMerkleTree.js +++ b/js/src/txMerkleTree.js @@ -1,25 +1,25 @@ export const merkleTree = { - "hash": "e5de7e03151b79a530f29806444d1764a0dbd4823ea38eb58144f2e551ef90d9", + "hash": "3b8a3f04a2eac7998ef3b7dac432f73ca08c296886daf146e42b3563543e5c49", "children": [ { - "hash": "e506b85f9d54a5f2f67017bfe350ae31b7b9d200c6b4164f6659beb593f2256d", + "hash": "f5b4f20ebf66048eb52e05e6d39c0ef0de46dbcb523de9cbec5a7431f35945f3", "children": [ { - "hash": "f094b3a6c716f144697dbe4b2ba5d2f1e2da984b2e80aa05a5590204c7e37d36", + "hash": "82137b013ac2531825cd65b4a28a7be556c1c369c8a87c24e161f5f8001b1194", "children": [ { - "hash": "1c5ca0bd6e2efe7b703bf5fb36929d0cc9c9d209c67785881dd3da4fd46aa205", + "hash": "6900ff3054ae4933c381d7d3e2d8b1b17b515b3d6b98e93d11f00acb9d359323", "children": [ { - "hash": "ba8d78ee5eb236b4e5dea4440ac6b87123d9fcf85e1b36b7e5a0d60f26e9d3a4", + "hash": "c43cfe541b0628a223d0b531ae1c92b537d22438fd19fd98ecf8b7759a56699c", "children": [ - "0263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" + "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" ] }, { - "hash": "8ffa9371ad7acc826d866ae38a8082382a7a6a78558514f038607e65b3d33cf7", + "hash": "85992afd3e94015265d19d9fc7c7cbe04e1a1496b2fd6473dcae0c6b404f77c8", "children": [ - "0221d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd921d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" + "021c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" ] }, { @@ -41,32 +41,32 @@ export const merkleTree = { ] }, { - "hash": "fbc32d80f4b63fdbe9b07c2a15429b1bb812ff354a39c55bbeec86092fbed3af", + "hash": "ed5b792d16451b6324d59a6b6f6ab264c64bf21ec79a2cfeff80026f4d8b1cd6", "children": [ - "02c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e45472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003" + "020adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e6005472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003" ] }, { - "hash": "13f49f212695702b7bb3c40e83a21965c8896a5b27f7ca5060e92f495e7a34dc", + "hash": "bbb61ffb9141077dae6f17074fd3164785f763786fcc663741c1c2d892db868b", "children": [ - "02d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c5365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001" + "0254fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e766115365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001" ] } ] }, { - "hash": "39c872ce2cd813b03467d6fe3c74171278be3a7672876f9054b46dd793918de3", + "hash": "210ce9329af66737c49065f854327f14587781dcde6e04cae8f62a1144734b04", "children": [ { - "hash": "f3b874e9ccb839c607b28a232f9a9f69f2a2ae3540b6d85db0dbd2b842cdbb40", + "hash": "e4728a6ea610bc9f6e6b7aa87be64cfaef2aa72ea95d7e2ffdf1732509aab0dc", "children": [ - "02f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d1816582855472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003" + "02db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd13655472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003" ] }, { - "hash": "ee52358d565de121f5102d6dfb184aba9865b5e2e3594c52844f864e74668a04", + "hash": "47df2ea839c7e2bf8aff9ed112a76c9eae83f9aa3f7dc574bdd4772e1a339712", "children": [ - "02b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c5472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003" + "02e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb55472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003" ] }, { @@ -149,18 +149,18 @@ export const merkleTree = { ] }, { - "hash": "4d3432718724a8c3b5de68f394c467169fa1c2294739685b87c6ae5b00a46817", + "hash": "f2070a3be507580f1c50209a1121e1c980d81c0dd51b8e55adc5b5ddafa97adc", "children": [ { - "hash": "5af37d69ebb4555dd0061c2ddde70a10dc7d2ad6fc991119306ac7a75d4ce815", + "hash": "1db501d2b5dda1232062fba4dd77bf1b3bd7d4366a6aaf74ccf406cf2caf7e0b", "children": [ - "02311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d05472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003" + "02a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee873578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c562795472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003" ] }, { - "hash": "148677d2ed1ff860d66107c9e10c5081a68ff06913cc132c883b09a9f7cb813f", + "hash": "acb03d0e42854eb5c740c44a11766c7b5da2a80f4019c31e1e9260f1db23ae5b", "children": [ - "02f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc765472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003" + "02135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e0754689138c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc5472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003" ] }, { @@ -2420,13 +2420,13 @@ export const merkleTree = { } export const merkleIndex = { - "63d8b6a045bf8e61": [ + "c4a7efd8708396e8": [ 0, 0, 0, 0 ], - "21d4e87df171ccbe": [ + "1c9d1210f2bf129b": [ 0, 0, 0, @@ -2462,49 +2462,49 @@ export const merkleIndex = { 0, 4 ], - "c1518742a95f9b49": [ + "0adc1ebe8246cf76": [ 0, 0, 0, 5 ], - "697ad2a90da93cbd": [ + "d8f826a451d80869": [ 0, 0, 0, 5 ], - "d9ef3b05f8b06d43": [ + "54fae25bb09f5a32": [ 0, 0, 0, 6 ], - "1d12c005fa7a0827": [ + "a25e07dea5eb6083": [ 0, 0, 0, 6 ], - "f08815a2f535512a": [ + "db0518029ca76e6f": [ 0, 0, 1, 0 ], - "a56eb0c3e6c3456e": [ + "2cb2cd6408a35f08": [ 0, 0, 1, 0 ], - "b7892b30d7a68531": [ + "e4b837ce4d30be9b": [ 0, 0, 1, 1 ], - "111142945f27d91b": [ + "91fd4533a93f55a7": [ 0, 0, 1, @@ -2654,25 +2654,25 @@ export const merkleIndex = { 2, 6 ], - "311f4071dda8b17a": [ + "a39eedbe19f252c2": [ 0, 0, 3, 0 ], - "38bfd23b200ecef4": [ + "3578c7f3b015df3a": [ 0, 0, 3, 0 ], - "f9fa239cb78b3e07": [ + "135df83060f854d4": [ 0, 0, 3, 1 ], - "11e2107d2ccd96cb": [ + "8c7b8460f11ae786": [ 0, 0, 3, diff --git a/js/test/test.js b/js/test/test.js index ff8d5638..c3f8f80f 100644 --- a/js/test/test.js +++ b/js/test/test.js @@ -148,20 +148,23 @@ async function runTest() { assert.equal(res.signatureDER.toString("hex"), "304502210093cd8452a5f6770cefcec110e66e82d5986aa734d71c7055a95b0b6a2b74423b022069924df1208bd18f9ae21a3e6236b8fc5500c4cbb69266435ee5c0cb3c9e190d") assert.equal(transport.expected.length, 0) - //signTransaction - merkle tree + //signTransaction - merkle tree. This needs to be fixed when merkle tree changes. FA.01, only metadata (330203) and proof is important (330204, 330205) + //metadata: "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" + //proof1 transport.expected = [ ["3300000000", "00000c0000311000049000"], ["33020000162c0000801b0200800102008000000000000000000103", "9000"], ["3302010002f904","9000"], - ["33020300900263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", "9000"], - ["33020400e0ba8d78ee5eb236b4e5dea4440ac6b87123d9fcf85e1b36b7e5a0d60f26e9d3a48ffa9371ad7acc826d866ae38a8082382a7a6a78558514f038607e65b3d33cf7b5b81e2d8d86b60ca608b709cbe3c61fd45cd371699896cd26e915bda7814bdd20aa32dac6f0564026754cd8e38e092ba2c89f061c2a6574eb6df4adbf91480ee112591a80586f3b71a856155e1995fae1e86f03fff3bb7aa7f91d082b652182fbc32d80f4b63fdbe9b07c2a15429b1bb812ff354a39c55bbeec86092fbed3af13f49f212695702b7bb3c40e83a21965c8896a5b27f7ca5060e92f495e7a34dc", "9000"], - ["33020400e01c5ca0bd6e2efe7b703bf5fb36929d0cc9c9d209c67785881dd3da4fd46aa20539c872ce2cd813b03467d6fe3c74171278be3a7672876f9054b46dd793918de332412631b4049669cbe83a3dfb6a6d56d34f7c67fc8eea50f674d45aebfc83c74d3432718724a8c3b5de68f394c467169fa1c2294739685b87c6ae5b00a4681763981575be94aaa4f14daa9f27c6c2fd72b46de3994ed71abaec45aa4b40615a63981575be94aaa4f14daa9f27c6c2fd72b46de3994ed71abaec45aa4b40615a63981575be94aaa4f14daa9f27c6c2fd72b46de3994ed71abaec45aa4b40615a", "9000"], - ["33020400e0f094b3a6c716f144697dbe4b2ba5d2f1e2da984b2e80aa05a5590204c7e37d3688bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad9192988bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad9192988bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad9192988bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad9192988bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad9192988bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad91929", "9000"], - ["33020500e0e506b85f9d54a5f2f67017bfe350ae31b7b9d200c6b4164f6659beb593f2256d94a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e94a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e94a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e94a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e94a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e94a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e", "47fba63d87cac1a4d3d6345eb9ad4a8197d15cad816326675b950dc084fc90eb09a4c529640f92a5f07c4f54221f26f08a09c3d635cac6cc633050e0dff9e844003044022047fba63d87cac1a4d3d6345eb9ad4a8197d15cad816326675b950dc084fc90eb022009a4c529640f92a5f07c4f54221f26f08a09c3d635cac6cc633050e0dff9e8449000"], + ["330203009002c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", "9000"], + ["33020400e0c43cfe541b0628a223d0b531ae1c92b537d22438fd19fd98ecf8b7759a56699c85992afd3e94015265d19d9fc7c7cbe04e1a1496b2fd6473dcae0c6b404f77c8b5b81e2d8d86b60ca608b709cbe3c61fd45cd371699896cd26e915bda7814bdd20aa32dac6f0564026754cd8e38e092ba2c89f061c2a6574eb6df4adbf91480ee112591a80586f3b71a856155e1995fae1e86f03fff3bb7aa7f91d082b652182ed5b792d16451b6324d59a6b6f6ab264c64bf21ec79a2cfeff80026f4d8b1cd6bbb61ffb9141077dae6f17074fd3164785f763786fcc663741c1c2d892db868b", "9000"], + ["33020400e06900ff3054ae4933c381d7d3e2d8b1b17b515b3d6b98e93d11f00acb9d359323210ce9329af66737c49065f854327f14587781dcde6e04cae8f62a1144734b0432412631b4049669cbe83a3dfb6a6d56d34f7c67fc8eea50f674d45aebfc83c7f2070a3be507580f1c50209a1121e1c980d81c0dd51b8e55adc5b5ddafa97adc63981575be94aaa4f14daa9f27c6c2fd72b46de3994ed71abaec45aa4b40615a63981575be94aaa4f14daa9f27c6c2fd72b46de3994ed71abaec45aa4b40615a63981575be94aaa4f14daa9f27c6c2fd72b46de3994ed71abaec45aa4b40615a", "9000"], + ["33020400e082137b013ac2531825cd65b4a28a7be556c1c369c8a87c24e161f5f8001b119488bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad9192988bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad9192988bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad9192988bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad9192988bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad9192988bd487007bf1a5be47cea944d797895181258aba33c77e8c75fe7e38ad91929", "9000"], + ["33020500e0f5b4f20ebf66048eb52e05e6d39c0ef0de46dbcb523de9cbec5a7431f35945f394a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e94a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e94a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e94a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e94a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e94a4bf5f458f2def50f807bf419501bfd5e77a084c30592aa3803a522a3c272e", "47fba63d87cac1a4d3d6345eb9ad4a8197d15cad816326675b950dc084fc90eb09a4c529640f92a5f07c4f54221f26f08a09c3d635cac6cc633050e0dff9e844003044022047fba63d87cac1a4d3d6345eb9ad4a8197d15cad816326675b950dc084fc90eb022009a4c529640f92a5f07c4f54221f26f08a09c3d635cac6cc633050e0dff9e8449000"], ] tx2 = "f904" - scriptHash = "63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba" + // This needs to be fixed if hash chamges. FA.01 + scriptHash = "c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c" res = await app.sign("m/44'/539'/513'/0/0", Buffer.from(tx2, "hex"), cryptoOptions, scriptHash) assert.equal(res.returnCode, 0x9000) assert.equal(res.signatureCompact.toString("hex"), "47fba63d87cac1a4d3d6345eb9ad4a8197d15cad816326675b950dc084fc90eb09a4c529640f92a5f07c4f54221f26f08a09c3d635cac6cc633050e0dff9e84400") diff --git a/src/tx_metadata.c b/src/tx_metadata.c index b481cd9e..0b7a4ec0 100644 --- a/src/tx_metadata.c +++ b/src/tx_metadata.c @@ -18,8 +18,8 @@ struct { } txMetadataState; static const uint8_t merkleTreeRoot[METADATA_HASH_SIZE] = { - 0xe5, 0xde, 0x7e, 0x03, 0x15, 0x1b, 0x79, 0xa5, 0x30, 0xf2, 0x98, 0x06, 0x44, 0x4d, 0x17, 0x64, - 0xa0, 0xdb, 0xd4, 0x82, 0x3e, 0xa3, 0x8e, 0xb5, 0x81, 0x44, 0xf2, 0xe5, 0x51, 0xef, 0x90, 0xd9}; + 0x3b, 0x8a, 0x3f, 0x04, 0xa2, 0xea, 0xc7, 0x99, 0x8e, 0xf3, 0xb7, 0xda, 0xc4, 0x32, 0xf7, 0x3c, + 0xa0, 0x8c, 0x29, 0x68, 0x86, 0xda, 0xf1, 0x46, 0xe4, 0x2b, 0x35, 0x63, 0x54, 0x3e, 0x5c, 0x49}; static const char *STRING_TYPE_STRING = "String"; static const char *UINT8_TYPE_STRING = "UInt8"; diff --git a/tests/application_client/txMerkleTree.py b/tests/application_client/txMerkleTree.py index 3817d924..069e0973 100644 --- a/tests/application_client/txMerkleTree.py +++ b/tests/application_client/txMerkleTree.py @@ -1,26 +1,26 @@ # pylint: skip-file merkleTree = { - "hash": "e5de7e03151b79a530f29806444d1764a0dbd4823ea38eb58144f2e551ef90d9", + "hash": "3b8a3f04a2eac7998ef3b7dac432f73ca08c296886daf146e42b3563543e5c49", "children": [ { - "hash": "e506b85f9d54a5f2f67017bfe350ae31b7b9d200c6b4164f6659beb593f2256d", + "hash": "f5b4f20ebf66048eb52e05e6d39c0ef0de46dbcb523de9cbec5a7431f35945f3", "children": [ { - "hash": "f094b3a6c716f144697dbe4b2ba5d2f1e2da984b2e80aa05a5590204c7e37d36", + "hash": "82137b013ac2531825cd65b4a28a7be556c1c369c8a87c24e161f5f8001b1194", "children": [ { - "hash": "1c5ca0bd6e2efe7b703bf5fb36929d0cc9c9d209c67785881dd3da4fd46aa205", + "hash": "6900ff3054ae4933c381d7d3e2d8b1b17b515b3d6b98e93d11f00acb9d359323", "children": [ { - "hash": "ba8d78ee5eb236b4e5dea4440ac6b87123d9fcf85e1b36b7e5a0d60f26e9d3a4", + "hash": "c43cfe541b0628a223d0b531ae1c92b537d22438fd19fd98ecf8b7759a56699c", "children": [ - "0263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" + "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" ] }, { - "hash": "8ffa9371ad7acc826d866ae38a8082382a7a6a78558514f038607e65b3d33cf7", + "hash": "85992afd3e94015265d19d9fc7c7cbe04e1a1496b2fd6473dcae0c6b404f77c8", "children": [ - "0221d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd921d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" + "021c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" ] }, { @@ -42,32 +42,32 @@ ] }, { - "hash": "fbc32d80f4b63fdbe9b07c2a15429b1bb812ff354a39c55bbeec86092fbed3af", + "hash": "ed5b792d16451b6324d59a6b6f6ab264c64bf21ec79a2cfeff80026f4d8b1cd6", "children": [ - "02c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e45472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003" + "020adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e6005472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003" ] }, { - "hash": "13f49f212695702b7bb3c40e83a21965c8896a5b27f7ca5060e92f495e7a34dc", + "hash": "bbb61ffb9141077dae6f17074fd3164785f763786fcc663741c1c2d892db868b", "children": [ - "02d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c5365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001" + "0254fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e766115365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001" ] } ] }, { - "hash": "39c872ce2cd813b03467d6fe3c74171278be3a7672876f9054b46dd793918de3", + "hash": "210ce9329af66737c49065f854327f14587781dcde6e04cae8f62a1144734b04", "children": [ { - "hash": "f3b874e9ccb839c607b28a232f9a9f69f2a2ae3540b6d85db0dbd2b842cdbb40", + "hash": "e4728a6ea610bc9f6e6b7aa87be64cfaef2aa72ea95d7e2ffdf1732509aab0dc", "children": [ - "02f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d1816582855472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003" + "02db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd13655472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003" ] }, { - "hash": "ee52358d565de121f5102d6dfb184aba9865b5e2e3594c52844f864e74668a04", + "hash": "47df2ea839c7e2bf8aff9ed112a76c9eae83f9aa3f7dc574bdd4772e1a339712", "children": [ - "02b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c5472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003" + "02e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb55472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003" ] }, { @@ -150,18 +150,18 @@ ] }, { - "hash": "4d3432718724a8c3b5de68f394c467169fa1c2294739685b87c6ae5b00a46817", + "hash": "f2070a3be507580f1c50209a1121e1c980d81c0dd51b8e55adc5b5ddafa97adc", "children": [ { - "hash": "5af37d69ebb4555dd0061c2ddde70a10dc7d2ad6fc991119306ac7a75d4ce815", + "hash": "1db501d2b5dda1232062fba4dd77bf1b3bd7d4366a6aaf74ccf406cf2caf7e0b", "children": [ - "02311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d05472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003" + "02a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee873578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c562795472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003" ] }, { - "hash": "148677d2ed1ff860d66107c9e10c5081a68ff06913cc132c883b09a9f7cb813f", + "hash": "acb03d0e42854eb5c740c44a11766c7b5da2a80f4019c31e1e9260f1db23ae5b", "children": [ - "02f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc765472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003" + "02135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e0754689138c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc5472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003" ] }, { @@ -2421,13 +2421,13 @@ } merkleIndex = { - "63d8b6a045bf8e61": [ + "c4a7efd8708396e8": [ 0, 0, 0, 0 ], - "21d4e87df171ccbe": [ + "1c9d1210f2bf129b": [ 0, 0, 0, @@ -2463,49 +2463,49 @@ 0, 4 ], - "c1518742a95f9b49": [ + "0adc1ebe8246cf76": [ 0, 0, 0, 5 ], - "697ad2a90da93cbd": [ + "d8f826a451d80869": [ 0, 0, 0, 5 ], - "d9ef3b05f8b06d43": [ + "54fae25bb09f5a32": [ 0, 0, 0, 6 ], - "1d12c005fa7a0827": [ + "a25e07dea5eb6083": [ 0, 0, 0, 6 ], - "f08815a2f535512a": [ + "db0518029ca76e6f": [ 0, 0, 1, 0 ], - "a56eb0c3e6c3456e": [ + "2cb2cd6408a35f08": [ 0, 0, 1, 0 ], - "b7892b30d7a68531": [ + "e4b837ce4d30be9b": [ 0, 0, 1, 1 ], - "111142945f27d91b": [ + "91fd4533a93f55a7": [ 0, 0, 1, @@ -2655,25 +2655,25 @@ 2, 6 ], - "311f4071dda8b17a": [ + "a39eedbe19f252c2": [ 0, 0, 3, 0 ], - "38bfd23b200ecef4": [ + "3578c7f3b015df3a": [ 0, 0, 3, 0 ], - "f9fa239cb78b3e07": [ + "135df83060f854d4": [ 0, 0, 3, 1 ], - "11e2107d2ccd96cb": [ + "8c7b8460f11ae786": [ 0, 0, 3, diff --git a/tests/manifestPayloadCases.json b/tests/manifestPayloadCases.json index 2123700f..5ae3b1db 100644 --- a/tests/manifestPayloadCases.json +++ b/tests/manifestPayloadCases.json @@ -4,7 +4,7 @@ "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -36,7 +36,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -68,17 +68,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90458f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba" + "encodedTransactionPayloadHex": "f90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9045af90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c" }, { "title": "FA.02 - Add Key", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -110,7 +110,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -142,10 +142,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90421f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0221d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd921d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "21d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9" + "encodedTransactionPayloadHex": "f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90423f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "021c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f" }, { "title": "FA.03 - Remove Key", @@ -334,7 +334,7 @@ "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -366,7 +366,7 @@ ] }, "envelopeMessage": { - "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -398,17 +398,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9092ff9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e45472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", - "hash": "c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93" + "encodedTransactionPayloadHex": "f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90944f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "020adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e6005472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", + "hash": "0adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2" }, { "title": "NFT.01 - Setup NFT Collection", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -432,7 +432,7 @@ ] }, "envelopeMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -456,17 +456,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f906d9f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c5365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", - "hash": "d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa" + "encodedTransactionPayloadHex": "f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90702f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "0254fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e766115365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", + "hash": "54fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333" }, { "title": "NFT.02 - Transfer NFT with Paths", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -498,7 +498,7 @@ ] }, "envelopeMessage": { - "script": "import 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -530,17 +530,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9084db90760696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90851f9084db90760696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d1816582855472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", - "hash": "f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4" + "encodedTransactionPayloadHex": "f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f907f0f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd13655472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", + "hash": "db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d" }, { "title": "NFT.03 - Transfer NFT with Address", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -572,7 +572,7 @@ ] }, "envelopeMessage": { - "script": "import 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -604,10 +604,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096fb90887696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90973f9096fb90887696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c5472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", - "hash": "b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30" + "encodedTransactionPayloadHex": "f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90925f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb55472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", + "hash": "e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b" }, { "title": "TH.01 - Withdraw Unlocked FLOW", @@ -2000,7 +2000,7 @@ "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -2024,7 +2024,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -2048,17 +2048,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90972f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d05472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", - "hash": "311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e" + "encodedTransactionPayloadHex": "f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90971f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee873578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c562795472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", + "hash": "a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee87" }, { "title": "SCO.14 - Transfer Delegator", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -2086,7 +2086,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -2114,10 +2114,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9091ff9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc765472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", - "hash": "f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d" + "encodedTransactionPayloadHex": "f9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9091ef9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e0754689138c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc5472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", + "hash": "135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e075468913" }, { "title": "SCO.15 - Withdraw From Machine Account", @@ -2240,7 +2240,7 @@ "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2272,7 +2272,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2304,17 +2304,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90458f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba" + "encodedTransactionPayloadHex": "f90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9045af90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c" }, { "title": "FA.02 - Add Key", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2346,7 +2346,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2378,10 +2378,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90421f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0221d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd921d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "21d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9" + "encodedTransactionPayloadHex": "f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90423f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "021c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f" }, { "title": "FA.03 - Remove Key", @@ -2570,7 +2570,7 @@ "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -2602,7 +2602,7 @@ ] }, "envelopeMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -2634,17 +2634,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9092ff9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e45472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", - "hash": "697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e4" + "encodedTransactionPayloadHex": "f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90944f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "020adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e6005472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", + "hash": "d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e600" }, { "title": "NFT.01 - Setup NFT Collection", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -2668,7 +2668,7 @@ ] }, "envelopeMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -2692,17 +2692,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f906d9f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c5365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", - "hash": "1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c" + "encodedTransactionPayloadHex": "f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90702f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0254fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e766115365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", + "hash": "a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e76611" }, { "title": "NFT.02 - Transfer NFT with Paths", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -2734,7 +2734,7 @@ ] }, "envelopeMessage": { - "script": "import 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -2766,17 +2766,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9084db90760696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90851f9084db90760696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d1816582855472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", - "hash": "a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d181658285" + "encodedTransactionPayloadHex": "f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f907f0f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd13655472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", + "hash": "2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd1365" }, { "title": "NFT.03 - Transfer NFT with Address", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -2808,7 +2808,7 @@ ] }, "envelopeMessage": { - "script": "import 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -2840,10 +2840,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096fb90887696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90973f9096fb90887696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c5472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", - "hash": "111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c" + "encodedTransactionPayloadHex": "f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90925f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb55472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", + "hash": "91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb5" }, { "title": "TH.01 - Withdraw Unlocked FLOW", @@ -4236,7 +4236,7 @@ "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -4260,7 +4260,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -4284,17 +4284,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90972f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d05472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", - "hash": "38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d0" + "encodedTransactionPayloadHex": "f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90971f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee873578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c562795472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", + "hash": "3578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c56279" }, { "title": "SCO.14 - Transfer Delegator", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -4322,7 +4322,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -4350,10 +4350,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9091ff9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc765472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", - "hash": "11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc76" + "encodedTransactionPayloadHex": "f9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9091ef9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e0754689138c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc5472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", + "hash": "8c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc" }, { "title": "SCO.15 - Withdraw From Machine Account", diff --git a/tests/test_sign_cmd.py b/tests/test_sign_cmd.py index c51ccdb2..13e978f5 100644 --- a/tests/test_sign_cmd.py +++ b/tests/test_sign_cmd.py @@ -77,11 +77,11 @@ def send_tx_body() -> bytes: dataToSend: List[bytes]= [ bytes.fromhex("2c0000801b0200800102008000000000000000000103"), # This is FA.01 on Testnet, when the transaction changes, you need to modify the strings below according to the manifest - bytes.fromhex("f90458f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e"), - bytes.fromhex("617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a09"), - bytes.fromhex("09097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a207765"), - bytes.fromhex("69676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a2231"), - bytes.fromhex("3030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0"), + bytes.fromhex("f90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475"), + bytes.fromhex("726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909"), + bytes.fromhex("097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569"), + bytes.fromhex("676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a223130"), + bytes.fromhex("30302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd") ] backend.exchange(cla=ClaType.CLA_APP, ins=InsType.SIGN, p1=P1.P1_INIT, data=dataToSend[0]) @@ -89,7 +89,7 @@ def send_tx_body() -> bytes: backend.exchange(cla=ClaType.CLA_APP, ins=InsType.SIGN, p1=P1.P1_ADD, data=dataToSend[i]) #This is FA.01 on Testnet script hash. When the script changes, you need to update this according to the manifest - scriptHash = "63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba" + scriptHash = "c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c" sI = merkleIndex[scriptHash[0:16]] correctMetadata: bytes = bytes.fromhex(merkleTree["children"][sI[0]]["children"][sI[1]]["children"][sI[2]]["children"][sI[3]]["children"][0]) @@ -97,7 +97,6 @@ def send_tx_body() -> bytes: def get_proof_hex(merkleNode): return "".join(x["hash"] for x in merkleNode["children"]) - # When transactions change, yo uneed to update the correct proof from merkle tree correctProof: List[bytes]= [ bytes.fromhex(get_proof_hex(merkleTree["children"][sI[0]]["children"][sI[1]]["children"][sI[2]])), bytes.fromhex(get_proof_hex(merkleTree["children"][sI[0]]["children"][sI[1]])), @@ -274,11 +273,12 @@ def test_transaction_slot(firmware, backend, navigator, test_name): # tx - address matches sole authorizer tx4 = transaction[:ap[0]]+"f19c161bc24cf4b4"+transaction[(ap[0]+16):ap[1]]+"f19c161bc24cf4b4"+transaction[(ap[1]+16):ap[2]]+"f8d6e0586b0a20c7"+transaction[(ap[2]+16):] - # multiple authorisers, no match # use online rlp encoder/decoder to fix these when FA.02 changes - tx5 = "f90433f9042fb902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4db88f19c161bc24cf4b488f19c161bc24cf4b488f19c161bc24cf4b4c0" + # decode these transactions and he new transactions and hopefully you will know what to change and encode this + # multiple authorisers, no match + tx5 = "f90435f90431b902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4db88f19c161bc24cf4b488f19c161bc24cf4b488f19c161bc24cf4b4c0" # tx - address matches 3rd auhorizer out of three - tx6 = "f90433f9042fb902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4db88f19c161bc24cf4b488f19c161bc24cf4b488f8d6e0586b0a20c7c0" + tx6 = "f90435f90431b902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4db88f19c161bc24cf4b488f19c161bc24cf4b488f8d6e0586b0a20c7c0" transactions = [tx1, tx2, tx3, tx4, tx5, tx6] @@ -344,13 +344,13 @@ def test_transaction_refused(firmware, backend, navigator, test_name): def test_transaction_manifest(firmware, backend, navigator, test_name): - """ Check transaction based on legacy manifest file """ + """ Check transaction based on manifest file """ # Use the app interface instead of raw interface client = FlowCommandSender(backend) # Test parameters path: str = "m/44'/539'/0'/0/0" - curve: CurveChoice = CurveChoice.Nist256p1 + curve: CurveChomanifestice = CurveChoice.Nist256p1 hash_t = HashType.HASH_SHA3 with open(MANIFEST_FILE) as json_file: diff --git a/transaction_metadata/manifest.mainnet.json b/transaction_metadata/manifest.mainnet.json index c709b7b6..cfa472ce 100644 --- a/transaction_metadata/manifest.mainnet.json +++ b/transaction_metadata/manifest.mainnet.json @@ -4,7 +4,7 @@ { "id": "FA.01", "name": "Create Account", - "source": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) \u0026Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm \u003e= 1 \u0026\u0026 signatureAlgorithm \u003c= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm \u003e= 1 \u0026\u0026 hashAlgorithm \u003c= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight \u003c= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "source": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) \u0026Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm \u003e= 1 \u0026\u0026 signatureAlgorithm \u003c= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm \u003e= 1 \u0026\u0026 hashAlgorithm \u003c= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight \u003c= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -52,12 +52,12 @@ } ], "network": "mainnet", - "hash": "63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba" + "hash": "c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c" }, { "id": "FA.02", "name": "Add Key", - "source": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) \u0026Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm \u003e= 1 \u0026\u0026 signatureAlgorithm \u003c= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm \u003e= 1 \u0026\u0026 hashAlgorithm \u003c= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight \u003c= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "source": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) \u0026Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm \u003e= 1 \u0026\u0026 signatureAlgorithm \u003c= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm \u003e= 1 \u0026\u0026 hashAlgorithm \u003c= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight \u003c= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -105,7 +105,7 @@ } ], "network": "mainnet", - "hash": "21d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9" + "hash": "1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f" }, { "id": "FA.03", @@ -214,7 +214,7 @@ { "id": "FT.03", "name": "Transfer Fungible Token with Address", - "source": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{FungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cFungibleTokenMetadataViews.FTVaultData\u003e()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow\u003cauth(FungibleToken.Withdraw) \u0026{FungibleToken.Provider}\u003e(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault \u003c- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow\u003c\u0026{FungibleToken.Receiver}\u003e(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: \u003c-self.tempVault)\n }\n}", + "source": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{FungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cFungibleTokenMetadataViews.FTVaultData\u003e()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow\u003cauth(FungibleToken.Withdraw) \u0026{FungibleToken.Provider}\u003e(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault \u003c- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow\u003c\u0026{FungibleToken.Receiver}\u003e(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: \u003c-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -262,12 +262,12 @@ } ], "network": "mainnet", - "hash": "697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e4" + "hash": "d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e600" }, { "id": "NFT.01", "name": "Setup NFT Collection", - "source": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) \u0026Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{NonFungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cMetadataViews.NFTCollectionData\u003e()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection \u003c- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(\u003c-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue\u003c\u0026{NonFungibleToken.Collection}\u003e(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "source": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) \u0026Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{NonFungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cMetadataViews.NFTCollectionData\u003e()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection \u003c- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(\u003c-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue\u003c\u0026{NonFungibleToken.Collection}\u003e(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -293,12 +293,12 @@ } ], "network": "mainnet", - "hash": "1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c" + "hash": "a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e76611" }, { "id": "NFT.02", "name": "Transfer NFT with Paths", - "source": "import 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026{NonFungibleToken.Collection}\u003e(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT \u003c- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: \u003c-self.tempNFT)\n }\n}", + "source": "import NonFungibleToken from 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026{NonFungibleToken.Collection}\u003e(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT \u003c- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow\u003c\u0026{NonFungibleToken.Receiver}\u003e(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: \u003c-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -346,12 +346,12 @@ } ], "network": "mainnet", - "hash": "a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d181658285" + "hash": "2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd1365" }, { "id": "NFT.03", "name": "Transfer NFT with Address", - "source": "import 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{NonFungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cMetadataViews.NFTCollectionData\u003e()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026{NonFungibleToken.Collection}\u003e(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT \u003c- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: \u003c-self.tempNFT)\n }\n}", + "source": "import NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{NonFungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cMetadataViews.NFTCollectionData\u003e()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026{NonFungibleToken.Collection}\u003e(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT \u003c- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow\u003c\u0026{NonFungibleToken.Receiver}\u003e(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: \u003c-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -399,7 +399,7 @@ } ], "network": "mainnet", - "hash": "111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c" + "hash": "91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb5" }, { "id": "TH.01", @@ -996,7 +996,7 @@ { "id": "SCO.13", "name": "Transfer Node", - "source": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: \u0026FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) \u0026Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow\u003cauth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\u003e(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow\u003c\u0026FlowStakingCollection.StakingCollection\u003e(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker \u003c- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(\u003c- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "source": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: \u0026FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) \u0026Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow\u003cauth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\u003e(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow\u003c\u0026FlowStakingCollection.StakingCollection\u003e(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker \u003c- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(\u003c- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -1022,12 +1022,12 @@ } ], "network": "mainnet", - "hash": "38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d0" + "hash": "3578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c56279" }, { "id": "SCO.14", "name": "Transfer Delegator", - "source": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: \u0026FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) \u0026Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow\u003cauth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\u003e(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow\u003c\u0026FlowStakingCollection.StakingCollection\u003e(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator \u003c- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(\u003c- nodeDelegator!)\n }\n}", + "source": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: \u0026FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) \u0026Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow\u003cauth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\u003e(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow\u003c\u0026FlowStakingCollection.StakingCollection\u003e(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator \u003c- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(\u003c- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -1064,7 +1064,7 @@ } ], "network": "mainnet", - "hash": "11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc76" + "hash": "8c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc" }, { "id": "SCO.15", diff --git a/transaction_metadata/manifest.testnet.json b/transaction_metadata/manifest.testnet.json index 681b2deb..40b0cd11 100644 --- a/transaction_metadata/manifest.testnet.json +++ b/transaction_metadata/manifest.testnet.json @@ -4,7 +4,7 @@ { "id": "FA.01", "name": "Create Account", - "source": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) \u0026Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm \u003e= 1 \u0026\u0026 signatureAlgorithm \u003c= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm \u003e= 1 \u0026\u0026 hashAlgorithm \u003c= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight \u003c= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "source": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) \u0026Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm \u003e= 1 \u0026\u0026 signatureAlgorithm \u003c= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm \u003e= 1 \u0026\u0026 hashAlgorithm \u003c= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight \u003c= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -52,12 +52,12 @@ } ], "network": "testnet", - "hash": "63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba" + "hash": "c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c" }, { "id": "FA.02", "name": "Add Key", - "source": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) \u0026Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm \u003e= 1 \u0026\u0026 signatureAlgorithm \u003c= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm \u003e= 1 \u0026\u0026 hashAlgorithm \u003c= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight \u003c= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "source": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) \u0026Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm \u003e= 1 \u0026\u0026 signatureAlgorithm \u003c= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm \u003e= 1 \u0026\u0026 hashAlgorithm \u003c= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight \u003c= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -105,7 +105,7 @@ } ], "network": "testnet", - "hash": "21d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9" + "hash": "1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f" }, { "id": "FA.03", @@ -214,7 +214,7 @@ { "id": "FT.03", "name": "Transfer Fungible Token with Address", - "source": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{FungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cFungibleTokenMetadataViews.FTVaultData\u003e()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow\u003cauth(FungibleToken.Withdraw) \u0026{FungibleToken.Provider}\u003e(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault \u003c- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow\u003c\u0026{FungibleToken.Receiver}\u003e(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: \u003c-self.tempVault)\n }\n}", + "source": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{FungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cFungibleTokenMetadataViews.FTVaultData\u003e()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow\u003cauth(FungibleToken.Withdraw) \u0026{FungibleToken.Provider}\u003e(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault \u003c- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow\u003c\u0026{FungibleToken.Receiver}\u003e(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: \u003c-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -262,12 +262,12 @@ } ], "network": "testnet", - "hash": "c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93" + "hash": "0adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2" }, { "id": "NFT.01", "name": "Setup NFT Collection", - "source": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) \u0026Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{NonFungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cMetadataViews.NFTCollectionData\u003e()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection \u003c- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(\u003c-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue\u003c\u0026{NonFungibleToken.Collection}\u003e(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "source": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) \u0026Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{NonFungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cMetadataViews.NFTCollectionData\u003e()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection \u003c- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(\u003c-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue\u003c\u0026{NonFungibleToken.Collection}\u003e(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -293,12 +293,12 @@ } ], "network": "testnet", - "hash": "d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa" + "hash": "54fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333" }, { "id": "NFT.02", "name": "Transfer NFT with Paths", - "source": "import 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026{NonFungibleToken.Collection}\u003e(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT \u003c- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: \u003c-self.tempNFT)\n }\n}", + "source": "import NonFungibleToken from 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026{NonFungibleToken.Collection}\u003e(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT \u003c- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow\u003c\u0026{NonFungibleToken.Receiver}\u003e(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: \u003c-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -346,12 +346,12 @@ } ], "network": "testnet", - "hash": "f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4" + "hash": "db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d" }, { "id": "NFT.03", "name": "Transfer NFT with Address", - "source": "import 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{NonFungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cMetadataViews.NFTCollectionData\u003e()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026{NonFungibleToken.Collection}\u003e(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT \u003c- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get\u003c\u0026{NonFungibleToken.Receiver}\u003e(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: \u003c-self.tempNFT)\n }\n}", + "source": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) \u0026Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow\u003c\u0026{NonFungibleToken}\u003e(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type\u003cMetadataViews.NFTCollectionData\u003e()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow\u003cauth(NonFungibleToken.Withdraw) \u0026{NonFungibleToken.Collection}\u003e(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT \u003c- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow\u003c\u0026{NonFungibleToken.Receiver}\u003e(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: \u003c-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -399,7 +399,7 @@ } ], "network": "testnet", - "hash": "b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30" + "hash": "e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b" }, { "id": "TH.01", @@ -996,7 +996,7 @@ { "id": "SCO.13", "name": "Transfer Node", - "source": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: \u0026FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) \u0026Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow\u003cauth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\u003e(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow\u003c\u0026FlowStakingCollection.StakingCollection\u003e(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker \u003c- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(\u003c- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "source": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: \u0026FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) \u0026Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow\u003cauth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\u003e(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow\u003c\u0026FlowStakingCollection.StakingCollection\u003e(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker \u003c- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(\u003c- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -1022,12 +1022,12 @@ } ], "network": "testnet", - "hash": "311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e" + "hash": "a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee87" }, { "id": "SCO.14", "name": "Transfer Delegator", - "source": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: \u0026FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) \u0026Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow\u003cauth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\u003e(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow\u003c\u0026FlowStakingCollection.StakingCollection\u003e(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator \u003c- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(\u003c- nodeDelegator!)\n }\n}", + "source": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: \u0026FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) \u0026Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow\u003cauth(FlowStakingCollection.CollectionOwner) \u0026FlowStakingCollection.StakingCollection\u003e(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow\u003c\u0026FlowStakingCollection.StakingCollection\u003e(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator \u003c- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(\u003c- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -1064,7 +1064,7 @@ } ], "network": "testnet", - "hash": "f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d" + "hash": "135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e075468913" }, { "id": "SCO.15", diff --git a/transaction_metadata/testvectors/manifestEnvelopeCases.json b/transaction_metadata/testvectors/manifestEnvelopeCases.json index 250f157d..231fc4a1 100644 --- a/transaction_metadata/testvectors/manifestEnvelopeCases.json +++ b/transaction_metadata/testvectors/manifestEnvelopeCases.json @@ -4,7 +4,7 @@ "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -43,7 +43,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -75,17 +75,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90458f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba" + "encodedTransactionPayloadHex": "f90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9045af90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c" }, { "title": "FA.02 - Add Key", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -124,7 +124,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -156,10 +156,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90421f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0221d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd921d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "21d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9" + "encodedTransactionPayloadHex": "f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90423f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "021c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f" }, { "title": "FA.03 - Remove Key", @@ -369,7 +369,7 @@ "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -408,7 +408,7 @@ ] }, "envelopeMessage": { - "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -440,17 +440,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9092ff9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e45472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", - "hash": "c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93" + "encodedTransactionPayloadHex": "f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90944f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "020adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e6005472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", + "hash": "0adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2" }, { "title": "NFT.01 - Setup NFT Collection", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -481,7 +481,7 @@ ] }, "envelopeMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -505,17 +505,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f906d9f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c5365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", - "hash": "d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa" + "encodedTransactionPayloadHex": "f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90702f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "0254fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e766115365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", + "hash": "54fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333" }, { "title": "NFT.02 - Transfer NFT with Paths", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -554,7 +554,7 @@ ] }, "envelopeMessage": { - "script": "import 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -586,17 +586,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9084db90760696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90851f9084db90760696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d1816582855472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", - "hash": "f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4" + "encodedTransactionPayloadHex": "f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f907f0f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd13655472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", + "hash": "db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d" }, { "title": "NFT.03 - Transfer NFT with Address", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -635,7 +635,7 @@ ] }, "envelopeMessage": { - "script": "import 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -667,10 +667,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096fb90887696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90973f9096fb90887696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c5472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", - "hash": "b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30" + "encodedTransactionPayloadHex": "f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90925f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb55472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", + "hash": "e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b" }, { "title": "TH.01 - Withdraw Unlocked FLOW", @@ -2210,7 +2210,7 @@ "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -2241,7 +2241,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -2265,17 +2265,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90972f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d05472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", - "hash": "311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e" + "encodedTransactionPayloadHex": "f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90971f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee873578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c562795472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", + "hash": "a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee87" }, { "title": "SCO.14 - Transfer Delegator", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -2310,7 +2310,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -2338,10 +2338,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9091ff9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc765472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", - "hash": "f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d" + "encodedTransactionPayloadHex": "f9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9091ef9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e0754689138c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc5472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", + "hash": "135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e075468913" }, { "title": "SCO.15 - Withdraw From Machine Account", @@ -2478,7 +2478,7 @@ "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2517,7 +2517,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2549,17 +2549,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90458f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba" + "encodedTransactionPayloadHex": "f90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9045af90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c" }, { "title": "FA.02 - Add Key", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2598,7 +2598,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2630,10 +2630,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90421f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0221d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd921d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "21d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9" + "encodedTransactionPayloadHex": "f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90423f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "021c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f" }, { "title": "FA.03 - Remove Key", @@ -2843,7 +2843,7 @@ "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -2882,7 +2882,7 @@ ] }, "envelopeMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -2914,17 +2914,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9092ff9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e45472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", - "hash": "697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e4" + "encodedTransactionPayloadHex": "f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90944f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "020adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e6005472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", + "hash": "d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e600" }, { "title": "NFT.01 - Setup NFT Collection", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -2955,7 +2955,7 @@ ] }, "envelopeMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -2979,17 +2979,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f906d9f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c5365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", - "hash": "1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c" + "encodedTransactionPayloadHex": "f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90702f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0254fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e766115365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", + "hash": "a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e76611" }, { "title": "NFT.02 - Transfer NFT with Paths", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -3028,7 +3028,7 @@ ] }, "envelopeMessage": { - "script": "import 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -3060,17 +3060,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9084db90760696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90851f9084db90760696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d1816582855472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", - "hash": "a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d181658285" + "encodedTransactionPayloadHex": "f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f907f0f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd13655472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", + "hash": "2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd1365" }, { "title": "NFT.03 - Transfer NFT with Address", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -3109,7 +3109,7 @@ ] }, "envelopeMessage": { - "script": "import 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -3141,10 +3141,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096fb90887696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90973f9096fb90887696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c5472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", - "hash": "111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c" + "encodedTransactionPayloadHex": "f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90925f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb55472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", + "hash": "91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb5" }, { "title": "TH.01 - Withdraw Unlocked FLOW", @@ -4684,7 +4684,7 @@ "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -4715,7 +4715,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -4739,17 +4739,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90972f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d05472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", - "hash": "38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d0" + "encodedTransactionPayloadHex": "f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90971f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee873578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c562795472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", + "hash": "3578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c56279" }, { "title": "SCO.14 - Transfer Delegator", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -4784,7 +4784,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -4812,10 +4812,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9091ff9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc765472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", - "hash": "11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc76" + "encodedTransactionPayloadHex": "f9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9091ef9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e0754689138c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc5472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", + "hash": "8c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc" }, { "title": "SCO.15 - Withdraw From Machine Account", diff --git a/transaction_metadata/testvectors/manifestPayloadCases.json b/transaction_metadata/testvectors/manifestPayloadCases.json index 2123700f..5ae3b1db 100644 --- a/transaction_metadata/testvectors/manifestPayloadCases.json +++ b/transaction_metadata/testvectors/manifestPayloadCases.json @@ -4,7 +4,7 @@ "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -36,7 +36,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -68,17 +68,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90458f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba" + "encodedTransactionPayloadHex": "f90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9045af90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c" }, { "title": "FA.02 - Add Key", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -110,7 +110,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -142,10 +142,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90421f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0221d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd921d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "21d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9" + "encodedTransactionPayloadHex": "f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90423f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "021c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f" }, { "title": "FA.03 - Remove Key", @@ -334,7 +334,7 @@ "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -366,7 +366,7 @@ ] }, "envelopeMessage": { - "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FungibleTokenMetadataViews from 0x9a0766d93b6608b7\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -398,17 +398,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9092ff9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e45472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", - "hash": "c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93" + "encodedTransactionPayloadHex": "f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90944f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078396130373636643933623636303862370a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "020adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e6005472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", + "hash": "0adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2" }, { "title": "NFT.01 - Setup NFT Collection", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -432,7 +432,7 @@ ] }, "envelopeMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -456,17 +456,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f906d9f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c5365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", - "hash": "d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa" + "encodedTransactionPayloadHex": "f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90702f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "0254fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e766115365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", + "hash": "54fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333" }, { "title": "NFT.02 - Transfer NFT with Paths", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -498,7 +498,7 @@ ] }, "envelopeMessage": { - "script": "import 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -530,17 +530,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9084db90760696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90851f9084db90760696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d1816582855472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", - "hash": "f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4" + "encodedTransactionPayloadHex": "f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f907f0f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd13655472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", + "hash": "db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d" }, { "title": "NFT.03 - Transfer NFT with Address", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -572,7 +572,7 @@ ] }, "envelopeMessage": { - "script": "import 0x631e88ae7f1d7c20\nimport 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport MetadataViews from 0x631e88ae7f1d7c20\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -604,10 +604,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096fb90887696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90973f9096fb90887696d706f7274203078363331653838616537663164376332300a696d706f7274203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c5472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", - "hash": "b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30" + "encodedTransactionPayloadHex": "f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90925f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f7274204d6574616461746156696577732066726f6d203078363331653838616537663164376332300a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb55472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", + "hash": "e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b" }, { "title": "TH.01 - Withdraw Unlocked FLOW", @@ -2000,7 +2000,7 @@ "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -2024,7 +2024,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -2048,17 +2048,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90972f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d05472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", - "hash": "311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e" + "encodedTransactionPayloadHex": "f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90971f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee873578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c562795472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", + "hash": "a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee87" }, { "title": "SCO.14 - Transfer Delegator", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -2086,7 +2086,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -2114,10 +2114,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9091ff9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc765472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", - "hash": "f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d" + "encodedTransactionPayloadHex": "f9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9091ef9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307838633533303365616132363230326436222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e0754689138c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc5472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", + "hash": "135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e075468913" }, { "title": "SCO.15 - Withdraw From Machine Account", @@ -2240,7 +2240,7 @@ "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2272,7 +2272,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\tprepare(signer: auth(BorrowValue, Storage) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tlet account = Account(payer: signer)\n\n\t\taccount.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2304,17 +2304,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90458f90454b902fe696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba" + "encodedTransactionPayloadHex": "f90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9045af90456b90300696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0970726570617265287369676e65723a206175746828426f72726f7756616c75652c2053746f726167652920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09096c6574206163636f756e74203d204163636f756e742870617965723a207369676e6572290a0a09096163636f756e742e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c" }, { "title": "FA.02 - Add Key", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2346,7 +2346,7 @@ ] }, "envelopeMessage": { - "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algoritm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algoritm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", + "script": "import Crypto\n\ntransaction(key: String, signatureAlgorithm: UInt8, hashAlgorithm: UInt8, weight: UFix64) {\n\n\tprepare(signer: auth(AddKey) &Account) {\n\t\tpre {\n\t\t\tsignatureAlgorithm >= 1 && signatureAlgorithm <= 3: \"Must provide a signature algorithm raw value that is 1, 2, or 3\"\n\t\t\thashAlgorithm >= 1 && hashAlgorithm <= 6: \"Must provide a hash algorithm raw value that is between 1 and 6\"\n\t\t\tweight <= 1000.0: \"The key weight must be between 0 and 1000\"\n\t\t}\n\t\tlet publicKey = PublicKey(\n\t\t\tpublicKey: key.decodeHex(),\n\t\t\tsignatureAlgorithm: SignatureAlgorithm(rawValue: signatureAlgorithm)!\n\t\t)\n\n\t\tsigner.keys.add(publicKey: publicKey, hashAlgorithm: HashAlgorithm(rawValue: hashAlgorithm)!, weight: weight)\n\t}\n}", "arguments": [ { "type": "String", @@ -2378,10 +2378,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90421f9041db902c7696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f7269746d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f7269746d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0221d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd921d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", - "hash": "21d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9" + "encodedTransactionPayloadHex": "f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90423f9041fb902c9696d706f72742043727970746f0a0a7472616e73616374696f6e286b65793a20537472696e672c207369676e6174757265416c676f726974686d3a2055496e74382c2068617368416c676f726974686d3a2055496e74382c207765696768743a2055466978363429207b0a0a0970726570617265287369676e65723a2061757468284164644b65792920264163636f756e7429207b0a0909707265207b0a0909097369676e6174757265416c676f726974686d203e3d2031202626207369676e6174757265416c676f726974686d203c3d20333a20224d7573742070726f766964652061207369676e617475726520616c676f726974686d207261772076616c7565207468617420697320312c20322c206f722033220a09090968617368416c676f726974686d203e3d20312026262068617368416c676f726974686d203c3d20363a20224d7573742070726f766964652061206861736820616c676f726974686d207261772076616c75652074686174206973206265747765656e203120616e642036220a090909776569676874203c3d20313030302e303a2022546865206b657920776569676874206d757374206265206265747765656e203020616e642031303030220a09097d0a09096c6574207075626c69634b6579203d205075626c69634b6579280a0909097075626c69634b65793a206b65792e6465636f646548657828292c0a0909097369676e6174757265416c676f726974686d3a205369676e6174757265416c676f726974686d2872617756616c75653a207369676e6174757265416c676f726974686d29210a0909290a0a09097369676e65722e6b6579732e616464287075626c69634b65793a207075626c69634b65792c2068617368416c676f726974686d3a2048617368416c676f726974686d2872617756616c75653a2068617368416c676f726974686d29212c207765696768743a20776569676874290a097d0a7df90110b8aa7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227d9c7b2276616c7565223a2231222c2274797065223a2255496e7438227da97b2276616c7565223a22313030302e3030303030303030222c2274797065223a22554669783634227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "021c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003", + "hash": "1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f" }, { "title": "FA.03 - Remove Key", @@ -2570,7 +2570,7 @@ "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -2602,7 +2602,7 @@ ] }, "envelopeMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token path is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FungibleTokenMetadataViews from 0xf233dcee88fe0abe\n\n/// Can pass in any contract address and name to transfer a token from that contract\n/// This lets you choose the token you want to send\n///\n/// Any contract can be chosen here, so wallets should check argument values\n/// to make sure the intended token contract name and address is passed in\n///\ntransaction(amount: UFix64, to: Address, contractAddress: Address, contractName: String) {\n\n // The Vault resource that holds the tokens that are being transferred\n let tempVault: @{FungibleToken.Vault}\n\n // FTVaultData struct to get paths from\n let vaultData: FungibleTokenMetadataViews.FTVaultData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the vault stored on the passed account at the passed publicPath\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{FungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the fungible token contract\")\n\n // Use that reference to retrieve the FTView \n self.vaultData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! FungibleTokenMetadataViews.FTVaultData?\n ?? panic(\"Could not resolve the FTVaultData view for the given Fungible token contract\")\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.storage.borrow(from: self.vaultData.storagePath)\n\t\t\t?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n self.tempVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n let recipient = getAccount(to)\n let receiverRef = recipient.capabilities.borrow<&{FungibleToken.Receiver}>(self.vaultData.receiverPath)\n ?? panic(\"Could not borrow reference to the recipient's Receiver!\")\n\n // Transfer tokens from the signer's stored vault to the receiver capability\n receiverRef.deposit(from: <-self.tempVault)\n }\n}", "arguments": [ { "type": "UFix64", @@ -2634,17 +2634,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9092ff9092bb9082f696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e45472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", - "hash": "697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e4" + "encodedTransactionPayloadHex": "f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90944f90940b90844696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046756e6769626c65546f6b656e4d6574616461746156696577732066726f6d203078663233336463656538386665306162650a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d6520746f207472616e73666572206120746f6b656e2066726f6d207468617420636f6e74726163740a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e640a2f2f2f0a2f2f2f20416e7920636f6e74726163742063616e2062652063686f73656e20686572652c20736f2077616c6c6574732073686f756c6420636865636b20617267756d656e742076616c7565730a2f2f2f20746f206d616b6520737572652074686520696e74656e64656420746f6b656e20636f6e7472616374206e616d6520616e6420616464726573732069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a20416464726573732c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742074656d705661756c743a20407b46756e6769626c65546f6b656e2e5661756c747d0a0a202020202f2f2046545661756c74446174612073747275637420746f206765742070617468732066726f6d0a202020206c6574207661756c74446174613a2046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865207661756c742073746f726564206f6e2074686520706173736564206163636f756e742061742074686520706173736564207075626c6963506174680a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652066756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f2072657472696576652074686520465456696577200a202020202020202073656c662e7661756c7444617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c46756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613e282929206173212046756e6769626c65546f6b656e4d6574616461746156696577732e46545661756c74446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c7665207468652046545661756c7444617461207669657720666f722074686520676976656e2046756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e73746f726167652e626f72726f773c617574682846756e6769626c65546f6b656e2e57697468647261772920267b46756e6769626c65546f6b656e2e50726f76696465727d3e2866726f6d3a2073656c662e7661756c74446174612e73746f7261676550617468290a0909093f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a202020202020202073656c662e74656d705661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e7661756c74446174612e726563656976657250617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e7427732052656365697665722122290a0a20202020202020202f2f205472616e7366657220746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c7420746f20746865207265636569766572206361706162696c6974790a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e74656d705661756c74290a202020207d0a7df8b7b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da57b2276616c7565223a2246696174546f6b656e222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "020adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e6005472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003", + "hash": "d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e600" }, { "title": "NFT.01 - Setup NFT Collection", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -2668,7 +2668,7 @@ ] }, "envelopeMessage": { - "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", + "script": "/// This transaction is what an account would run\n/// to set itself up to receive NFTs. This function\n/// uses views to know where to set up the collection\n/// in storage and to create the empty collection.\n\nimport NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\ntransaction(contractAddress: Address, contractName: String) {\n\n prepare(signer: auth(IssueStorageCapabilityController, PublishCapability, SaveValue) &Account) {\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n let collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n // Create a new empty collections\n let emptyCollection <- collectionData.createEmptyCollection()\n\n // save it to the account\n signer.storage.save(<-emptyCollection, to: collectionData.storagePath)\n\n // create a public capability for the collection\n let collectionCap = signer.capabilities.storage.issue<&{NonFungibleToken.Collection}>(\n collectionData.storagePath\n )\n signer.capabilities.publish(collectionCap, at: collectionData.publicPath)\n }\n}\n", "arguments": [ { "type": "Address", @@ -2692,17 +2692,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f906d9f906d5b9063c2f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c5365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", - "hash": "1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c" + "encodedTransactionPayloadHex": "f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90702f906feb906652f2f2f2054686973207472616e73616374696f6e206973207768617420616e206163636f756e7420776f756c642072756e0a2f2f2f20746f2073657420697473656c6620757020746f2072656365697665204e4654732e20546869732066756e6374696f6e0a2f2f2f207573657320766965777320746f206b6e6f7720776865726520746f207365742075702074686520636f6c6c656374696f6e0a2f2f2f20696e2073746f7261676520616e6420746f206372656174652074686520656d70747920636f6c6c656374696f6e2e0a0a696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a7472616e73616374696f6e28636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a2020202070726570617265287369676e65723a206175746828497373756553746f726167654361706162696c697479436f6e74726f6c6c65722c205075626c6973684361706162696c6974792c205361766556616c75652920264163636f756e7429207b0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a20202020202020206c657420636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f204372656174652061206e657720656d70747920636f6c6c656374696f6e730a20202020202020206c657420656d707479436f6c6c656374696f6e203c2d20636f6c6c656374696f6e446174612e637265617465456d707479436f6c6c656374696f6e28290a0a20202020202020202f2f207361766520697420746f20746865206163636f756e740a20202020202020207369676e65722e73746f726167652e73617665283c2d656d707479436f6c6c656374696f6e2c20746f3a20636f6c6c656374696f6e446174612e73746f7261676550617468290a0a20202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e436170203d207369676e65722e6361706162696c69746965732e73746f726167652e69737375653c267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a20202020202020202020202020202020636f6c6c656374696f6e446174612e73746f72616765506174680a202020202020202020202020290a20202020202020207369676e65722e6361706162696c69746965732e7075626c69736828636f6c6c656374696f6e4361702c2061743a20636f6c6c656374696f6e446174612e7075626c696350617468290a202020207d0a7d0af854af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0254fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e766115365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001", + "hash": "a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e76611" }, { "title": "NFT.02 - Transfer NFT with Paths", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -2734,7 +2734,7 @@ ] }, "envelopeMessage": { - "script": "import 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\n\n/// Can pass in any storage path and receiver path instead of just the default.\n/// This lets you choose the token you want to send as well the capability you want to send it to.\n///\n/// Any token path can be passed as an argument here, so wallets should\n/// should check argument values to make sure the intended token path is passed in\n///\ntransaction(to: Address, id: UInt64, senderPathIdentifier: String, receiverPathIdentifier: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n let storagePath = StoragePath(identifier: senderPathIdentifier)\n ?? panic(\"Could not construct a storage path from the provided path identifier string\")\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n let publicPath = PublicPath(identifier: receiverPathIdentifier)\n ?? panic(\"Could not construct a public path from the provided path identifier string\")\n\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -2766,17 +2766,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9084db90760696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90851f9084db90760696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d1816582855472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", - "hash": "a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d181658285" + "encodedTransactionPayloadHex": "f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f907f0f907ecb906ff696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e792073746f72616765207061746820616e64207265636569766572207061746820696e7374656164206f66206a757374207468652064656661756c742e0a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e642061732077656c6c20746865206361706162696c69747920796f752077616e7420746f2073656e6420697420746f2e0a2f2f2f0a2f2f2f20416e7920746f6b656e20706174682063616e2062652070617373656420617320616e20617267756d656e7420686572652c20736f2077616c6c6574732073686f756c640a2f2f2f2073686f756c6420636865636b20617267756d656e742076616c75657320746f206d616b6520737572652074686520696e74656e64656420746f6b656e20706174682069732070617373656420696e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c2073656e646572506174684964656e7469666965723a20537472696e672c207265636569766572506174684964656e7469666965723a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020206c65742073746f7261676550617468203d2053746f7261676550617468286964656e7469666965723a2073656e646572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e73747275637420612073746f7261676520706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207075626c696350617468203d205075626c696350617468286964656e7469666965723a207265636569766572506174684964656e746966696572290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420636f6e7374727563742061207075626c696320706174682066726f6d207468652070726f76696465642070617468206964656e74696669657220737472696e6722290a0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e287075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a8af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daa7b2276616c7565223a22666c6f77546f6b656e5661756c74222c2274797065223a22537472696e67227dad7b2276616c7565223a22666c6f77546f6b656e5265636569766572222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd13655472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003", + "hash": "2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd1365" }, { "title": "NFT.03 - Transfer NFT with Address", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -2808,7 +2808,7 @@ ] }, "envelopeMessage": { - "script": "import 0x1d7e57aa55817448\nimport 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverCap = recipient.capabilities.get<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not get the recipient's Receiver Capability\")\n\n let receiverRef = receiverCap.borrow()\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport MetadataViews from 0x1d7e57aa55817448\n\n/// Can pass in any contract address and name\n/// This lets you choose the token you want to send because\n/// the transaction gets the metadata from the provided contract.\n///\ntransaction(to: Address, id: UInt64, contractAddress: Address, contractName: String) {\n\n // The NFT resource to be transferred\n let tempNFT: @{NonFungibleToken.NFT}\n\n // NFTCollectionData struct to get paths from\n let collectionData: MetadataViews.NFTCollectionData\n\n prepare(signer: auth(BorrowValue) &Account) {\n\n // Borrow a reference to the nft contract deployed to the passed account\n let resolverRef = getAccount(contractAddress)\n .contracts.borrow<&{NonFungibleToken}>(name: contractName)\n ?? panic(\"Could not borrow a reference to the non-fungible token contract\")\n\n // Use that reference to retrieve the NFTCollectionData view \n self.collectionData = resolverRef.resolveContractView(resourceType: nil, viewType: Type()) as! MetadataViews.NFTCollectionData?\n ?? panic(\"Could not resolve the NFTCollectionData view for the given non-fungible token contract\")\n\n\n // borrow a reference to the signer's NFT collection\n let withdrawRef = signer.storage.borrow(\n from: self.collectionData.storagePath\n ) ?? panic(\"Account does not store a collection object at the specified path\")\n\n self.tempNFT <- withdrawRef.withdraw(withdrawID: id)\n }\n\n execute {\n // get the recipients public account object\n let recipient = getAccount(to)\n\n // borrow a public reference to the receivers collection\n let receiverRef = recipient.capabilities.borrow<&{NonFungibleToken.Receiver}>(self.collectionData.publicPath)\n ?? panic(\"Could not borrow reference to the recipient's receiver\")\n\n // Deposit the NFT to the receiver\n receiverRef.deposit(token: <-self.tempNFT)\n }\n}", "arguments": [ { "type": "Address", @@ -2840,10 +2840,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096fb90887696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90973f9096fb90887696d706f7274203078316437653537616135353831373434380a696d706f7274203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572436170203d20726563697069656e742e6361706162696c69746965732e6765743c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74206765742074686520726563697069656e742773205265636569766572204361706162696c69747922290a0a20202020202020206c6574207265636569766572526566203d2072656365697665724361702e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c5472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", - "hash": "111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c" + "encodedTransactionPayloadHex": "f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90925f90921b90839696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f7274204d6574616461746156696577732066726f6d203078316437653537616135353831373434380a0a2f2f2f2043616e207061737320696e20616e7920636f6e7472616374206164647265737320616e64206e616d650a2f2f2f2054686973206c65747320796f752063686f6f73652074686520746f6b656e20796f752077616e7420746f2073656e6420626563617573650a2f2f2f20746865207472616e73616374696f6e206765747320746865206d657461646174612066726f6d207468652070726f766964656420636f6e74726163742e0a2f2f2f0a7472616e73616374696f6e28746f3a20416464726573732c2069643a2055496e7436342c20636f6e7472616374416464726573733a20416464726573732c20636f6e74726163744e616d653a20537472696e6729207b0a0a202020202f2f20546865204e4654207265736f7572636520746f206265207472616e736665727265640a202020206c65742074656d704e46543a20407b4e6f6e46756e6769626c65546f6b656e2e4e46547d0a0a202020202f2f204e4654436f6c6c656374696f6e446174612073747275637420746f206765742070617468732066726f6d0a202020206c657420636f6c6c656374696f6e446174613a204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174610a0a2020202070726570617265287369676e65723a206175746828426f72726f7756616c75652920264163636f756e7429207b0a0a20202020202020202f2f20426f72726f772061207265666572656e636520746f20746865206e667420636f6e7472616374206465706c6f79656420746f2074686520706173736564206163636f756e740a20202020202020206c6574207265736f6c766572526566203d206765744163636f756e7428636f6e747261637441646472657373290a2020202020202020202020202e636f6e7472616374732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e7d3e286e616d653a20636f6e74726163744e616d65290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20746865206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a20202020202020202f2f205573652074686174207265666572656e636520746f20726574726965766520746865204e4654436f6c6c656374696f6e446174612076696577200a202020202020202073656c662e636f6c6c656374696f6e44617461203d207265736f6c7665725265662e7265736f6c7665436f6e747261637456696577287265736f75726365547970653a206e696c2c2076696577547970653a20547970653c4d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613e28292920617321204d6574616461746156696577732e4e4654436f6c6c656374696f6e446174613f0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f74207265736f6c766520746865204e4654436f6c6c656374696f6e44617461207669657720666f722074686520676976656e206e6f6e2d66756e6769626c6520746f6b656e20636f6e747261637422290a0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207369676e65722773204e465420636f6c6c656374696f6e0a20202020202020206c6574207769746864726177526566203d207369676e65722e73746f726167652e626f72726f773c61757468284e6f6e46756e6769626c65546f6b656e2e57697468647261772920267b4e6f6e46756e6769626c65546f6b656e2e436f6c6c656374696f6e7d3e280a2020202020202020202020202020202066726f6d3a2073656c662e636f6c6c656374696f6e446174612e73746f72616765506174680a20202020202020202020202029203f3f2070616e696328224163636f756e7420646f6573206e6f742073746f7265206120636f6c6c656374696f6e206f626a6563742061742074686520737065636966696564207061746822290a0a202020202020202073656c662e74656d704e4654203c2d2077697468647261775265662e776974686472617728776974686472617749443a206964290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f206765742074686520726563697069656e7473207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20626f72726f772061207075626c6963207265666572656e636520746f207468652072656365697665727320636f6c6c656374696f6e0a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6361706162696c69746965732e626f72726f773c267b4e6f6e46756e6769626c65546f6b656e2e52656365697665727d3e2873656c662e636f6c6c656374696f6e446174612e7075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f2074686520726563697069656e74277320726563656976657222290a0a20202020202020202f2f204465706f73697420746865204e465420746f207468652072656365697665720a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e74656d704e4654290a202020207d0a7df8a3af7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2276616c7565223a223130222c2274797065223a2255496e743634227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da37b2276616c7565223a22546f7053686f74222c2274797065223a22537472696e67227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb55472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003", + "hash": "91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb5" }, { "title": "TH.01 - Withdraw Unlocked FLOW", @@ -4236,7 +4236,7 @@ "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -4260,7 +4260,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers accoount\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeStaker object from an authorizers account\n// and adds the NodeStaker to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeStaker object to must have a valid Staking Collection in order to receive the NodeStaker.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeStaker to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the receiver's account\")\n\n let machineAccountInfo = self.fromStakingCollectionRef.getMachineAccounts()[nodeID]\n ?? panic(\"Could not get machine account info for the specified node ID\")\n\n // Remove the NodeStaker from the authorizers StakingCollection.\n let nodeStaker <- self.fromStakingCollectionRef.removeNode(nodeID: nodeID)\n\n // Deposit the NodeStaker to the receivers StakingCollection.\n self.toStakingCollectionCap.addNodeObject(<- nodeStaker!, machineAccountInfo: machineAccountInfo)\n }\n}", "arguments": [ { "type": "String", @@ -4284,17 +4284,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90972f9096eb9089b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d05472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", - "hash": "38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d0" + "encodedTransactionPayloadHex": "f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90971f9096db9089a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee873578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c562795472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003", + "hash": "3578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c56279" }, { "title": "SCO.14 - Transfer Delegator", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -4322,7 +4322,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers accoount\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Transfers a NodeDelegator object from an authorizers account\n// and adds the NodeDelegator to another accounts Staking Collection\n// identified by the to Address.\n\ntransaction(nodeID: String, delegatorID: UInt32, to: Address) {\n let fromStakingCollectionRef: auth(FlowStakingCollection.CollectionOwner) &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection\n\n prepare(account: auth(BorrowValue) &Account) {\n // The account to transfer the NodeDelegator object to must have a valid Staking Collection in order to receive the NodeDelegator.\n if (!FlowStakingCollection.doesAccountHaveStakingCollection(address: to)) {\n panic(\"Destination account must have a Staking Collection set up.\")\n }\n\n // Get a reference to the authorizers StakingCollection\n self.fromStakingCollectionRef = account.storage.borrow(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow a reference to a StakingCollection in the primary user's account\")\n\n // Get the PublicAccount of the account to transfer the NodeDelegator to. \n let toAccount = getAccount(to)\n\n // Borrow a capability to the public methods available on the receivers StakingCollection.\n self.toStakingCollectionCap = toAccount.capabilities\n .borrow<&FlowStakingCollection.StakingCollection>(FlowStakingCollection.StakingCollectionPublicPath)\n ?? panic(\"Could not borrow a referamce to a StakingCollection in the receiver's account\")\n }\n\n execute {\n // Remove the NodeDelegator from the authorizers StakingCollection.\n let nodeDelegator <- self.fromStakingCollectionRef.removeDelegator(nodeID: nodeID, delegatorID: delegatorID)\n\n // Deposit the NodeDelegator to the receivers StakingCollection.\n self.toStakingCollectionCap.addDelegatorObject(<- nodeDelegator!)\n }\n}", "arguments": [ { "type": "String", @@ -4350,10 +4350,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9091ff9091bb90829696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc765472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", - "hash": "11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc76" + "encodedTransactionPayloadHex": "f9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9091ef9091ab90828696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a206175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a206175746828426f72726f7756616c75652920264163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e73746f726167652e626f72726f773c6175746828466c6f775374616b696e67436f6c6c656374696f6e2e436f6c6c656374696f6e4f776e6572292026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f2061205374616b696e67436f6c6c656374696f6e20696e20746865207072696d61727920757365722773206163636f756e7422290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6361706162696c69746965730a2020202020202020202020202e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572616d636520746f2061205374616b696e67436f6c6c656374696f6e20696e207468652072656365697665722773206163636f756e7422290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2276616c7565223a223432222c2274797065223a2255496e743332227daf7b2276616c7565223a22307865343637623964643131666130306466222c2274797065223a2241646472657373227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e0754689138c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc5472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", + "hash": "8c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc" }, { "title": "SCO.15 - Withdraw From Machine Account", diff --git a/transaction_metadata/txMerkleTree.js b/transaction_metadata/txMerkleTree.js index 974efc72..e82da320 100644 --- a/transaction_metadata/txMerkleTree.js +++ b/transaction_metadata/txMerkleTree.js @@ -1,25 +1,25 @@ export const merkleTree = { - "hash": "e5de7e03151b79a530f29806444d1764a0dbd4823ea38eb58144f2e551ef90d9", + "hash": "3b8a3f04a2eac7998ef3b7dac432f73ca08c296886daf146e42b3563543e5c49", "children": [ { - "hash": "e506b85f9d54a5f2f67017bfe350ae31b7b9d200c6b4164f6659beb593f2256d", + "hash": "f5b4f20ebf66048eb52e05e6d39c0ef0de46dbcb523de9cbec5a7431f35945f3", "children": [ { - "hash": "f094b3a6c716f144697dbe4b2ba5d2f1e2da984b2e80aa05a5590204c7e37d36", + "hash": "82137b013ac2531825cd65b4a28a7be556c1c369c8a87c24e161f5f8001b1194", "children": [ { - "hash": "1c5ca0bd6e2efe7b703bf5fb36929d0cc9c9d209c67785881dd3da4fd46aa205", + "hash": "6900ff3054ae4933c381d7d3e2d8b1b17b515b3d6b98e93d11f00acb9d359323", "children": [ { - "hash": "ba8d78ee5eb236b4e5dea4440ac6b87123d9fcf85e1b36b7e5a0d60f26e9d3a4", + "hash": "c43cfe541b0628a223d0b531ae1c92b537d22438fd19fd98ecf8b7759a56699c", "children": [ - "0263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" + "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" ] }, { - "hash": "8ffa9371ad7acc826d866ae38a8082382a7a6a78558514f038607e65b3d33cf7", + "hash": "85992afd3e94015265d19d9fc7c7cbe04e1a1496b2fd6473dcae0c6b404f77c8", "children": [ - "0221d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd921d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" + "021c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" ] }, { @@ -41,32 +41,32 @@ export const merkleTree = { ] }, { - "hash": "fbc32d80f4b63fdbe9b07c2a15429b1bb812ff354a39c55bbeec86092fbed3af", + "hash": "ed5b792d16451b6324d59a6b6f6ab264c64bf21ec79a2cfeff80026f4d8b1cd6", "children": [ - "02c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e45472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003" + "020adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e6005472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003" ] }, { - "hash": "13f49f212695702b7bb3c40e83a21965c8896a5b27f7ca5060e92f495e7a34dc", + "hash": "bbb61ffb9141077dae6f17074fd3164785f763786fcc663741c1c2d892db868b", "children": [ - "02d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c5365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001" + "0254fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e766115365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001" ] } ] }, { - "hash": "39c872ce2cd813b03467d6fe3c74171278be3a7672876f9054b46dd793918de3", + "hash": "210ce9329af66737c49065f854327f14587781dcde6e04cae8f62a1144734b04", "children": [ { - "hash": "f3b874e9ccb839c607b28a232f9a9f69f2a2ae3540b6d85db0dbd2b842cdbb40", + "hash": "e4728a6ea610bc9f6e6b7aa87be64cfaef2aa72ea95d7e2ffdf1732509aab0dc", "children": [ - "02f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d1816582855472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003" + "02db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd13655472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003" ] }, { - "hash": "ee52358d565de121f5102d6dfb184aba9865b5e2e3594c52844f864e74668a04", + "hash": "47df2ea839c7e2bf8aff9ed112a76c9eae83f9aa3f7dc574bdd4772e1a339712", "children": [ - "02b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c5472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003" + "02e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb55472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003" ] }, { @@ -149,18 +149,18 @@ export const merkleTree = { ] }, { - "hash": "4d3432718724a8c3b5de68f394c467169fa1c2294739685b87c6ae5b00a46817", + "hash": "f2070a3be507580f1c50209a1121e1c980d81c0dd51b8e55adc5b5ddafa97adc", "children": [ { - "hash": "5af37d69ebb4555dd0061c2ddde70a10dc7d2ad6fc991119306ac7a75d4ce815", + "hash": "1db501d2b5dda1232062fba4dd77bf1b3bd7d4366a6aaf74ccf406cf2caf7e0b", "children": [ - "02311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d05472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003" + "02a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee873578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c562795472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003" ] }, { - "hash": "148677d2ed1ff860d66107c9e10c5081a68ff06913cc132c883b09a9f7cb813f", + "hash": "acb03d0e42854eb5c740c44a11766c7b5da2a80f4019c31e1e9260f1db23ae5b", "children": [ - "02f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc765472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003" + "02135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e0754689138c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc5472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003" ] }, { @@ -2420,13 +2420,13 @@ export const merkleTree = { } export const merkleIndex = { - "63d8b6a045bf8e61": [ + "c4a7efd8708396e8": [ 0, 0, 0, 0 ], - "21d4e87df171ccbe": [ + "1c9d1210f2bf129b": [ 0, 0, 0, @@ -2462,49 +2462,49 @@ export const merkleIndex = { 0, 4 ], - "c1518742a95f9b49": [ + "0adc1ebe8246cf76": [ 0, 0, 0, 5 ], - "697ad2a90da93cbd": [ + "d8f826a451d80869": [ 0, 0, 0, 5 ], - "d9ef3b05f8b06d43": [ + "54fae25bb09f5a32": [ 0, 0, 0, 6 ], - "1d12c005fa7a0827": [ + "a25e07dea5eb6083": [ 0, 0, 0, 6 ], - "f08815a2f535512a": [ + "db0518029ca76e6f": [ 0, 0, 1, 0 ], - "a56eb0c3e6c3456e": [ + "2cb2cd6408a35f08": [ 0, 0, 1, 0 ], - "b7892b30d7a68531": [ + "e4b837ce4d30be9b": [ 0, 0, 1, 1 ], - "111142945f27d91b": [ + "91fd4533a93f55a7": [ 0, 0, 1, @@ -2654,25 +2654,25 @@ export const merkleIndex = { 2, 6 ], - "311f4071dda8b17a": [ + "a39eedbe19f252c2": [ 0, 0, 3, 0 ], - "38bfd23b200ecef4": [ + "3578c7f3b015df3a": [ 0, 0, 3, 0 ], - "f9fa239cb78b3e07": [ + "135df83060f854d4": [ 0, 0, 3, 1 ], - "11e2107d2ccd96cb": [ + "8c7b8460f11ae786": [ 0, 0, 3, diff --git a/transaction_metadata/txMerkleTree.mjs b/transaction_metadata/txMerkleTree.mjs index 974efc72..e82da320 100644 --- a/transaction_metadata/txMerkleTree.mjs +++ b/transaction_metadata/txMerkleTree.mjs @@ -1,25 +1,25 @@ export const merkleTree = { - "hash": "e5de7e03151b79a530f29806444d1764a0dbd4823ea38eb58144f2e551ef90d9", + "hash": "3b8a3f04a2eac7998ef3b7dac432f73ca08c296886daf146e42b3563543e5c49", "children": [ { - "hash": "e506b85f9d54a5f2f67017bfe350ae31b7b9d200c6b4164f6659beb593f2256d", + "hash": "f5b4f20ebf66048eb52e05e6d39c0ef0de46dbcb523de9cbec5a7431f35945f3", "children": [ { - "hash": "f094b3a6c716f144697dbe4b2ba5d2f1e2da984b2e80aa05a5590204c7e37d36", + "hash": "82137b013ac2531825cd65b4a28a7be556c1c369c8a87c24e161f5f8001b1194", "children": [ { - "hash": "1c5ca0bd6e2efe7b703bf5fb36929d0cc9c9d209c67785881dd3da4fd46aa205", + "hash": "6900ff3054ae4933c381d7d3e2d8b1b17b515b3d6b98e93d11f00acb9d359323", "children": [ { - "hash": "ba8d78ee5eb236b4e5dea4440ac6b87123d9fcf85e1b36b7e5a0d60f26e9d3a4", + "hash": "c43cfe541b0628a223d0b531ae1c92b537d22438fd19fd98ecf8b7759a56699c", "children": [ - "0263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" + "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" ] }, { - "hash": "8ffa9371ad7acc826d866ae38a8082382a7a6a78558514f038607e65b3d33cf7", + "hash": "85992afd3e94015265d19d9fc7c7cbe04e1a1496b2fd6473dcae0c6b404f77c8", "children": [ - "0221d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd921d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" + "021c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" ] }, { @@ -41,32 +41,32 @@ export const merkleTree = { ] }, { - "hash": "fbc32d80f4b63fdbe9b07c2a15429b1bb812ff354a39c55bbeec86092fbed3af", + "hash": "ed5b792d16451b6324d59a6b6f6ab264c64bf21ec79a2cfeff80026f4d8b1cd6", "children": [ - "02c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e45472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003" + "020adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e6005472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003" ] }, { - "hash": "13f49f212695702b7bb3c40e83a21965c8896a5b27f7ca5060e92f495e7a34dc", + "hash": "bbb61ffb9141077dae6f17074fd3164785f763786fcc663741c1c2d892db868b", "children": [ - "02d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c5365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001" + "0254fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e766115365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001" ] } ] }, { - "hash": "39c872ce2cd813b03467d6fe3c74171278be3a7672876f9054b46dd793918de3", + "hash": "210ce9329af66737c49065f854327f14587781dcde6e04cae8f62a1144734b04", "children": [ { - "hash": "f3b874e9ccb839c607b28a232f9a9f69f2a2ae3540b6d85db0dbd2b842cdbb40", + "hash": "e4728a6ea610bc9f6e6b7aa87be64cfaef2aa72ea95d7e2ffdf1732509aab0dc", "children": [ - "02f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d1816582855472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003" + "02db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd13655472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003" ] }, { - "hash": "ee52358d565de121f5102d6dfb184aba9865b5e2e3594c52844f864e74668a04", + "hash": "47df2ea839c7e2bf8aff9ed112a76c9eae83f9aa3f7dc574bdd4772e1a339712", "children": [ - "02b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c5472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003" + "02e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb55472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003" ] }, { @@ -149,18 +149,18 @@ export const merkleTree = { ] }, { - "hash": "4d3432718724a8c3b5de68f394c467169fa1c2294739685b87c6ae5b00a46817", + "hash": "f2070a3be507580f1c50209a1121e1c980d81c0dd51b8e55adc5b5ddafa97adc", "children": [ { - "hash": "5af37d69ebb4555dd0061c2ddde70a10dc7d2ad6fc991119306ac7a75d4ce815", + "hash": "1db501d2b5dda1232062fba4dd77bf1b3bd7d4366a6aaf74ccf406cf2caf7e0b", "children": [ - "02311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d05472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003" + "02a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee873578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c562795472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003" ] }, { - "hash": "148677d2ed1ff860d66107c9e10c5081a68ff06913cc132c883b09a9f7cb813f", + "hash": "acb03d0e42854eb5c740c44a11766c7b5da2a80f4019c31e1e9260f1db23ae5b", "children": [ - "02f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc765472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003" + "02135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e0754689138c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc5472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003" ] }, { @@ -2420,13 +2420,13 @@ export const merkleTree = { } export const merkleIndex = { - "63d8b6a045bf8e61": [ + "c4a7efd8708396e8": [ 0, 0, 0, 0 ], - "21d4e87df171ccbe": [ + "1c9d1210f2bf129b": [ 0, 0, 0, @@ -2462,49 +2462,49 @@ export const merkleIndex = { 0, 4 ], - "c1518742a95f9b49": [ + "0adc1ebe8246cf76": [ 0, 0, 0, 5 ], - "697ad2a90da93cbd": [ + "d8f826a451d80869": [ 0, 0, 0, 5 ], - "d9ef3b05f8b06d43": [ + "54fae25bb09f5a32": [ 0, 0, 0, 6 ], - "1d12c005fa7a0827": [ + "a25e07dea5eb6083": [ 0, 0, 0, 6 ], - "f08815a2f535512a": [ + "db0518029ca76e6f": [ 0, 0, 1, 0 ], - "a56eb0c3e6c3456e": [ + "2cb2cd6408a35f08": [ 0, 0, 1, 0 ], - "b7892b30d7a68531": [ + "e4b837ce4d30be9b": [ 0, 0, 1, 1 ], - "111142945f27d91b": [ + "91fd4533a93f55a7": [ 0, 0, 1, @@ -2654,25 +2654,25 @@ export const merkleIndex = { 2, 6 ], - "311f4071dda8b17a": [ + "a39eedbe19f252c2": [ 0, 0, 3, 0 ], - "38bfd23b200ecef4": [ + "3578c7f3b015df3a": [ 0, 0, 3, 0 ], - "f9fa239cb78b3e07": [ + "135df83060f854d4": [ 0, 0, 3, 1 ], - "11e2107d2ccd96cb": [ + "8c7b8460f11ae786": [ 0, 0, 3, diff --git a/transaction_metadata/txMerkleTree.py b/transaction_metadata/txMerkleTree.py index 3817d924..069e0973 100644 --- a/transaction_metadata/txMerkleTree.py +++ b/transaction_metadata/txMerkleTree.py @@ -1,26 +1,26 @@ # pylint: skip-file merkleTree = { - "hash": "e5de7e03151b79a530f29806444d1764a0dbd4823ea38eb58144f2e551ef90d9", + "hash": "3b8a3f04a2eac7998ef3b7dac432f73ca08c296886daf146e42b3563543e5c49", "children": [ { - "hash": "e506b85f9d54a5f2f67017bfe350ae31b7b9d200c6b4164f6659beb593f2256d", + "hash": "f5b4f20ebf66048eb52e05e6d39c0ef0de46dbcb523de9cbec5a7431f35945f3", "children": [ { - "hash": "f094b3a6c716f144697dbe4b2ba5d2f1e2da984b2e80aa05a5590204c7e37d36", + "hash": "82137b013ac2531825cd65b4a28a7be556c1c369c8a87c24e161f5f8001b1194", "children": [ { - "hash": "1c5ca0bd6e2efe7b703bf5fb36929d0cc9c9d209c67785881dd3da4fd46aa205", + "hash": "6900ff3054ae4933c381d7d3e2d8b1b17b515b3d6b98e93d11f00acb9d359323", "children": [ { - "hash": "ba8d78ee5eb236b4e5dea4440ac6b87123d9fcf85e1b36b7e5a0d60f26e9d3a4", + "hash": "c43cfe541b0628a223d0b531ae1c92b537d22438fd19fd98ecf8b7759a56699c", "children": [ - "0263d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba63d8b6a045bf8e6196198184db685c2cf22932503ccb2dcb85c7d2dc04c882ba437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" + "02c4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443cc4a7efd8708396e8c7a3611f72a9f89f675bf6d5c9336dd389e5839cba78443c437265617465204163636f756e740004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" ] }, { - "hash": "8ffa9371ad7acc826d866ae38a8082382a7a6a78558514f038607e65b3d33cf7", + "hash": "85992afd3e94015265d19d9fc7c7cbe04e1a1496b2fd6473dcae0c6b404f77c8", "children": [ - "0221d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd921d4e87df171ccbe015efe69dc2ffd24814c5fc0f2e364daf5c80515ce4a8bd9416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" + "021c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f1c9d1210f2bf129b86803b153e137420c9117e8a2409a1e2ef6f916a4e8d611f416464204b65790004045075626c6963204b65790000065369676e617475726520416c672e0001054861736820416c672e0002014b65792057656967687400035546697836340003" ] }, { @@ -42,32 +42,32 @@ ] }, { - "hash": "fbc32d80f4b63fdbe9b07c2a15429b1bb812ff354a39c55bbeec86092fbed3af", + "hash": "ed5b792d16451b6324d59a6b6f6ab264c64bf21ec79a2cfeff80026f4d8b1cd6", "children": [ - "02c1518742a95f9b49259abed8364b05d616ee8acebe123e9979f762b9e7522f93697ad2a90da93cbd02b7658f174c9c32e2016a574edb89cf24b57a8155c343e45472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003" + "020adc1ebe8246cf7656aefd9bf336f7f0c102a039e343776da61da4d6aa39aed2d8f826a451d808697ed3ce7908a080c05219df458e3e6cd4ccd073600c58e6005472616e736665722046756e6769626c6520546f6b656e20776974682041646472657373000401416d6f756e740000554669783634000301526563697069656e74000141646472657373000301465420436f6e74726163742041646472657373000241646472657373000304465420436f6e7472616374204e616d650003" ] }, { - "hash": "13f49f212695702b7bb3c40e83a21965c8896a5b27f7ca5060e92f495e7a34dc", + "hash": "bbb61ffb9141077dae6f17074fd3164785f763786fcc663741c1c2d892db868b", "children": [ - "02d9ef3b05f8b06d43c3a0ef4066e88e6248323c5f235f9a5d1f8a85d6e2bc9bfa1d12c005fa7a08277204e5d54e29b725c52b9e8e3dd6ff6e01f8d47d7be1626c5365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001" + "0254fae25bb09f5a324821b644890acbc5a356bcbe821218edeb18bd3042dcd333a25e07dea5eb608387d3766fd6ce0110491599a6d61a5e7e9afddd19a7e766115365747570204e465420436f6c6c656374696f6e0002014e465420436f6e747261637420416464726573730000416464726573730003044e465420436f6e7472616374204e616d650001" ] } ] }, { - "hash": "39c872ce2cd813b03467d6fe3c74171278be3a7672876f9054b46dd793918de3", + "hash": "210ce9329af66737c49065f854327f14587781dcde6e04cae8f62a1144734b04", "children": [ { - "hash": "f3b874e9ccb839c607b28a232f9a9f69f2a2ae3540b6d85db0dbd2b842cdbb40", + "hash": "e4728a6ea610bc9f6e6b7aa87be64cfaef2aa72ea95d7e2ffdf1732509aab0dc", "children": [ - "02f08815a2f535512a65e5c95c391dd6ff89662dad8fd68da836d11d0827a52bd4a56eb0c3e6c3456eee86d5cb62ddf700b0d1e5e65f12fe6926edd6d1816582855472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003" + "02db0518029ca76e6f2d8ec1517768b1d395523e87d11a4297197f98b53dc9cc2d2cb2cd6408a35f08b4f9b13e6e6b44d5325eb78a7a1eebb0e790ee285bdd13655472616e73666572204e46542077697468205061746873000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e74363400030453656e646572277320436f6c6c656374696f6e2050617468204964656e746966696572000204526563697069656e7427732052656365697665722050617468204964656e7469666965720003" ] }, { - "hash": "ee52358d565de121f5102d6dfb184aba9865b5e2e3594c52844f864e74668a04", + "hash": "47df2ea839c7e2bf8aff9ed112a76c9eae83f9aa3f7dc574bdd4772e1a339712", "children": [ - "02b7892b30d7a68531db8af3aa73eec7bf899bd039bc9883c4d0270e44c78cec30111142945f27d91bf3be630737805eba25d586b0c292bb3818e5d4cf4287e31c5472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003" + "02e4b837ce4d30be9bc74768085a0b43ba4d5edb3bed9c23c18b6a4de1024d459b91fd4533a93f55a756484958e5409b9666c85e4191e9ba6f5fb3587a973d4eb55472616e73666572204e465420776974682041646472657373000401526563697069656e740000416464726573730003014e465420494420746f205472616e73666572000155496e7436340003014e465420436f6e747261637420416464726573730002416464726573730003044e465420436f6e7472616374204e616d650003" ] }, { @@ -150,18 +150,18 @@ ] }, { - "hash": "4d3432718724a8c3b5de68f394c467169fa1c2294739685b87c6ae5b00a46817", + "hash": "f2070a3be507580f1c50209a1121e1c980d81c0dd51b8e55adc5b5ddafa97adc", "children": [ { - "hash": "5af37d69ebb4555dd0061c2ddde70a10dc7d2ad6fc991119306ac7a75d4ce815", + "hash": "1db501d2b5dda1232062fba4dd77bf1b3bd7d4366a6aaf74ccf406cf2caf7e0b", "children": [ - "02311f4071dda8b17ac6cbc6f0a27e98bd426026825d3c68308903fead884e616e38bfd23b200ecef4d13fa3c2ea998b51e6a24f3a8ceb260d2affab7c918a97d05472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003" + "02a39eedbe19f252c24ba2cc74aa70c0afd68b8d89528cad05a0a535e2f9c6ee873578c7f3b015df3a807dce45a0df262e79d95683cef20bd6247a8f1184c562795472616e73666572204e6f64650002044e6f6465204944000001416464726573730001416464726573730003" ] }, { - "hash": "148677d2ed1ff860d66107c9e10c5081a68ff06913cc132c883b09a9f7cb813f", + "hash": "acb03d0e42854eb5c740c44a11766c7b5da2a80f4019c31e1e9260f1db23ae5b", "children": [ - "02f9fa239cb78b3e07b8f8d56e173e2673b4b53aeb07d507a769c8d96eaf400b8d11e2107d2ccd96cb6b3fa3a704491dcd9e1736215137304e0494243c21befc765472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003" + "02135df83060f854d487030594e954e9642e4cf6accb5b5abbdf88a9e0754689138c7b8460f11ae786c207493eac35deaccb456a31f9df34ddecccad12685c61fc5472616e736665722044656c656761746f720003044e6f646520494400000144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003" ] }, { @@ -2421,13 +2421,13 @@ } merkleIndex = { - "63d8b6a045bf8e61": [ + "c4a7efd8708396e8": [ 0, 0, 0, 0 ], - "21d4e87df171ccbe": [ + "1c9d1210f2bf129b": [ 0, 0, 0, @@ -2463,49 +2463,49 @@ 0, 4 ], - "c1518742a95f9b49": [ + "0adc1ebe8246cf76": [ 0, 0, 0, 5 ], - "697ad2a90da93cbd": [ + "d8f826a451d80869": [ 0, 0, 0, 5 ], - "d9ef3b05f8b06d43": [ + "54fae25bb09f5a32": [ 0, 0, 0, 6 ], - "1d12c005fa7a0827": [ + "a25e07dea5eb6083": [ 0, 0, 0, 6 ], - "f08815a2f535512a": [ + "db0518029ca76e6f": [ 0, 0, 1, 0 ], - "a56eb0c3e6c3456e": [ + "2cb2cd6408a35f08": [ 0, 0, 1, 0 ], - "b7892b30d7a68531": [ + "e4b837ce4d30be9b": [ 0, 0, 1, 1 ], - "111142945f27d91b": [ + "91fd4533a93f55a7": [ 0, 0, 1, @@ -2655,25 +2655,25 @@ 2, 6 ], - "311f4071dda8b17a": [ + "a39eedbe19f252c2": [ 0, 0, 3, 0 ], - "38bfd23b200ecef4": [ + "3578c7f3b015df3a": [ 0, 0, 3, 0 ], - "f9fa239cb78b3e07": [ + "135df83060f854d4": [ 0, 0, 3, 1 ], - "11e2107d2ccd96cb": [ + "8c7b8460f11ae786": [ 0, 0, 3, diff --git a/transaction_metadata/usage.md b/transaction_metadata/usage.md index b963bb0e..41a94d24 100644 --- a/transaction_metadata/usage.md +++ b/transaction_metadata/usage.md @@ -10,11 +10,27 @@ cd .. ``` This produces -- `txMerkleTree.mjs` to be used in JS client. +- `txMerkleTree.js` to be used in JS client. +- `txMerkleTree.mjs` used by the second yarn command. - `txMerkleTree.py` to be used in Python client. - `testvectors/manifestPayloadCases.json` to be used in manifest tests. Further files may be used for testing purposes in the future. They were used by hard to maintain unit tests in C++ before. ``` cp txMerkleTree.py ../tests/application_client/ cp testvectors/manifestPayloadCases.json ../tests/ +cp txMerkleTree.js ../js/src ``` + +Depending on what you do with the JS sources, you may need to rebuild them. + +Finally, you need to enter the root hash from `txMerkleTree.* files` (it should be the same in all files) to merkleTreeRoot variable `../src/from tx_metadata.c` + +As the next step you need to fix speculos tests. +You will need to generate new snapshots for the speculos tests. + +You may probably need to fix some tests. Most notably `test_transaction_metadata_errors` and `test_transaction_slot`. +In the future we may jugde to add some fake transactions for testing into merkle tree to make the tests more stable. + +Similarly, js tests may need to fix script hash and expected APDU sequence. + +