diff --git a/src/parser_common.h b/src/parser_common.h index f949e66b..01b67673 100644 --- a/src/parser_common.h +++ b/src/parser_common.h @@ -22,14 +22,13 @@ extern "C" { #include #include -#define CHECK_PARSER_ERR(__CALL) \ - { \ - parser_error_t __err = __CALL; \ - CHECK_APP_CANARY() \ - if (__err != PARSER_OK) { \ - ZEMU_TRACE(); \ - return __err; \ - } \ +#define CHECK_PARSER_ERR(__CALL) \ + { \ + parser_error_t __err = __CALL; \ + CHECK_APP_CANARY() \ + if (__err != PARSER_OK) { \ + return __err; \ + } \ } #define CTX_CHECK_AND_ADVANCE(CTX, SIZE) \ diff --git a/src/parser_impl.c b/src/parser_impl.c index c7af20b1..333a2393 100644 --- a/src/parser_impl.c +++ b/src/parser_impl.c @@ -293,50 +293,6 @@ parser_error_t json_matchOptionalKeyValue(const parsed_json_t *parsedJson, return PARSER_UNEXPECTED_VALUE; } -// valueTokenIdx is JSON_MATCH_VALUE_IDX_NONE if the optional is null -parser_error_t json_matchOptionalArray(const parsed_json_t *parsedJson, - uint16_t tokenIdx, - uint16_t *valueTokenIdx) { - CHECK_PARSER_ERR(json_validateToken(parsedJson, tokenIdx)) - - if (!(tokenIdx + 4 < parsedJson->numberOfTokens)) { - // we need this token and 4 more - return PARSER_JSON_INVALID_TOKEN_IDX; - } - - if (parsedJson->tokens[tokenIdx].type != JSMN_OBJECT) { - return PARSER_UNEXPECTED_TYPE; - } - - if (parsedJson->tokens[tokenIdx].size != 2) { - return PARSER_UNEXPECTED_NUMBER_ITEMS; - } - - // Type key/value - CHECK_PARSER_ERR(json_matchToken(parsedJson, tokenIdx + 1, (char *) "type")) - CHECK_PARSER_ERR(json_matchToken(parsedJson, tokenIdx + 2, (char *) "Optional")) - CHECK_PARSER_ERR(json_matchToken(parsedJson, tokenIdx + 3, (char *) "value")) - if (parsedJson->tokens[tokenIdx + 4].type == JSMN_PRIMITIVE) { // optional null - CHECK_PARSER_ERR(json_matchNull(parsedJson, tokenIdx + 4)) - *valueTokenIdx = JSON_MATCH_VALUE_IDX_NONE; - return PARSER_OK; - } - if (parsedJson->tokens[tokenIdx + 4].type == JSMN_OBJECT) { // optional not null - if (!(tokenIdx + 8 < parsedJson->numberOfTokens)) { - return PARSER_JSON_INVALID_TOKEN_IDX; - } - CHECK_PARSER_ERR(json_matchToken(parsedJson, tokenIdx + 5, (char *) "type")) - CHECK_PARSER_ERR(json_matchToken(parsedJson, tokenIdx + 6, (char *) "Array")) - CHECK_PARSER_ERR(json_matchToken(parsedJson, tokenIdx + 7, (char *) "value")) - if (parsedJson->tokens[tokenIdx + 8].type == JSMN_ARRAY) { - *valueTokenIdx = tokenIdx + 8; - return PARSER_OK; - } - } - - return PARSER_UNEXPECTED_VALUE; -} - parser_error_t json_matchArbitraryKeyValue(const parsed_json_t *parsedJson, uint16_t tokenIdx, jsmntype_t *valueJsonType, @@ -393,8 +349,7 @@ parser_error_t formatStrUInt8AsHex(const char *decStr, char *hexStr) { return PARSER_OK; } -parser_error_t _readScript(parser_context_t *c, - flow_script_hash_t *s) { +parser_error_t _readScript(parser_context_t *c, flow_script_hash_t *s) { rlp_kind_e kind; parser_context_t script; uint32_t bytesConsumed; @@ -637,41 +592,6 @@ parser_error_t _countArgumentItems(const flow_argument_list_t *v, return PARSER_OK; } -// if Optional is null, number_of_items is set to 1 as one screen is needed to display "None" -parser_error_t _countArgumentOptionalItems(const flow_argument_list_t *v, - uint8_t argumentIndex, - uint8_t min_number_of_items, - uint8_t max_number_of_items, - uint8_t *number_of_items) { - *number_of_items = 0; - parsed_json_t parsedJson = {false}; - - if (argumentIndex >= v->argCount) { - return PARSER_UNEXPECTED_FIELD; - } - - const parser_context_t argCtx = v->argCtx[argumentIndex]; - CHECK_PARSER_ERR(json_parse(&parsedJson, (char *) argCtx.buffer, argCtx.bufferLen)); - - uint16_t internalTokenElementIdx; - CHECK_PARSER_ERR(json_matchOptionalArray(&parsedJson, 0, &internalTokenElementIdx)); - if (internalTokenElementIdx == JSON_MATCH_VALUE_IDX_NONE) { - *number_of_items = 1; - return PARSER_OK; - } - - // Get number of items - uint16_t arrayTokenCount; - CHECK_PARSER_ERR( - array_get_element_count(&parsedJson, internalTokenElementIdx, &arrayTokenCount)); - if (arrayTokenCount < min_number_of_items || arrayTokenCount > max_number_of_items) { - return PARSER_UNEXPECTED_NUMBER_ITEMS; - } - - *number_of_items = arrayTokenCount; - return PARSER_OK; -} - void checkAddressUsedInTx() { addressUsedInTx = 0; uint16_t authCount = parser_tx_obj.authorizers.authorizer_count; diff --git a/src/parser_impl.h b/src/parser_impl.h index 1829b458..b714464e 100644 --- a/src/parser_impl.h +++ b/src/parser_impl.h @@ -41,13 +41,6 @@ parser_error_t _countArgumentItems(const flow_argument_list_t *v, uint8_t max_number_of_items, uint8_t *number_of_items); -// Same as _countArgumentItems, but the array is optional. -parser_error_t _countArgumentOptionalItems(const flow_argument_list_t *v, - uint8_t argumentIndex, - uint8_t min_number_of_items, - uint8_t max_number_of_items, - uint8_t *number_of_items); - parser_error_t json_validateToken(const parsed_json_t *parsedJson, uint16_t tokenIdx); parser_error_t json_extractToken(char *outVal, @@ -74,10 +67,6 @@ parser_error_t json_matchOptionalKeyValue(const parsed_json_t *parsedJson, jsmntype_t jsonType, uint16_t *valueTokenIdx); -parser_error_t json_matchOptionalArray(const parsed_json_t *parsedJson, - uint16_t tokenIdx, - uint16_t *valueTokenIdx); - parser_error_t json_matchArbitraryKeyValue(const parsed_json_t *parsedJson, uint16_t tokenIdx, jsmntype_t *valueJsonType, diff --git a/src/parser_tx.c b/src/parser_tx.c index ba40c255..01decba7 100644 --- a/src/parser_tx.c +++ b/src/parser_tx.c @@ -41,9 +41,7 @@ #define MAX_JSON_ARRAY_TOKEN_COUNT 64 -parser_error_t parser_parse(parser_context_t *ctx, - const uint8_t *data, - size_t dataLen) { +parser_error_t parser_parse(parser_context_t *ctx, const uint8_t *data, size_t dataLen) { CHECK_PARSER_ERR(parser_init(ctx, data, dataLen)) return _read(ctx, &parser_tx_obj); } @@ -282,71 +280,6 @@ parser_error_t parser_printArgumentArray(const flow_argument_list_t *v, return PARSER_OK; } -parser_error_t parser_printArgumentOptionalArray(const flow_argument_list_t *v, - uint8_t argIndex, - uint8_t arrayIndex, - const char *expectedType, - jsmntype_t jsonType, - char *outVal, - uint16_t outValLen, - uint8_t pageIdx, - uint8_t *pageCount) { - MEMZERO(outVal, outValLen); - - if (argIndex >= v->argCount) { - return PARSER_UNEXPECTED_NUMBER_ITEMS; - } - - parsed_json_t parsedJson = {false}; - CHECK_PARSER_ERR(json_parse(&parsedJson, - (char *) v->argCtx[argIndex].buffer, - v->argCtx[argIndex].bufferLen)); - - // Estimate number of pages - uint16_t internalTokenElementIdx; - CHECK_PARSER_ERR(json_matchOptionalArray(&parsedJson, 0, &internalTokenElementIdx)); - if (internalTokenElementIdx == JSON_MATCH_VALUE_IDX_NONE) { - if (outValLen < 5) { - ZEMU_TRACE(); - return PARSER_UNEXPECTED_BUFFER_END; - } - *pageCount = 1; - strncpy_s(outVal, "None", 5); - } else { - uint16_t arrayTokenCount; - CHECK_PARSER_ERR( - array_get_element_count(&parsedJson, internalTokenElementIdx, &arrayTokenCount)); - if (arrayTokenCount >= MAX_JSON_ARRAY_TOKEN_COUNT || arrayIndex >= arrayTokenCount) { - ZEMU_TRACE(); - return PARSER_UNEXPECTED_NUMBER_ITEMS; - } - - uint16_t arrayElementToken; - char bufferUI[ARGUMENT_BUFFER_SIZE_STRING]; - CHECK_PARSER_ERR(array_get_nth_element(&parsedJson, - internalTokenElementIdx, - arrayIndex, - &arrayElementToken)) - uint16_t internalTokenElemIdx; - CHECK_PARSER_ERR(json_matchKeyValue(&parsedJson, - arrayElementToken, - expectedType, - jsonType, - &internalTokenElemIdx)) - CHECK_PARSER_ERR( - json_extractToken(bufferUI, sizeof(bufferUI), &parsedJson, internalTokenElemIdx)) - pageString(outVal, outValLen, bufferUI, pageIdx, pageCount); - - // Check requested page is in range - if (pageIdx > *pageCount) { - ZEMU_TRACE(); - return PARSER_DISPLAY_PAGE_OUT_OF_RANGE; - } - } - - return PARSER_OK; -} - #define FLAG_IS_NONE 0x1000 #define FLAG_IS_OPTIONAL_NOT_NONE 0x2000 #define FLAG_IS_ARRAY 0x4000 @@ -748,11 +681,11 @@ parser_error_t parser_getItem_internal(int8_t *displayIdx, SCREEN(true) { snprintf(outKey, outKeyLen, "Script hash"); pageStringHex(outVal, - outValLen, - (const char *) parser_tx_obj.hash.digest, - sizeof(parser_tx_obj.hash.digest), - pageIdx, - pageCount); + outValLen, + (const char *) parser_tx_obj.hash.digest, + sizeof(parser_tx_obj.hash.digest), + pageIdx, + pageCount); return PARSER_OK; } SCREEN(true) { @@ -828,28 +761,6 @@ parser_error_t parser_getItem_internal(int8_t *displayIdx, } } break; - case ARGUMENT_TYPE_OPTIONALARRAY: - zemu_log("Argument optional array\n"); - CHECK_PARSER_ERR(_countArgumentOptionalItems(&parser_tx_obj.arguments, - marg->argumentIndex, - marg->arrayMinElements, - marg->arrayMaxElements, - &screenCount)); - for (size_t j = 0; j < screenCount; j++) { - SCREEN(true) { - snprintf(outKey, outKeyLen, "%s %d", marg->displayKey, (int) (j + 1)); - return parser_printArgumentOptionalArray(&parser_tx_obj.arguments, - marg->argumentIndex, - j, - marg->jsonExpectedType, - marg->jsonExpectedKind, - outVal, - outValLen, - pageIdx, - pageCount); - } - } - break; default: return PARSER_METADATA_ERROR; } @@ -858,18 +769,18 @@ parser_error_t parser_getItem_internal(int8_t *displayIdx, SCREEN(true) { snprintf(outKey, outKeyLen, "Script arguments"); snprintf(outVal, - outValLen, - "Number of arguments: %d", - parser_tx_obj.arguments.argCount); + outValLen, + "Number of arguments: %d", + parser_tx_obj.arguments.argCount); return PARSER_OK; } for (size_t i = 0; i < parser_tx_obj.arguments.argCount; i++) { uint16_t flags = 0; uint16_t jsonToken = 0; CHECK_PARSER_ERR(parser_printArbitraryPrepareToDisplay(&parser_tx_obj.arguments, - i, - &flags, - &jsonToken)); + i, + &flags, + &jsonToken)); SCREEN(true) { return parser_printArbitraryArgumentFirstScreen(&parser_tx_obj.arguments, i, @@ -886,15 +797,15 @@ parser_error_t parser_getItem_internal(int8_t *displayIdx, for (size_t j = 0; j < (flags & FLAGS_FURTHER_SCREENS); j++) { SCREEN(true) { return parser_printArbitraryArrayElements(&parser_tx_obj.arguments, - i, - j, - jsonToken, - outKey, - outKeyLen, - outVal, - outValLen, - pageIdx, - pageCount); + i, + j, + jsonToken, + outKey, + outKeyLen, + outVal, + outValLen, + pageIdx, + pageCount); } } } diff --git a/src/parser_tx.h b/src/parser_tx.h index 109b3a14..f2c54724 100644 --- a/src/parser_tx.h +++ b/src/parser_tx.h @@ -27,9 +27,7 @@ extern "C" { const char *parser_getErrorDescription(parser_error_t err); //// parses a tx buffer -parser_error_t parser_parse(parser_context_t *ctx, - const uint8_t *data, - size_t dataLen); +parser_error_t parser_parse(parser_context_t *ctx, const uint8_t *data, size_t dataLen); //// verifies tx fields parser_error_t parser_validate(const parser_context_t *ctx); @@ -77,16 +75,6 @@ parser_error_t parser_printArgumentArray(const flow_argument_list_t *v, uint8_t pageIdx, uint8_t *pageCount); -parser_error_t parser_printArgumentOptionalArray(const flow_argument_list_t *v, - uint8_t argIndex, - uint8_t arrayIndex, - const char *expectedType, - jsmntype_t jsonType, - char *outVal, - uint16_t outValLen, - uint8_t pageIdx, - uint8_t *pageCount); - parser_error_t parser_printArbitraryPrepareToDisplay(const flow_argument_list_t *v, uint8_t argIndex, uint16_t *flags, diff --git a/src/tx_metadata.c b/src/tx_metadata.c index 7cbce1a9..59eb3f56 100644 --- a/src/tx_metadata.c +++ b/src/tx_metadata.c @@ -169,10 +169,14 @@ static parser_error_t parseTxMetadataInternal(const uint8_t scriptHash[METADATA_ _Static_assert(sizeof(parsedTxMetadata->arguments) >= PARSER_MAX_ARGCOUNT, "Too few arguments in parsed_tx_metadata_t."); for (int i = 0; i < parsedTxMetadata->argCount; i++) { - READ_CHAR(&parsedTxMetadata->arguments[i].argumentType); - argument_type_e argumentType = parsedTxMetadata->arguments[i].argumentType; - if (argumentType == ARGUMENT_TYPE_ARRAY || - argumentType == ARGUMENT_TYPE_OPTIONALARRAY) { + uint8_t argumentType = 0; + READ_CHAR(&argumentType); + if (argumentType != ARGUMENT_TYPE_NORMAL && argumentType != ARGUMENT_TYPE_OPTIONAL && + argumentType != ARGUMENT_TYPE_ARRAY) { + return PARSER_METADATA_ERROR; + } + parsedTxMetadata->arguments[i].argumentType = argumentType; + if (argumentType == ARGUMENT_TYPE_ARRAY) { READ_CHAR(&parsedTxMetadata->arguments[i].arrayMinElements); READ_CHAR(&parsedTxMetadata->arguments[i].arrayMaxElements); uint8_t min = parsedTxMetadata->arguments[i].arrayMinElements; diff --git a/src/tx_metadata.h b/src/tx_metadata.h index e3bccb92..067b8190 100644 --- a/src/tx_metadata.h +++ b/src/tx_metadata.h @@ -29,7 +29,6 @@ typedef enum { ARGUMENT_TYPE_NORMAL = 1, ARGUMENT_TYPE_OPTIONAL = 2, ARGUMENT_TYPE_ARRAY = 3, - ARGUMENT_TYPE_OPTIONALARRAY = 4 } argument_type_e; #define PARSER_MAX_ARGCOUNT 9 diff --git a/tests/manifestPayloadCases.json b/tests/manifestPayloadCases.json index b27df227..ff142996 100644 --- a/tests/manifestPayloadCases.json +++ b/tests/manifestPayloadCases.json @@ -1102,39 +1102,19 @@ "hash": "c26f69a33ead535e7d597cec4567c6c70170e86fd85ec708f5381e50d43871e2" }, { - "title": "SCO.03 - Register Node - 1", + "title": "SCO.04 - Create Machine Account - 1", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": null + "type": "Array", + "value": [] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1150,35 +1130,15 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": null + "type": "Array", + "value": [] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1194,48 +1154,30 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f907f3b90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90279b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f907f7f907f3b90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90279b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac468835265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec" + "encodedTransactionPayloadHex": "f904e2b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f904e6f904e2b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", + "hash": "e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9e" }, { - "title": "SCO.03 - Register Node - 2", + "title": "SCO.04 - Create Machine Account - 2", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [] - } + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1251,38 +1193,20 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [] - } + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1298,53 +1222,38 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9080ab90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90290b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db77b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9080ef9080ab90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90290b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db77b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac468835265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec" + "encodedTransactionPayloadHex": "f9058eb90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90592f9058eb90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", + "hash": "e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9e" }, { - "title": "SCO.03 - Register Node - 3", + "title": "SCO.04 - Create Machine Account - 3", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1360,43 +1269,28 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1412,61 +1306,29 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f908b5b90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af9033bb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db8e17b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f908b9f908b5b90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af9033bb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db8e17b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac468835265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec" + "encodedTransactionPayloadHex": "f906e5b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f906e9f906e5b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", + "hash": "e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9e" }, { - "title": "SCO.03 - Register Node - 4", + "title": "SCO.05 - Request Unstaking - 1", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "type": "Optional", + "value": null }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1482,51 +1344,19 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "type": "Optional", + "value": null }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1542,25 +1372,32 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90a0cb90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90492b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db902377b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90a10f90a0cb90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90492b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db902377b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac468835265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec" + "encodedTransactionPayloadHex": "f90399b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9039df90399b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c5265717565737420556e7374616b696e670003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71" }, { - "title": "SCO.04 - Create Machine Account - 1", + "title": "SCO.05 - Request Unstaking - 2", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Array", - "value": [] + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1576,15 +1413,22 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Array", - "value": [] + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1600,30 +1444,29 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f904e2b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f904e6f904e2b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", - "hash": "e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9e" + "encodedTransactionPayloadHex": "f903b4b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f903b8f903b4b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c5265717565737420556e7374616b696e670003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71" }, { - "title": "SCO.04 - Create Machine Account - 2", + "title": "SCO.06 - Stake New Tokens - 1", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] + "type": "Optional", + "value": null + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1639,20 +1482,19 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] + "type": "Optional", + "value": null + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1668,38 +1510,32 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9058eb90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90592f9058eb90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", - "hash": "e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9e" + "encodedTransactionPayloadHex": "f90415b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90419f90415b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "021307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b5374616b65204e657720546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "1307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c" }, { - "title": "SCO.04 - Create Machine Account - 3", + "title": "SCO.06 - Stake New Tokens - 2", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1715,28 +1551,22 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -1752,17 +1582,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f906e5b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f906e9f906e5b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", - "hash": "e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9e" + "encodedTransactionPayloadHex": "f90430b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90434f90430b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "021307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b5374616b65204e657720546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "1307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c" }, { - "title": "SCO.05 - Request Unstaking - 1", + "title": "SCO.07 - Stake Rewarded Tokens - 1", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -1790,7 +1620,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -1818,17 +1648,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90399b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9039df90399b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c5265717565737420556e7374616b696e670003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71" + "encodedTransactionPayloadHex": "f903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f903aef903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c405374616b6520526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62" }, { - "title": "SCO.05 - Request Unstaking - 2", + "title": "SCO.07 - Stake Rewarded Tokens - 2", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -1859,7 +1689,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -1890,17 +1720,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903b4b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f903b8f903b4b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c5265717565737420556e7374616b696e670003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71" + "encodedTransactionPayloadHex": "f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f903c9f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c405374616b6520526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62" }, { - "title": "SCO.06 - Stake New Tokens - 1", + "title": "SCO.08 - Stake Unstaked Tokens - 1", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -1928,7 +1758,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -1956,17 +1786,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90415b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90419f90415b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "021307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b5374616b65204e657720546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "1307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c" + "encodedTransactionPayloadHex": "f903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f903aef903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "023595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb5374616b6520556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "3595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec" }, { - "title": "SCO.06 - Stake New Tokens - 2", + "title": "SCO.08 - Stake Unstaked Tokens - 2", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -1997,7 +1827,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -2028,29 +1858,21 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90430b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90434f90430b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "021307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b5374616b65204e657720546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "1307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c" + "encodedTransactionPayloadHex": "f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f903c9f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "023595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb5374616b6520556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "3595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec" }, { - "title": "SCO.07 - Stake Rewarded Tokens - 1", + "title": "SCO.09 - Unstake All", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests to unstake ALL tokens for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.unstakeAll(nodeID: nodeID)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2066,19 +1888,11 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests to unstake ALL tokens for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.unstakeAll(nodeID: nodeID)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2094,17 +1908,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f903aef903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c405374616b6520526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62" + "encodedTransactionPayloadHex": "f902fdb9025a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320746f20756e7374616b6520414c4c20746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e756e7374616b65416c6c286e6f646549443a206e6f64654944290a202020207d0a7d0af85eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90301f902fdb9025a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320746f20756e7374616b6520414c4c20746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e756e7374616b65416c6c286e6f646549443a206e6f64654944290a202020207d0a7d0af85eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "020bde358f3965ba2f4c18fb45b6536857c3f53d7d3b740fe66fe93a4ebf7524c1df9c6486baa6f8f685368ea216659239cb81fa8ebd9062a9723edb54ca0d7525556e7374616b6520416c6c0001014e6f64652049440000537472696e670003", + "hash": "0bde358f3965ba2f4c18fb45b6536857c3f53d7d3b740fe66fe93a4ebf7524c1" }, { - "title": "SCO.07 - Stake Rewarded Tokens - 2", + "title": "SCO.10 - Withdraw Rewarded Tokens - 1", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -2135,7 +1949,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -2166,17 +1980,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f903c9f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c405374616b6520526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62" + "encodedTransactionPayloadHex": "f90466b90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9046af90466b90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "023af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299576974686472617720526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "3af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d" }, { - "title": "SCO.08 - Stake Unstaked Tokens - 1", + "title": "SCO.10 - Withdraw Rewarded Tokens - 2", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -2204,7 +2018,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -2232,17 +2046,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f903aef903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "023595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb5374616b6520556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "3595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec" + "encodedTransactionPayloadHex": "f9044bb90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9044ff9044bb90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "023af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299576974686472617720526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "3af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d" }, { - "title": "SCO.08 - Stake Unstaked Tokens - 2", + "title": "SCO.11 - Withdraw Unstaked Tokens - 1", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -2250,10 +2064,7 @@ }, { "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } + "value": null }, { "type": "UFix64", @@ -2273,7 +2084,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -2281,10 +2092,7 @@ }, { "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } + "value": null }, { "type": "UFix64", @@ -2304,21 +2112,32 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f903c9f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "023595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb5374616b6520556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "3595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec" + "encodedTransactionPayloadHex": "f9045ab90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9045ef9045ab90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "0268879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf06d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8576974686472617720556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "68879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf0" }, { - "title": "SCO.09 - Unstake All", + "title": "SCO.11 - Withdraw Unstaked Tokens - 2", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests to unstake ALL tokens for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.unstakeAll(nodeID: nodeID)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2334,11 +2153,22 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Requests to unstake ALL tokens for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.unstakeAll(nodeID: nodeID)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2354,17 +2184,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f902fdb9025a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320746f20756e7374616b6520414c4c20746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e756e7374616b65416c6c286e6f646549443a206e6f64654944290a202020207d0a7d0af85eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90301f902fdb9025a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20526571756573747320746f20756e7374616b6520414c4c20746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e756e7374616b65416c6c286e6f646549443a206e6f64654944290a202020207d0a7d0af85eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "020bde358f3965ba2f4c18fb45b6536857c3f53d7d3b740fe66fe93a4ebf7524c1df9c6486baa6f8f685368ea216659239cb81fa8ebd9062a9723edb54ca0d7525556e7374616b6520416c6c0001014e6f64652049440000537472696e670003", - "hash": "0bde358f3965ba2f4c18fb45b6536857c3f53d7d3b740fe66fe93a4ebf7524c1" + "encodedTransactionPayloadHex": "f90475b90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90479f90475b90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "0268879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf06d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8576974686472617720556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "68879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf0" }, { - "title": "SCO.10 - Withdraw Rewarded Tokens - 1", + "title": "SCO.12 - Close Stake - 1", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", "arguments": [ { "type": "String", @@ -2376,10 +2206,6 @@ "type": "UInt32", "value": "42" } - }, - { - "type": "UFix64", - "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2395,7 +2221,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", "arguments": [ { "type": "String", @@ -2407,10 +2233,6 @@ "type": "UInt32", "value": "42" } - }, - { - "type": "UFix64", - "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2426,17 +2248,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90466b90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9046af90466b90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "023af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299576974686472617720526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "3af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d" + "encodedTransactionPayloadHex": "f903cdb902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af89ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f903d1f903cdb902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af89ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884436c6f7365205374616b650002014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e7433320003", + "hash": "079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25" }, { - "title": "SCO.10 - Withdraw Rewarded Tokens - 2", + "title": "SCO.12 - Close Stake - 2", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", "arguments": [ { "type": "String", @@ -2445,10 +2267,6 @@ { "type": "Optional", "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2464,7 +2282,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", "arguments": [ { "type": "String", @@ -2473,10 +2291,6 @@ { "type": "Optional", "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2492,29 +2306,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9044bb90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9044ff9044bb90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "023af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299576974686472617720526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "3af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d" + "encodedTransactionPayloadHex": "f903b2b902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af87fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f903b6f903b2b902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af87fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884436c6f7365205374616b650002014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e7433320003", + "hash": "079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25" }, { - "title": "SCO.11 - Withdraw Unstaked Tokens - 1", + "title": "SCO.13 - Transfer Node", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "Address", + "value": "0x8c5303eaa26202d6" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2530,19 +2340,15 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "Address", + "value": "0x8c5303eaa26202d6" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2558,32 +2364,29 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9045ab90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9045ef9045ab90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0268879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf06d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8576974686472617720556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "68879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf0" + "encodedTransactionPayloadHex": "f90907b90834696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9090bf90907b90834696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "022386d7ae1a5b936e3914729ee34e01d53a8fbd2e403512ec1beccb4062c231ebcdc3a63d0c75ea95b414becb6fbb8f5a8004236d48661cd3c3d4f540ee4d422e5472616e73666572204e6f64650002014e6f64652049440000537472696e67000301416464726573730001416464726573730003", + "hash": "2386d7ae1a5b936e3914729ee34e01d53a8fbd2e403512ec1beccb4062c231eb" }, { - "title": "SCO.11 - Withdraw Unstaked Tokens - 2", + "title": "SCO.14 - Transfer Delegator", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } + "type": "UInt32", + "value": "42" }, { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "Address", + "value": "0x8c5303eaa26202d6" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2599,22 +2402,19 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } + "type": "UInt32", + "value": "42" }, { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "Address", + "value": "0x8c5303eaa26202d6" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2630,28 +2430,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90475b90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90479f90475b90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0268879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf06d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8576974686472617720556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "68879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf0" + "encodedTransactionPayloadHex": "f908b4b907c2696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2274797065223a2255496e743332222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f908b8f908b4b907c2696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2274797065223a2255496e743332222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "0253b096b4850a30894e7b272ec5c39e2b2f4a23f8c40e76a3c64cfc63dc2999b6b34d6fafcc5a4d0ed9cf92e168a08d0674c93341e2393ee72dde6664918ec2405472616e736665722044656c656761746f720003014e6f64652049440000537472696e6700030144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", + "hash": "53b096b4850a30894e7b272ec5c39e2b2f4a23f8c40e76a3c64cfc63dc2999b6" }, { - "title": "SCO.12 - Close Stake - 1", + "title": "SCO.15 - Withdraw From Machine Account", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw tokens from the machine account\n/// The tokens are automatically deposited to the unlocked account vault\n\ntransaction(nodeID: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawFromMachineAccount(nodeID: nodeID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2667,18 +2464,15 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw tokens from the machine account\n/// The tokens are automatically deposited to the unlocked account vault\n\ntransaction(nodeID: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawFromMachineAccount(nodeID: nodeID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2694,25 +2488,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903cdb902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af89ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f903d1f903cdb902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af89ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884436c6f7365205374616b650002014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e7433320003", - "hash": "079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25" + "encodedTransactionPayloadHex": "f9037eb902aa696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720746f6b656e732066726f6d20746865206d616368696e65206163636f756e740a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e776974686472617746726f6d4d616368696e654163636f756e74286e6f646549443a206e6f646549442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90382f9037eb902aa696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720746f6b656e732066726f6d20746865206d616368696e65206163636f756e740a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e776974686472617746726f6d4d616368696e654163636f756e74286e6f646549443a206e6f646549442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "0239a126038522c6c964d53aaf78dde55bfe80929091510792fe49678bb22cbd96f9c48e18bda7f113e82711a4c95dfd151c6600ed9fbf46ceb22566d6c5728c6f57697468647261772046726f6d204d616368696e65204163636f756e740002014e6f64652049440000537472696e67000301416d6f756e7400015546697836340003", + "hash": "39a126038522c6c964d53aaf78dde55bfe80929091510792fe49678bb22cbd96" }, { - "title": "SCO.12 - Close Stake - 2", + "title": "SCO.16 - Update Networking Address", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Changes the networking address for the specified node\n\ntransaction(nodeID: String, newAddress: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.updateNetworkingAddress(nodeID: nodeID, newAddress: newAddress)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": null + "type": "String", + "value": "flow-node.test:3569" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2728,15 +2522,15 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", + "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Changes the networking address for the specified node\n\ntransaction(nodeID: String, newAddress: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.updateNetworkingAddress(nodeID: nodeID, newAddress: newAddress)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": null + "type": "String", + "value": "flow-node.test:3569" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2752,27 +2546,18 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903b2b902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af87fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f903b6f903b2b902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af87fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884436c6f7365205374616b650002014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e7433320003", - "hash": "079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25" + "encodedTransactionPayloadHex": "f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90343f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "0260f2cf219d56b19dc7fd223caed42dda9143c87b1b0d2c21a9652e12a3714133ff067b40ac67020ef864cd14842f62023254da34dd2ded56affa1364305bf1c5557064617465204e6574776f726b696e6720416464726573730002014e6f64652049440000537472696e67000301416464726573730001537472696e670003", + "hash": "60f2cf219d56b19dc7fd223caed42dda9143c87b1b0d2c21a9652e12a3714133" }, { - "title": "SCO.13 - Transfer Node", + "title": "FUSD.01 - Setup FUSD Vault", "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Address", - "value": "0x8c5303eaa26202d6" - } - ], + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -2786,17 +2571,8 @@ ] }, "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Address", - "value": "0x8c5303eaa26202d6" - } - ], + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -2810,29 +2586,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90907b90834696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9090bf90907b90834696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "022386d7ae1a5b936e3914729ee34e01d53a8fbd2e403512ec1beccb4062c231ebcdc3a63d0c75ea95b414becb6fbb8f5a8004236d48661cd3c3d4f540ee4d422e5472616e73666572204e6f64650002014e6f64652049440000537472696e67000301416464726573730001416464726573730003", - "hash": "2386d7ae1a5b936e3914729ee34e01d53a8fbd2e403512ec1beccb4062c231eb" + "encodedTransactionPayloadHex": "f9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9057ef9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "020ffaf77ab320ce4cc9602d39b89c85f094ebcea571ed324537e703bc07b0fdc4aa7fecdf159e71bd0b029e40b22643fb443161e67796f42bac68e9bab4630e2953657475702046555344205661756c740000", + "hash": "0ffaf77ab320ce4cc9602d39b89c85f094ebcea571ed324537e703bc07b0fdc4" }, { - "title": "SCO.14 - Transfer Delegator", + "title": "FUSD.02 - Transfer FUSD", "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt32", - "value": "42" + "type": "UFix64", + "value": "92233720368.54775808" }, { "type": "Address", - "value": "0x8c5303eaa26202d6" + "value": "0xe467b9dd11fa00df" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2848,19 +2620,15 @@ ] }, "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt32", - "value": "42" + "type": "UFix64", + "value": "92233720368.54775808" }, { "type": "Address", - "value": "0x8c5303eaa26202d6" + "value": "0xe467b9dd11fa00df" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2876,27 +2644,18 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f908b4b907c2696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2274797065223a2255496e743332222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f908b8f908b4b907c2696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2274797065223a2255496e743332222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0253b096b4850a30894e7b272ec5c39e2b2f4a23f8c40e76a3c64cfc63dc2999b6b34d6fafcc5a4d0ed9cf92e168a08d0674c93341e2393ee72dde6664918ec2405472616e736665722044656c656761746f720003014e6f64652049440000537472696e6700030144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", - "hash": "53b096b4850a30894e7b272ec5c39e2b2f4a23f8c40e76a3c64cfc63dc2999b6" + "encodedTransactionPayloadHex": "f90759b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af861b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9075df90759b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af861b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02f22ca4b350a79c724f6471d5a6a7a0efa7ba9aeebb7fed2843a3ddd6e42c2e1c180cef7053a5f0ae66e19e3a96cc3b9eb7da29767fb5d6938239bf1f8e1dc2845472616e736665722046555344000201416d6f756e740000554669783634000301526563697069656e740001416464726573730003", + "hash": "f22ca4b350a79c724f6471d5a6a7a0efa7ba9aeebb7fed2843a3ddd6e42c2e1c" }, { - "title": "SCO.15 - Withdraw From Machine Account", + "title": "TS.01 - Set up Top Shot Collection", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw tokens from the machine account\n/// The tokens are automatically deposited to the unlocked account vault\n\ntransaction(nodeID: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawFromMachineAccount(nodeID: nodeID, amount: amount)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - } - ], + "script": "import TopShot from 0x877931736ee77cff\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -2910,17 +2669,8 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Request to withdraw tokens from the machine account\n/// The tokens are automatically deposited to the unlocked account vault\n\ntransaction(nodeID: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawFromMachineAccount(nodeID: nodeID, amount: amount)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - } - ], + "script": "import TopShot from 0x877931736ee77cff\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -2934,25 +2684,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9037eb902aa696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720746f6b656e732066726f6d20746865206d616368696e65206163636f756e740a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e776974686472617746726f6d4d616368696e654163636f756e74286e6f646549443a206e6f646549442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90382f9037eb902aa696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f205265717565737420746f20776974686472617720746f6b656e732066726f6d20746865206d616368696e65206163636f756e740a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e776974686472617746726f6d4d616368696e654163636f756e74286e6f646549443a206e6f646549442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0239a126038522c6c964d53aaf78dde55bfe80929091510792fe49678bb22cbd96f9c48e18bda7f113e82711a4c95dfd151c6600ed9fbf46ceb22566d6c5728c6f57697468647261772046726f6d204d616368696e65204163636f756e740002014e6f64652049440000537472696e67000301416d6f756e7400015546697836340003", - "hash": "39a126038522c6c964d53aaf78dde55bfe80929091510792fe49678bb22cbd96" + "encodedTransactionPayloadHex": "f90384b90340696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90388f90384b90340696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "020f0baeef9353ceee607c5be3b7c0f86792dadf20b9e9c89e831adb0199e758827511848f1c27a173d966f4b868fd7efead7eeb1bbf04fc3f3e60dabc6c7f759353657420757020546f702053686f7420436f6c6c656374696f6e0000", + "hash": "0f0baeef9353ceee607c5be3b7c0f86792dadf20b9e9c89e831adb0199e75882" }, { - "title": "SCO.16 - Update Networking Address", + "title": "TS.02 - Transfer Top Shot Moment", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Changes the networking address for the specified node\n\ntransaction(nodeID: String, newAddress: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.updateNetworkingAddress(nodeID: nodeID, newAddress: newAddress)\n }\n}\n", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport TopShot from 0x877931736ee77cff\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + "type": "Address", + "value": "0x8c5303eaa26202d6" }, { - "type": "String", - "value": "flow-node.test:3569" + "type": "UInt64", + "value": "42" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2968,15 +2718,15 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Changes the networking address for the specified node\n\ntransaction(nodeID: String, newAddress: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.updateNetworkingAddress(nodeID: nodeID, newAddress: newAddress)\n }\n}\n", + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport TopShot from 0x877931736ee77cff\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + "type": "Address", + "value": "0x8c5303eaa26202d6" }, { - "type": "String", - "value": "flow-node.test:3569" + "type": "UInt64", + "value": "42" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -2992,17 +2742,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90343f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0260f2cf219d56b19dc7fd223caed42dda9143c87b1b0d2c21a9652e12a3714133ff067b40ac67020ef864cd14842f62023254da34dd2ded56affa1364305bf1c5557064617465204e6574776f726b696e6720416464726573730002014e6f64652049440000537472696e67000301416464726573730001537472696e670003", - "hash": "60f2cf219d56b19dc7fd223caed42dda9143c87b1b0d2c21a9652e12a3714133" + "encodedTransactionPayloadHex": "f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84faf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2274797065223a2255496e743634222c2276616c7565223a223432227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90685f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84faf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2274797065223a2255496e743634222c2276616c7565223a223432227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "021ec9aea0b51409610f882f5ae4278567da675542bb378eb999f05b7c4f12f7d809d5ad21bf70dfe4f8d800db9e61a77f2f64837ae0e818c3cd67e9cea837a1cf5472616e7366657220546f702053686f74204d6f6d656e74000201526563697069656e740000416464726573730003014d6f6d656e74204944000155496e7436340003", + "hash": "1ec9aea0b51409610f882f5ae4278567da675542bb378eb999f05b7c4f12f7d8" }, { - "title": "FUSD.01 - Setup FUSD Vault", + "title": "USDC.01 - Setup USDC Vault", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FiatToken from 0x1ab3c177460e1e4a\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // Return early if the account already stores a FiatToken Vault\n if signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath) != nil {\n return\n }\n\n // Create a new ExampleToken Vault and put it in storage\n signer.save(\n <-FiatToken.createEmptyVault(),\n to: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FiatToken.Vault{FungibleToken.Receiver}>(\n FiatToken.VaultReceiverPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the UUID() function through the VaultUUID interface\n signer.link<&FiatToken.Vault{FiatToken.ResourceId}>(\n FiatToken.VaultUUIDPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FiatToken.Vault{FungibleToken.Balance}>(\n FiatToken.VaultBalancePubPath,\n target: FiatToken.VaultStoragePath\n )\n\n }\n}\n", "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, @@ -3017,7 +2767,7 @@ ] }, "envelopeMessage": { - "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FiatToken from 0x1ab3c177460e1e4a\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // Return early if the account already stores a FiatToken Vault\n if signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath) != nil {\n return\n }\n\n // Create a new ExampleToken Vault and put it in storage\n signer.save(\n <-FiatToken.createEmptyVault(),\n to: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FiatToken.Vault{FungibleToken.Receiver}>(\n FiatToken.VaultReceiverPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the UUID() function through the VaultUUID interface\n signer.link<&FiatToken.Vault{FiatToken.ResourceId}>(\n FiatToken.VaultUUIDPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FiatToken.Vault{FungibleToken.Balance}>(\n FiatToken.VaultBalancePubPath,\n target: FiatToken.VaultStoragePath\n )\n\n }\n}\n", "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, @@ -3032,25 +2782,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9057ef9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "020ffaf77ab320ce4cc9602d39b89c85f094ebcea571ed324537e703bc07b0fdc4aa7fecdf159e71bd0b029e40b22643fb443161e67796f42bac68e9bab4630e2953657475702046555344205661756c740000", - "hash": "0ffaf77ab320ce4cc9602d39b89c85f094ebcea571ed324537e703bc07b0fdc4" + "encodedTransactionPayloadHex": "f905b9b90575696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046696174546f6b656e2066726f6d203078316162336331373734363065316534610a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2052657475726e206561726c7920696620746865206163636f756e7420616c72656164792073746f72657320612046696174546f6b656e205661756c740a20202020202020206966207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f72616765506174682920213d206e696c207b0a20202020202020202020202072657475726e0a20202020202020207d0a0a20202020202020202f2f204372656174652061206e6577204578616d706c65546f6b656e205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665280a2020202020202020202020203c2d46696174546f6b656e2e637265617465456d7074795661756c7428292c0a202020202020202020202020746f3a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a20202020202020202020202046696174546f6b656e2e5661756c745265636569766572507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865205555494428292066756e6374696f6e207468726f75676820746865205661756c745555494420696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46696174546f6b656e2e5265736f7572636549647d3e280a20202020202020202020202046696174546f6b656e2e5661756c7455554944507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a20202020202020202020202046696174546f6b656e2e5661756c7442616c616e6365507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f905bdf905b9b90575696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046696174546f6b656e2066726f6d203078316162336331373734363065316534610a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2052657475726e206561726c7920696620746865206163636f756e7420616c72656164792073746f72657320612046696174546f6b656e205661756c740a20202020202020206966207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f72616765506174682920213d206e696c207b0a20202020202020202020202072657475726e0a20202020202020207d0a0a20202020202020202f2f204372656174652061206e6577204578616d706c65546f6b656e205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665280a2020202020202020202020203c2d46696174546f6b656e2e637265617465456d7074795661756c7428292c0a202020202020202020202020746f3a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a20202020202020202020202046696174546f6b656e2e5661756c745265636569766572507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865205555494428292066756e6374696f6e207468726f75676820746865205661756c745555494420696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46696174546f6b656e2e5265736f7572636549647d3e280a20202020202020202020202046696174546f6b656e2e5661756c7455554944507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a20202020202020202020202046696174546f6b656e2e5661756c7442616c616e6365507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "022defee818c0c003ca519f83517f4c7bcf9dd8664a562ec80959cb6146428f971887673892a2e2c12337394570dfa30c5669e93f537ae426690f402799514a9a153657475702055534443205661756c740000", + "hash": "2defee818c0c003ca519f83517f4c7bcf9dd8664a562ec80959cb6146428f971" }, { - "title": "FUSD.02 - Transfer FUSD", + "title": "USDC.02 - Transfer USDC", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FiatToken from 0x1ab3c177460e1e4a\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(FiatToken.VaultReceiverPubPath)\n .borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", "arguments": [ { "type": "UFix64", - "value": "92233720368.54775808" + "value": "42" }, { "type": "Address", - "value": "0xe467b9dd11fa00df" + "value": "0x8c5303eaa26202d6" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -3066,15 +2816,15 @@ ] }, "envelopeMessage": { - "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FiatToken from 0x1ab3c177460e1e4a\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(FiatToken.VaultReceiverPubPath)\n .borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", "arguments": [ { "type": "UFix64", - "value": "92233720368.54775808" + "value": "42" }, { "type": "Address", - "value": "0xe467b9dd11fa00df" + "value": "0x8c5303eaa26202d6" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -3090,18 +2840,27 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90759b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af861b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9075df90759b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af861b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02f22ca4b350a79c724f6471d5a6a7a0efa7ba9aeebb7fed2843a3ddd6e42c2e1c180cef7053a5f0ae66e19e3a96cc3b9eb7da29767fb5d6938239bf1f8e1dc2845472616e736665722046555344000201416d6f756e740000554669783634000301526563697069656e740001416464726573730003", - "hash": "f22ca4b350a79c724f6471d5a6a7a0efa7ba9aeebb7fed2843a3ddd6e42c2e1c" + "encodedTransactionPayloadHex": "f90503b9046f696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046696174546f6b656e2066726f6d203078316162336331373734363065316534610a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c6974792846696174546f6b656e2e5661756c74526563656976657250756250617468290a2020202020202020202020202e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af84f9e7b2274797065223a22554669783634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90507f90503b9046f696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046696174546f6b656e2066726f6d203078316162336331373734363065316534610a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c6974792846696174546f6b656e2e5661756c74526563656976657250756250617468290a2020202020202020202020202e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af84f9e7b2274797065223a22554669783634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "02512485ec3f8e007853b0ea2a22fb2b9f7e2fa55fd9819171c5d013282efee60a7ff4d9f53ba5eebda556d0ead0ca13911bc8996e2c91c5147f8787d10a3244835472616e736665722055534443000201416d6f756e740000554669783634000301526563697069656e740001416464726573730003", + "hash": "512485ec3f8e007853b0ea2a22fb2b9f7e2fa55fd9819171c5d013282efee60a" }, { - "title": "TS.01 - Set up Top Shot Collection", + "title": "SCO.04 - Create Machine Account - 1", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import TopShot from 0x877931736ee77cff\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", - "arguments": [], + "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "arguments": [ + { + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Array", + "value": [] + } + ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -3115,8 +2874,17 @@ ] }, "envelopeMessage": { - "script": "import TopShot from 0x877931736ee77cff\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", - "arguments": [], + "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "arguments": [ + { + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Array", + "value": [] + } + ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -3130,25 +2898,30 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90384b90340696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90388f90384b90340696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "020f0baeef9353ceee607c5be3b7c0f86792dadf20b9e9c89e831adb0199e758827511848f1c27a173d966f4b868fd7efead7eeb1bbf04fc3f3e60dabc6c7f759353657420757020546f702053686f7420436f6c6c656374696f6e0000", - "hash": "0f0baeef9353ceee607c5be3b7c0f86792dadf20b9e9c89e831adb0199e75882" + "encodedTransactionPayloadHex": "f90537b90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9053bf90537b90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "0286c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92dd3b327b09087ea7f8e92a22a6b04a3c6ca33b868b430c4f15f251658c38c1b7437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", + "hash": "86c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92" }, { - "title": "TS.02 - Transfer Top Shot Moment", + "title": "SCO.04 - Create Machine Account - 2", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport TopShot from 0x877931736ee77cff\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", + "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { - "type": "Address", - "value": "0x8c5303eaa26202d6" + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt64", - "value": "42" + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -3164,15 +2937,20 @@ ] }, "envelopeMessage": { - "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport TopShot from 0x877931736ee77cff\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", + "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { - "type": "Address", - "value": "0x8c5303eaa26202d6" + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt64", - "value": "42" + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -3188,18 +2966,40 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84faf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2274797065223a2255496e743634222c2276616c7565223a223432227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90685f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84faf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227d9e7b2274797065223a2255496e743634222c2276616c7565223a223432227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "021ec9aea0b51409610f882f5ae4278567da675542bb378eb999f05b7c4f12f7d809d5ad21bf70dfe4f8d800db9e61a77f2f64837ae0e818c3cd67e9cea837a1cf5472616e7366657220546f702053686f74204d6f6d656e74000201526563697069656e740000416464726573730003014d6f6d656e74204944000155496e7436340003", - "hash": "1ec9aea0b51409610f882f5ae4278567da675542bb378eb999f05b7c4f12f7d8" + "encodedTransactionPayloadHex": "f905e3b90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f905e7f905e3b90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "0286c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92dd3b327b09087ea7f8e92a22a6b04a3c6ca33b868b430c4f15f251658c38c1b7437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", + "hash": "86c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92" }, { - "title": "USDC.01 - Setup USDC Vault", + "title": "SCO.04 - Create Machine Account - 3", "valid": true, "chainID": "Testnet", "payloadMessage": { - "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FiatToken from 0x1ab3c177460e1e4a\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // Return early if the account already stores a FiatToken Vault\n if signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath) != nil {\n return\n }\n\n // Create a new ExampleToken Vault and put it in storage\n signer.save(\n <-FiatToken.createEmptyVault(),\n to: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FiatToken.Vault{FungibleToken.Receiver}>(\n FiatToken.VaultReceiverPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the UUID() function through the VaultUUID interface\n signer.link<&FiatToken.Vault{FiatToken.ResourceId}>(\n FiatToken.VaultUUIDPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FiatToken.Vault{FungibleToken.Balance}>(\n FiatToken.VaultBalancePubPath,\n target: FiatToken.VaultStoragePath\n )\n\n }\n}\n", - "arguments": [], + "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "arguments": [ + { + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] + } + ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -3213,40 +3013,28 @@ ] }, "envelopeMessage": { - "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FiatToken from 0x1ab3c177460e1e4a\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // Return early if the account already stores a FiatToken Vault\n if signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath) != nil {\n return\n }\n\n // Create a new ExampleToken Vault and put it in storage\n signer.save(\n <-FiatToken.createEmptyVault(),\n to: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FiatToken.Vault{FungibleToken.Receiver}>(\n FiatToken.VaultReceiverPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the UUID() function through the VaultUUID interface\n signer.link<&FiatToken.Vault{FiatToken.ResourceId}>(\n FiatToken.VaultUUIDPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FiatToken.Vault{FungibleToken.Balance}>(\n FiatToken.VaultBalancePubPath,\n target: FiatToken.VaultStoragePath\n )\n\n }\n}\n", - "arguments": [], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "99a8ac2c71d4f6bd", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "99a8ac2c71d4f6bd", - "authorizers": [ - "99a8ac2c71d4f6bd" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f905b9b90575696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046696174546f6b656e2066726f6d203078316162336331373734363065316534610a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2052657475726e206561726c7920696620746865206163636f756e7420616c72656164792073746f72657320612046696174546f6b656e205661756c740a20202020202020206966207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f72616765506174682920213d206e696c207b0a20202020202020202020202072657475726e0a20202020202020207d0a0a20202020202020202f2f204372656174652061206e6577204578616d706c65546f6b656e205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665280a2020202020202020202020203c2d46696174546f6b656e2e637265617465456d7074795661756c7428292c0a202020202020202020202020746f3a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a20202020202020202020202046696174546f6b656e2e5661756c745265636569766572507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865205555494428292066756e6374696f6e207468726f75676820746865205661756c745555494420696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46696174546f6b656e2e5265736f7572636549647d3e280a20202020202020202020202046696174546f6b656e2e5661756c7455554944507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a20202020202020202020202046696174546f6b656e2e5661756c7442616c616e6365507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f905bdf905b9b90575696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046696174546f6b656e2066726f6d203078316162336331373734363065316534610a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2052657475726e206561726c7920696620746865206163636f756e7420616c72656164792073746f72657320612046696174546f6b656e205661756c740a20202020202020206966207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f72616765506174682920213d206e696c207b0a20202020202020202020202072657475726e0a20202020202020207d0a0a20202020202020202f2f204372656174652061206e6577204578616d706c65546f6b656e205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665280a2020202020202020202020203c2d46696174546f6b656e2e637265617465456d7074795661756c7428292c0a202020202020202020202020746f3a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a20202020202020202020202046696174546f6b656e2e5661756c745265636569766572507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865205555494428292066756e6374696f6e207468726f75676820746865205661756c745555494420696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46696174546f6b656e2e5265736f7572636549647d3e280a20202020202020202020202046696174546f6b656e2e5661756c7455554944507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a20202020202020202020202046696174546f6b656e2e5661756c7442616c616e6365507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "022defee818c0c003ca519f83517f4c7bcf9dd8664a562ec80959cb6146428f971887673892a2e2c12337394570dfa30c5669e93f537ae426690f402799514a9a153657475702055534443205661756c740000", - "hash": "2defee818c0c003ca519f83517f4c7bcf9dd8664a562ec80959cb6146428f971" - }, - { - "title": "USDC.02 - Transfer USDC", - "valid": true, - "chainID": "Testnet", - "payloadMessage": { - "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FiatToken from 0x1ab3c177460e1e4a\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(FiatToken.VaultReceiverPubPath)\n .borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { - "type": "UFix64", - "value": "42" + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Address", - "value": "0x8c5303eaa26202d6" + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -3259,142 +3047,120 @@ "payer": "99a8ac2c71d4f6bd", "authorizers": [ "99a8ac2c71d4f6bd" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f9073ab90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9073ef9073ab90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", + "metadata": "0286c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92dd3b327b09087ea7f8e92a22a6b04a3c6ca33b868b430c4f15f251658c38c1b7437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", + "hash": "86c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92" + }, + { + "title": "TH.01 - Withdraw Unlocked FLOW", + "valid": true, + "chainID": "Mainnet", + "payloadMessage": { + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(acct: AuthAccount) {\n self.holderRef = acct.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow a reference to TokenHolder\")\n\n self.vaultRef = acct.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault ref\")\n }\n\n execute {\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" ] }, "envelopeMessage": { - "script": "import FungibleToken from 0x9a0766d93b6608b7\nimport FiatToken from 0x1ab3c177460e1e4a\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(FiatToken.VaultReceiverPubPath)\n .borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(acct: AuthAccount) {\n self.holderRef = acct.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow a reference to TokenHolder\")\n\n self.vaultRef = acct.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault ref\")\n }\n\n execute {\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", "arguments": [ { "type": "UFix64", - "value": "42" - }, - { - "type": "Address", - "value": "0x8c5303eaa26202d6" + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90503b9046f696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046696174546f6b656e2066726f6d203078316162336331373734363065316534610a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c6974792846696174546f6b656e2e5661756c74526563656976657250756250617468290a2020202020202020202020202e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af84f9e7b2274797065223a22554669783634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90507f90503b9046f696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f72742046696174546f6b656e2066726f6d203078316162336331373734363065316534610a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c6974792846696174546f6b656e2e5661756c74526563656976657250756250617468290a2020202020202020202020202e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af84f9e7b2274797065223a22554669783634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "02512485ec3f8e007853b0ea2a22fb2b9f7e2fa55fd9819171c5d013282efee60a7ff4d9f53ba5eebda556d0ead0ca13911bc8996e2c91c5147f8787d10a3244835472616e736665722055534443000201416d6f756e740000554669783634000301526563697069656e740001416464726573730003", - "hash": "512485ec3f8e007853b0ea2a22fb2b9f7e2fa55fd9819171c5d013282efee60a" + "encodedTransactionPayloadHex": "f90338b902c3696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d20616363742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d20616363742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c742072656622290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9033cf90338b902c3696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d20616363742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d20616363742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c742072656622290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "026e73db6edd0190f5311f6adc5f2b1f27e9e60c68574b00ee90da867da52cdbb1a2146e3e6e7718779ce59376b88760c154d82b7d132fe2c377114ec7cf434e7b576974686472617720556e6c6f636b656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "a2146e3e6e7718779ce59376b88760c154d82b7d132fe2c377114ec7cf434e7b" }, { - "title": "SCO.03 - Register Node - 1", + "title": "TH.02 - Deposit Unlocked FLOW", "valid": true, - "chainID": "Testnet", + "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(acct: AuthAccount) {\n self.holderRef = acct.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow a reference to TokenHolder\")\n\n self.vaultRef = acct.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault ref\")\n }\n\n execute {\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount))\n }\n}\n", "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": null } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ] }, "envelopeMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(acct: AuthAccount) {\n self.holderRef = acct.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow a reference to TokenHolder\")\n\n self.vaultRef = acct.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault ref\")\n }\n\n execute {\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount))\n }\n}\n", "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": null } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90849b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90279b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9084df90849b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90279b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "029246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b685265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "9246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a" + "encodedTransactionPayloadHex": "f90338b902c3696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d20616363742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d20616363742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c742072656622290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9033cf90338b902c3696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d20616363742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d20616363742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c742072656622290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "020cb11c10b86d2afeae086ef511d28b14760eb854935a0b0dcfeecc85db847f4874355dc8df221bc0d170b2fe8deacd6f1f554d6beea58ad9fee7a07f740eaefe4465706f73697420556e6c6f636b656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "74355dc8df221bc0d170b2fe8deacd6f1f554d6beea58ad9fee7a07f740eaefe" }, { - "title": "SCO.03 - Register Node - 2", + "title": "TH.06 - Register Node", "valid": true, - "chainID": "Testnet", + "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", + "script": "import FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(id: String, role: UInt8, networkingAddress: String, networkingKey: String, stakingKey: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow ref to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let nodeInfo = StakingProxy.NodeInfo(id: id, role: role, networkingAddress: networkingAddress, networkingKey: networkingKey, stakingKey: stakingKey)\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n \n }\n}\n", "arguments": [ { "type": "String", @@ -3419,29 +3185,22 @@ { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ] }, "envelopeMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", + "script": "import FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(id: String, role: UInt8, networkingAddress: String, networkingKey: String, stakingKey: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow ref to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let nodeInfo = StakingProxy.NodeInfo(id: id, role: role, networkingAddress: networkingAddress, networkingKey: networkingKey, stakingKey: stakingKey)\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n \n }\n}\n", "arguments": [ { "type": "String", @@ -3466,493 +3225,272 @@ { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90860b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90290b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db77b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90864f90860b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90290b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db77b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "029246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b685265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "9246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a" + "encodedTransactionPayloadHex": "f90826b90588696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e2869643a20537472696e672c20726f6c653a2055496e74382c206e6574776f726b696e67416464726573733a20537472696e672c206e6574776f726b696e674b65793a20537472696e672c207374616b696e674b65793a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574206e6f6465496e666f203d205374616b696e6750726f78792e4e6f6465496e666f2869643a2069642c20726f6c653a20726f6c652c206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c207374616b696e674b65793a207374616b696e674b6579290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a20202020202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a20202020202020200a202020207d0a7d0af90258b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9082af90826b90588696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e2869643a20537472696e672c20726f6c653a2055496e74382c206e6574776f726b696e67416464726573733a20537472696e672c206e6574776f726b696e674b65793a20537472696e672c207374616b696e674b65793a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574206e6f6465496e666f203d205374616b696e6750726f78792e4e6f6465496e666f2869643a2069642c20726f6c653a20726f6c652c206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c207374616b696e674b65793a207374616b696e674b6579290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a20202020202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a20202020202020200a202020207d0a7d0af90258b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02b6a3502d2205eb05ec18772c13b91cc88a056b325c2617c57948d38cab8db600b64e0e3ed9eb28789198f2b0437f55f750bfa76da99450f63be6543bde66122a5265676973746572204e6f64650006014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e7400055546697836340003", + "hash": "b64e0e3ed9eb28789198f2b0437f55f750bfa76da99450f63be6543bde66122a" }, { - "title": "SCO.03 - Register Node - 3", + "title": "TH.08 - Stake New Locked FLOW", "valid": true, - "chainID": "Testnet", + "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", + "script": "import FlowToken from 0x1654653399040a61\nimport FungibleToken from 0xf233dcee88fe0abe\n\nimport LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n stakerProxy.stakeNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n stakerProxy.stakeNewTokens(amount: amount)\n \n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ] }, "envelopeMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", + "script": "import FlowToken from 0x1654653399040a61\nimport FungibleToken from 0xf233dcee88fe0abe\n\nimport LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n stakerProxy.stakeNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n stakerProxy.stakeNewTokens(amount: amount)\n \n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9090bb9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af9033bb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db8e17b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9090ff9090bb9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af9033bb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db8e17b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "029246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b685265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "9246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a" + "encodedTransactionPayloadHex": "f9053eb904c9696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a0a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a2020202020202020202020207374616b657250726f78792e7374616b654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a2020202020202020202020207374616b657250726f78792e7374616b654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a2020202020202020202020200a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90542f9053eb904c9696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a0a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a2020202020202020202020207374616b657250726f78792e7374616b654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a2020202020202020202020207374616b657250726f78792e7374616b654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a2020202020202020202020200a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02d5689b89f53214e7ce9ba7be2bb651961f7e3036b85f9250494290da9e9ba9891929e4f38894b8641848a3c0a3b9d35495b35083d42e8a3d4c928b9db4174ee85374616b65204e6577204c6f636b656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "1929e4f38894b8641848a3c0a3b9d35495b35083d42e8a3d4c928b9db4174ee8" }, { - "title": "SCO.03 - Register Node - 4", + "title": "TH.09 - Re-stake Unstaked FLOW", "valid": true, - "chainID": "Testnet", + "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.stakeUnstakedTokens(amount: amount)\n }\n}\n", "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ] }, "envelopeMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.stakeUnstakedTokens(amount: amount)\n }\n}\n", "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90a62b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90492b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db902377b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f90a66f90a62b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90492b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db902377b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "029246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b685265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "9246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a" + "encodedTransactionPayloadHex": "f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7374616b65556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90281f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7374616b65556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0223e5bfd594bb3245090e3e0bafb9cb9246fc84d30e4a35a7fde1b51085624d86677cc0ac3962ec136ca26dbec0aa942d926640ecf8418433f0db4b7925f5d0fe52652d7374616b6520556e7374616b656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "677cc0ac3962ec136ca26dbec0aa942d926640ecf8418433f0db4b7925f5d0fe" }, { - "title": "SCO.04 - Create Machine Account - 1", + "title": "TH.10 - Re-stake Rewarded FLOW", "valid": true, - "chainID": "Testnet", + "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.stakeRewardedTokens(amount: amount)\n }\n}\n", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Array", - "value": [] + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ] }, "envelopeMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.stakeRewardedTokens(amount: amount)\n }\n}\n", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Array", - "value": [] + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90537b90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9053bf90537b90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0286c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92dd3b327b09087ea7f8e92a22a6b04a3c6ca33b868b430c4f15f251658c38c1b7437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", - "hash": "86c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92" + "encodedTransactionPayloadHex": "f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7374616b655265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90281f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7374616b655265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02239319825ad68178e76465b5ea18cb43f06c4ee11341f8fe9424809163a027a528d1719c5b21c88c62665db5ba04886809f3234c27057b057c36d5f265ee9de452652d7374616b6520526577617264656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "28d1719c5b21c88c62665db5ba04886809f3234c27057b057c36d5f265ee9de4" }, { - "title": "SCO.04 - Create Machine Account - 2", + "title": "TH.11 - Request Unstake of FLOW", "valid": true, - "chainID": "Testnet", + "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.requestUnstaking(amount: amount)\n }\n}\n", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ] }, "envelopeMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.requestUnstaking(amount: amount)\n }\n}\n", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f905e3b90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f905e7f905e3b90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0286c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92dd3b327b09087ea7f8e92a22a6b04a3c6ca33b868b430c4f15f251658c38c1b7437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", - "hash": "86c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92" + "encodedTransactionPayloadHex": "f9027ab90205696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e72657175657374556e7374616b696e6728616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9027ef9027ab90205696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e72657175657374556e7374616b696e6728616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0233e3977c45e7c23c1472bcf334d00b03ebf91b06b67c57b63b562c7b1ff5c59f4e2a35541453f89c55e5dc6dbc963290380d779c81df0b3bf89c29b2a8d7a9fe5265717565737420556e7374616b65206f6620464c4f57000101416d6f756e7400005546697836340003", + "hash": "4e2a35541453f89c55e5dc6dbc963290380d779c81df0b3bf89c29b2a8d7a9fe" }, { - "title": "SCO.04 - Create Machine Account - 3", + "title": "TH.12 - Unstake All FLOW", "valid": true, - "chainID": "Testnet", + "chainID": "Mainnet", "payloadMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } - ], + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction() {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.unstakeAll()\n }\n}\n", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ] }, "envelopeMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x95e019a17d0e23d7\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [Crypto.KeyListEntry]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } - ], + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction() {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.unstakeAll()\n }\n}\n", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { - "address": "99a8ac2c71d4f6bd", + "address": "f19c161bc24cf4b4", "keyId": 4, "sequenceNum": 10 }, - "payer": "99a8ac2c71d4f6bd", + "payer": "f19c161bc24cf4b4", "authorizers": [ - "99a8ac2c71d4f6bd" + "f19c161bc24cf4b4" ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9073ab90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", - "encodedTransactionEnvelopeHex": "f9073ef9073ab90478696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b657973207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0", - "metadata": "0286c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92dd3b327b09087ea7f8e92a22a6b04a3c6ca33b868b430c4f15f251658c38c1b7437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", - "hash": "86c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92" + "encodedTransactionPayloadHex": "f90227b901e3696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e2829207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e756e7374616b65416c6c28290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9022bf90227b901e3696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e2829207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e756e7374616b65416c6c28290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02f92c4cd663b2e335cd821a656bb2ebcf239b222036a7825af5e512fad4d820357099904b953b062e81e2575a2c2081b3d98bfccf5c743b4bdb224b937e292dad556e7374616b6520416c6c20464c4f570000", + "hash": "7099904b953b062e81e2575a2c2081b3d98bfccf5c743b4bdb224b937e292dad" }, { - "title": "TH.01 - Withdraw Unlocked FLOW", + "title": "TH.13 - Withdraw Unstaked FLOW", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(acct: AuthAccount) {\n self.holderRef = acct.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow a reference to TokenHolder\")\n\n self.vaultRef = acct.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault ref\")\n }\n\n execute {\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.withdrawUnstakedTokens(amount: amount)\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -3972,7 +3510,7 @@ ] }, "envelopeMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(acct: AuthAccount) {\n self.holderRef = acct.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow a reference to TokenHolder\")\n\n self.vaultRef = acct.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault ref\")\n }\n\n execute {\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.withdrawUnstakedTokens(amount: amount)\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -3992,17 +3530,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90338b902c3696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d20616363742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d20616363742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c742072656622290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9033cf90338b902c3696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d20616363742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d20616363742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c742072656622290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "026e73db6edd0190f5311f6adc5f2b1f27e9e60c68574b00ee90da867da52cdbb1a2146e3e6e7718779ce59376b88760c154d82b7d132fe2c377114ec7cf434e7b576974686472617720556e6c6f636b656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "a2146e3e6e7718779ce59376b88760c154d82b7d132fe2c377114ec7cf434e7b" + "encodedTransactionPayloadHex": "f90280b9020b696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7769746864726177556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90284f90280b9020b696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7769746864726177556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0290097e3aff9b67f65bbada3cdedbb73d45d093ff333aaaff38809bf9910a3e39dcae4faa6d689873f7caf7c5efef669f9fe1d4113e58b474b7aec1e07113a7ff576974686472617720556e7374616b656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "dcae4faa6d689873f7caf7c5efef669f9fe1d4113e58b474b7aec1e07113a7ff" }, { - "title": "TH.02 - Deposit Unlocked FLOW", + "title": "TH.14 - Withdraw Rewarded FLOW", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(acct: AuthAccount) {\n self.holderRef = acct.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow a reference to TokenHolder\")\n\n self.vaultRef = acct.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault ref\")\n }\n\n execute {\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount))\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport FlowToken from 0x1654653399040a61\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow reference to FlowToken value\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.withdrawRewardedTokens(amount: amount)\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4022,7 +3560,7 @@ ] }, "envelopeMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(acct: AuthAccount) {\n self.holderRef = acct.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow a reference to TokenHolder\")\n\n self.vaultRef = acct.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault ref\")\n }\n\n execute {\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount))\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport FlowToken from 0x1654653399040a61\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow reference to FlowToken value\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.withdrawRewardedTokens(amount: amount)\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4042,37 +3580,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90338b902c3696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d20616363742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d20616363742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c742072656622290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9033cf90338b902c3696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d20616363742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d20616363742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c742072656622290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "020cb11c10b86d2afeae086ef511d28b14760eb854935a0b0dcfeecc85db847f4874355dc8df221bc0d170b2fe8deacd6f1f554d6beea58ad9fee7a07f740eaefe4465706f73697420556e6c6f636b656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "74355dc8df221bc0d170b2fe8deacd6f1f554d6beea58ad9fee7a07f740eaefe" + "encodedTransactionPayloadHex": "f9038eb90319696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20466c6f77546f6b656e2076616c756522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e77697468647261775265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90392f9038eb90319696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20466c6f77546f6b656e2076616c756522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e77697468647261775265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02f23406ff402f02418629432912ce732be0441b1a7e71f16c03d688a165ff7f499bb8f0562eea5e45c11f9289540f39c99a21c9a0fb060a7d3f832e98c2696f2d576974686472617720526577617264656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "9bb8f0562eea5e45c11f9289540f39c99a21c9a0fb060a7d3f832e98c2696f2d" }, { - "title": "TH.06 - Register Node", + "title": "TH.16 - Register Operator Node", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(id: String, role: UInt8, networkingAddress: String, networkingKey: String, stakingKey: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow ref to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let nodeInfo = StakingProxy.NodeInfo(id: id, role: role, networkingAddress: networkingAddress, networkingKey: networkingKey, stakingKey: stakingKey)\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n \n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(address: Address, id: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let nodeOperatorRef = getAccount(address).getCapability\n <&StakingProxy.NodeStakerProxyHolder{StakingProxy.NodeStakerProxyHolderPublic}>\n (StakingProxy.NodeOperatorCapabilityPublicPath)!.borrow() \n ?? panic(\"Could not borrow node operator public capability\")\n\n let nodeInfo = nodeOperatorRef.getNodeInfo(nodeID: id)\n ?? panic(\"Couldn't get info for nodeID=\".concat(id))\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n let nodeStakerProxy = self.holderRef.borrowStaker()\n\n nodeOperatorRef.addStakingProxy(nodeID: nodeInfo.id, proxy: nodeStakerProxy)\n }\n}\n", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" + "type": "Address", + "value": "0xe467b9dd11fa00df" }, { "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { "type": "UFix64", @@ -4092,27 +3618,15 @@ ] }, "envelopeMessage": { - "script": "import FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(id: String, role: UInt8, networkingAddress: String, networkingKey: String, stakingKey: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow ref to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let nodeInfo = StakingProxy.NodeInfo(id: id, role: role, networkingAddress: networkingAddress, networkingKey: networkingKey, stakingKey: stakingKey)\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n \n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(address: Address, id: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let nodeOperatorRef = getAccount(address).getCapability\n <&StakingProxy.NodeStakerProxyHolder{StakingProxy.NodeStakerProxyHolderPublic}>\n (StakingProxy.NodeOperatorCapabilityPublicPath)!.borrow() \n ?? panic(\"Could not borrow node operator public capability\")\n\n let nodeInfo = nodeOperatorRef.getNodeInfo(nodeID: id)\n ?? panic(\"Couldn't get info for nodeID=\".concat(id))\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n let nodeStakerProxy = self.holderRef.borrowStaker()\n\n nodeOperatorRef.addStakingProxy(nodeID: nodeInfo.id, proxy: nodeStakerProxy)\n }\n}\n", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" + "type": "Address", + "value": "0xe467b9dd11fa00df" }, { "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { "type": "UFix64", @@ -4132,18 +3646,22 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90826b90588696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e2869643a20537472696e672c20726f6c653a2055496e74382c206e6574776f726b696e67416464726573733a20537472696e672c206e6574776f726b696e674b65793a20537472696e672c207374616b696e674b65793a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574206e6f6465496e666f203d205374616b696e6750726f78792e4e6f6465496e666f2869643a2069642c20726f6c653a20726f6c652c206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c207374616b696e674b65793a207374616b696e674b6579290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a20202020202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a20202020202020200a202020207d0a7d0af90258b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9082af90826b90588696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e2869643a20537472696e672c20726f6c653a2055496e74382c206e6574776f726b696e67416464726573733a20537472696e672c206e6574776f726b696e674b65793a20537472696e672c207374616b696e674b65793a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574206e6f6465496e666f203d205374616b696e6750726f78792e4e6f6465496e666f2869643a2069642c20726f6c653a20726f6c652c206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c207374616b696e674b65793a207374616b696e674b6579290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a20202020202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a20202020202020200a202020207d0a7d0af90258b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02b6a3502d2205eb05ec18772c13b91cc88a056b325c2617c57948d38cab8db600b64e0e3ed9eb28789198f2b0437f55f750bfa76da99450f63be6543bde66122a5265676973746572204e6f64650006014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e7400055546697836340003", - "hash": "b64e0e3ed9eb28789198f2b0437f55f750bfa76da99450f63be6543bde66122a" + "encodedTransactionPayloadHex": "f90546b90442696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616464726573733a20416464726573732c2069643a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574206e6f64654f70657261746f72526566203d206765744163636f756e742861646472657373292e6765744361706162696c6974790a2020202020202020202020203c265374616b696e6750726f78792e4e6f64655374616b657250726f7879486f6c6465727b5374616b696e6750726f78792e4e6f64655374616b657250726f7879486f6c6465725075626c69637d3e0a202020202020202020202020285374616b696e6750726f78792e4e6f64654f70657261746f724361706162696c6974795075626c69635061746829212e626f72726f772829200a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77206e6f6465206f70657261746f72207075626c6963206361706162696c69747922290a0a20202020202020206c6574206e6f6465496e666f203d206e6f64654f70657261746f725265662e6765744e6f6465496e666f286e6f646549443a206964290a2020202020202020202020203f3f2070616e69632822436f756c646e27742067657420696e666f20666f72206e6f646549443d222e636f6e63617428696429290a0a202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020206c6574206e6f64655374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020206e6f64654f70657261746f725265662e6164645374616b696e6750726f7879286e6f646549443a206e6f6465496e666f2e69642c2070726f78793a206e6f64655374616b657250726f7879290a202020207d0a7d0af8bfaf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227db85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9054af90546b90442696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616464726573733a20416464726573732c2069643a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574206e6f64654f70657261746f72526566203d206765744163636f756e742861646472657373292e6765744361706162696c6974790a2020202020202020202020203c265374616b696e6750726f78792e4e6f64655374616b657250726f7879486f6c6465727b5374616b696e6750726f78792e4e6f64655374616b657250726f7879486f6c6465725075626c69637d3e0a202020202020202020202020285374616b696e6750726f78792e4e6f64654f70657261746f724361706162696c6974795075626c69635061746829212e626f72726f772829200a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77206e6f6465206f70657261746f72207075626c6963206361706162696c69747922290a0a20202020202020206c6574206e6f6465496e666f203d206e6f64654f70657261746f725265662e6765744e6f6465496e666f286e6f646549443a206964290a2020202020202020202020203f3f2070616e69632822436f756c646e27742067657420696e666f20666f72206e6f646549443d222e636f6e63617428696429290a0a202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020206c6574206e6f64655374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020206e6f64654f70657261746f725265662e6164645374616b696e6750726f7879286e6f646549443a206e6f6465496e666f2e69642c2070726f78793a206e6f64655374616b657250726f7879290a202020207d0a7d0af8bfaf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227db85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02c29d4024aaeb71ab478182542499e0ba3d5d303ec027252e3b8333515ee3de4897b3436482c5aefc1baf8b850e92c829202e468c57241dec707b6c27bd89d15c5265676973746572204f70657261746f72204e6f64650003014f70657261746f7220416464726573730000416464726573730003014e6f64652049440001537472696e67000301416d6f756e7400025546697836340003", + "hash": "97b3436482c5aefc1baf8b850e92c829202e468c57241dec707b6c27bd89d15c" }, { - "title": "TH.08 - Stake New Locked FLOW", + "title": "TH.17 - Register Delegator", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowToken from 0x1654653399040a61\nimport FungibleToken from 0xf233dcee88fe0abe\n\nimport LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n stakerProxy.stakeNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n stakerProxy.stakeNewTokens(amount: amount)\n \n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", + "script": "import FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(id: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n self.holderRef.createNodeDelegator(nodeID: id)\n\n let delegatorProxy = self.holderRef.borrowDelegator()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n delegatorProxy.delegateNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n delegatorProxy.delegateNewTokens(amount: amount)\n\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", "arguments": [ + { + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, { "type": "UFix64", "value": "92233720368.54775808" @@ -4162,8 +3680,12 @@ ] }, "envelopeMessage": { - "script": "import FlowToken from 0x1654653399040a61\nimport FungibleToken from 0xf233dcee88fe0abe\n\nimport LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n stakerProxy.stakeNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n stakerProxy.stakeNewTokens(amount: amount)\n \n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", + "script": "import FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(id: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n self.holderRef.createNodeDelegator(nodeID: id)\n\n let delegatorProxy = self.holderRef.borrowDelegator()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n delegatorProxy.delegateNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n delegatorProxy.delegateNewTokens(amount: amount)\n\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", "arguments": [ + { + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, { "type": "UFix64", "value": "92233720368.54775808" @@ -4182,17 +3704,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9053eb904c9696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a0a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a2020202020202020202020207374616b657250726f78792e7374616b654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a2020202020202020202020207374616b657250726f78792e7374616b654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a2020202020202020202020200a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90542f9053eb904c9696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a0a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a2020202020202020202020207374616b657250726f78792e7374616b654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a2020202020202020202020207374616b657250726f78792e7374616b654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a2020202020202020202020200a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02d5689b89f53214e7ce9ba7be2bb651961f7e3036b85f9250494290da9e9ba9891929e4f38894b8641848a3c0a3b9d35495b35083d42e8a3d4c928b9db4174ee85374616b65204e6577204c6f636b656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "1929e4f38894b8641848a3c0a3b9d35495b35083d42e8a3d4c928b9db4174ee8" + "encodedTransactionPayloadHex": "f9058fb904bb696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e2869643a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e686f6c6465725265662e6372656174654e6f646544656c656761746f72286e6f646549443a206964290a0a20202020202020206c65742064656c656761746f7250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a20202020202020202020202064656c656761746f7250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a20202020202020202020202064656c656761746f7250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90593f9058fb904bb696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e2869643a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e686f6c6465725265662e6372656174654e6f646544656c656761746f72286e6f646549443a206964290a0a20202020202020206c65742064656c656761746f7250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a20202020202020202020202064656c656761746f7250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a20202020202020202020202064656c656761746f7250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "021378405c85e0c966344b196c0fce602f39e79f3938ec7b689e0c96a8703b018a3cb357a97a57d9abbe5c68f0df342ee96ba97ade2013753fd2ddf47695a8c08a52656769737465722044656c656761746f720002014e6f64652049440000537472696e67000301416d6f756e7400015546697836340003", + "hash": "3cb357a97a57d9abbe5c68f0df342ee96ba97ade2013753fd2ddf47695a8c08a" }, { - "title": "TH.09 - Re-stake Unstaked FLOW", + "title": "TH.19 - Delegate New Locked FLOW", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.stakeUnstakedTokens(amount: amount)\n }\n}\n", + "script": "import FlowToken from 0x1654653399040a61\nimport FungibleToken from 0xf233dcee88fe0abe\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowDelegator()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n stakerProxy.delegateNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n stakerProxy.delegateNewTokens(amount: amount)\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4212,7 +3734,7 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.stakeUnstakedTokens(amount: amount)\n }\n}\n", + "script": "import FlowToken from 0x1654653399040a61\nimport FungibleToken from 0xf233dcee88fe0abe\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowDelegator()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n stakerProxy.delegateNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n stakerProxy.delegateNewTokens(amount: amount)\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4232,17 +3754,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7374616b65556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90281f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7374616b65556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0223e5bfd594bb3245090e3e0bafb9cb9246fc84d30e4a35a7fde1b51085624d86677cc0ac3962ec136ca26dbec0aa942d926640ecf8418433f0db4b7925f5d0fe52652d7374616b6520556e7374616b656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "677cc0ac3962ec136ca26dbec0aa942d926640ecf8418433f0db4b7925f5d0fe" + "encodedTransactionPayloadHex": "f9050db90498696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a2020202020202020202020207374616b657250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a2020202020202020202020207374616b657250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90511f9050db90498696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a2020202020202020202020207374616b657250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a2020202020202020202020207374616b657250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0218fad68368a4394b245db91217d7dc979e1316ab757388d416eaef831f565ab3802354d8b3e7908e584bcb5217637fb9f4ef045427c32d57d81ad4a390ed1a6044656c6567617465204e6577204c6f636b656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "802354d8b3e7908e584bcb5217637fb9f4ef045427c32d57d81ad4a390ed1a60" }, { - "title": "TH.10 - Re-stake Rewarded FLOW", + "title": "TH.20 - Re-delegate Unstaked FLOW", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.stakeRewardedTokens(amount: amount)\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n\n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.delegateUnstakedTokens(amount: amount)\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4262,7 +3784,7 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.stakeRewardedTokens(amount: amount)\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n\n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.delegateUnstakedTokens(amount: amount)\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4282,17 +3804,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7374616b655265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90281f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7374616b655265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02239319825ad68178e76465b5ea18cb43f06c4ee11341f8fe9424809163a027a528d1719c5b21c88c62665db5ba04886809f3234c27057b057c36d5f265ee9de452652d7374616b6520526577617264656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "28d1719c5b21c88c62665db5ba04886809f3234c27057b057c36d5f265ee9de4" + "encodedTransactionPayloadHex": "f9027bb90206696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a0a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e64656c6567617465556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9027ff9027bb90206696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a0a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e64656c6567617465556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "028776b1521b04395754734f8f40d4a0482863274f8d832973d9e011b3cbb48c852027331b72d8710a1a05feb6ecebadb5858d134bc8c95d6f261319cd9fa1bb9552652d64656c656761746520556e7374616b656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "2027331b72d8710a1a05feb6ecebadb5858d134bc8c95d6f261319cd9fa1bb95" }, { - "title": "TH.11 - Request Unstake of FLOW", + "title": "TH.21 - Re-delegate Rewarded FLOW", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.requestUnstaking(amount: amount)\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.delegateRewardedTokens(amount: amount)\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4312,7 +3834,7 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.requestUnstaking(amount: amount)\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.delegateRewardedTokens(amount: amount)\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4332,18 +3854,23 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9027ab90205696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e72657175657374556e7374616b696e6728616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9027ef9027ab90205696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e72657175657374556e7374616b696e6728616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0233e3977c45e7c23c1472bcf334d00b03ebf91b06b67c57b63b562c7b1ff5c59f4e2a35541453f89c55e5dc6dbc963290380d779c81df0b3bf89c29b2a8d7a9fe5265717565737420556e7374616b65206f6620464c4f57000101416d6f756e7400005546697836340003", - "hash": "4e2a35541453f89c55e5dc6dbc963290380d779c81df0b3bf89c29b2a8d7a9fe" + "encodedTransactionPayloadHex": "f90283b9020e696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e64656c65676174655265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90287f90283b9020e696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e64656c65676174655265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "026b40ffc9169abd75107a45da5974c7e502d38773275abb231d747e4760b7ebee864edbff384335ef21c26b3bcf17d36b2b1d894afbe2b203f58099cc457971e452652d64656c656761746520526577617264656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "864edbff384335ef21c26b3bcf17d36b2b1d894afbe2b203f58099cc457971e4" }, { - "title": "TH.12 - Unstake All FLOW", + "title": "TH.22 - Unstake Delegated FLOW", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction() {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.unstakeAll()\n }\n}\n", - "arguments": [], + "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.requestUnstaking(amount: amount)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + } + ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -4357,8 +3884,13 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction() {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.unstakeAll()\n }\n}\n", - "arguments": [], + "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.requestUnstaking(amount: amount)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + } + ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -4372,17 +3904,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90227b901e3696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e2829207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e756e7374616b65416c6c28290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9022bf90227b901e3696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e2829207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e756e7374616b65416c6c28290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f92c4cd663b2e335cd821a656bb2ebcf239b222036a7825af5e512fad4d820357099904b953b062e81e2575a2c2081b3d98bfccf5c743b4bdb224b937e292dad556e7374616b6520416c6c20464c4f570000", - "hash": "7099904b953b062e81e2575a2c2081b3d98bfccf5c743b4bdb224b937e292dad" + "encodedTransactionPayloadHex": "f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e72657175657374556e7374616b696e6728616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90281f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e72657175657374556e7374616b696e6728616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0261cbcd1c31bbfc9ceb4a5ac726e2f8b3d845a4fdf59b0ab23cbbfa8f16d7a024262aeddd3f49fd6222d706c02696bd7d359ba962b6c30232cc93d7cf4166a23e556e7374616b652044656c65676174656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "262aeddd3f49fd6222d706c02696bd7d359ba962b6c30232cc93d7cf4166a23e" }, { - "title": "TH.13 - Withdraw Unstaked FLOW", + "title": "TH.23 - Withdraw Unstaked FLOW", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.withdrawUnstakedTokens(amount: amount)\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.withdrawUnstakedTokens(amount: amount)\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4402,7 +3934,7 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.withdrawUnstakedTokens(amount: amount)\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.withdrawUnstakedTokens(amount: amount)\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4422,17 +3954,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90280b9020b696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7769746864726177556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90284f90280b9020b696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e7769746864726177556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0290097e3aff9b67f65bbada3cdedbb73d45d093ff333aaaff38809bf9910a3e39dcae4faa6d689873f7caf7c5efef669f9fe1d4113e58b474b7aec1e07113a7ff576974686472617720556e7374616b656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "dcae4faa6d689873f7caf7c5efef669f9fe1d4113e58b474b7aec1e07113a7ff" + "encodedTransactionPayloadHex": "f90283b9020e696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e7769746864726177556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90287f90283b9020e696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e7769746864726177556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "022ae983f78e32b989fafa58ee7910b131fb51a2a74356f7916624695cb8bf596412675a013c064b6d0ef11dbf13f92210489bf2b3d299b2f14cd09be70b37577f576974686472617720556e7374616b656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "12675a013c064b6d0ef11dbf13f92210489bf2b3d299b2f14cd09be70b37577f" }, { - "title": "TH.14 - Withdraw Rewarded FLOW", + "title": "TH.24 - Withdraw Rewarded FLOW", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport FlowToken from 0x1654653399040a61\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow reference to FlowToken value\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.withdrawRewardedTokens(amount: amount)\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport FlowToken from 0x1654653399040a61\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow reference to FlowToken value\")\n }\n\n execute {\n let delegatorProxy = self.holderRef.borrowDelegator()\n\n delegatorProxy.withdrawRewardedTokens(amount: amount)\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4452,7 +3984,7 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport FlowToken from 0x1654653399040a61\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow reference to FlowToken value\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowStaker()\n\n stakerProxy.withdrawRewardedTokens(amount: amount)\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", + "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport FlowToken from 0x1654653399040a61\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow reference to FlowToken value\")\n }\n\n execute {\n let delegatorProxy = self.holderRef.borrowDelegator()\n\n delegatorProxy.withdrawRewardedTokens(amount: amount)\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", "arguments": [ { "type": "UFix64", @@ -4472,29 +4004,21 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9038eb90319696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20466c6f77546f6b656e2076616c756522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e77697468647261775265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90392f9038eb90319696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20466c6f77546f6b656e2076616c756522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020207374616b657250726f78792e77697468647261775265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f23406ff402f02418629432912ce732be0441b1a7e71f16c03d688a165ff7f499bb8f0562eea5e45c11f9289540f39c99a21c9a0fb060a7d3f832e98c2696f2d576974686472617720526577617264656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "9bb8f0562eea5e45c11f9289540f39c99a21c9a0fb060a7d3f832e98c2696f2d" + "encodedTransactionPayloadHex": "f90398b90323696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20466c6f77546f6b656e2076616c756522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c65742064656c656761746f7250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a202020202020202064656c656761746f7250726f78792e77697468647261775265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9039cf90398b90323696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20466c6f77546f6b656e2076616c756522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c65742064656c656761746f7250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a202020202020202064656c656761746f7250726f78792e77697468647261775265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02385042aa453566fcff0b2bd418b837d8f46fbc23b1b46e6651b25a395bc04be8239ffa449eae5560eec3e99633dcf9c63b1e9c99996d1c5636644dceef9ec44b576974686472617720526577617264656420464c4f57000101416d6f756e7400005546697836340003", + "hash": "239ffa449eae5560eec3e99633dcf9c63b1e9c99996d1c5636644dceef9ec44b" }, { - "title": "TH.16 - Register Operator Node", + "title": "TH.25 - Update Networking Address", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(address: Address, id: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let nodeOperatorRef = getAccount(address).getCapability\n <&StakingProxy.NodeStakerProxyHolder{StakingProxy.NodeStakerProxyHolderPublic}>\n (StakingProxy.NodeOperatorCapabilityPublicPath)!.borrow() \n ?? panic(\"Could not borrow node operator public capability\")\n\n let nodeInfo = nodeOperatorRef.getNodeInfo(nodeID: id)\n ?? panic(\"Couldn't get info for nodeID=\".concat(id))\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n let nodeStakerProxy = self.holderRef.borrowStaker()\n\n nodeOperatorRef.addStakingProxy(nodeID: nodeInfo.id, proxy: nodeStakerProxy)\n }\n}\n", + "script": "import FlowIDTableStaking from 0x8624b52f9ddcd04a\n\ntransaction(newAddress: String) {\n\n // Local variable for a reference to the node object\n let stakerRef: &FlowIDTableStaking.NodeStaker\n\n prepare(acct: AuthAccount) {\n // borrow a reference to the node object\n self.stakerRef = acct.borrow<&FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath)\n ?? panic(\"Could not borrow reference to staking admin\")\n }\n\n execute {\n\n self.stakerRef.updateNetworkingAddress(newAddress)\n\n }\n}", "arguments": [ - { - "type": "Address", - "value": "0xe467b9dd11fa00df" - }, { "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "value": "flow-node.test:3569" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -4510,19 +4034,11 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport StakingProxy from 0x62430cf28c26d095\n\ntransaction(address: Address, id: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n }\n\n execute {\n let nodeOperatorRef = getAccount(address).getCapability\n <&StakingProxy.NodeStakerProxyHolder{StakingProxy.NodeStakerProxyHolderPublic}>\n (StakingProxy.NodeOperatorCapabilityPublicPath)!.borrow() \n ?? panic(\"Could not borrow node operator public capability\")\n\n let nodeInfo = nodeOperatorRef.getNodeInfo(nodeID: id)\n ?? panic(\"Couldn't get info for nodeID=\".concat(id))\n\n self.holderRef.createNodeStaker(nodeInfo: nodeInfo, amount: amount)\n\n let nodeStakerProxy = self.holderRef.borrowStaker()\n\n nodeOperatorRef.addStakingProxy(nodeID: nodeInfo.id, proxy: nodeStakerProxy)\n }\n}\n", + "script": "import FlowIDTableStaking from 0x8624b52f9ddcd04a\n\ntransaction(newAddress: String) {\n\n // Local variable for a reference to the node object\n let stakerRef: &FlowIDTableStaking.NodeStaker\n\n prepare(acct: AuthAccount) {\n // borrow a reference to the node object\n self.stakerRef = acct.borrow<&FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath)\n ?? panic(\"Could not borrow reference to staking admin\")\n }\n\n execute {\n\n self.stakerRef.updateNetworkingAddress(newAddress)\n\n }\n}", "arguments": [ - { - "type": "Address", - "value": "0xe467b9dd11fa00df" - }, { "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "value": "flow-node.test:3569" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -4538,27 +4054,18 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90546b90442696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616464726573733a20416464726573732c2069643a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574206e6f64654f70657261746f72526566203d206765744163636f756e742861646472657373292e6765744361706162696c6974790a2020202020202020202020203c265374616b696e6750726f78792e4e6f64655374616b657250726f7879486f6c6465727b5374616b696e6750726f78792e4e6f64655374616b657250726f7879486f6c6465725075626c69637d3e0a202020202020202020202020285374616b696e6750726f78792e4e6f64654f70657261746f724361706162696c6974795075626c69635061746829212e626f72726f772829200a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77206e6f6465206f70657261746f72207075626c6963206361706162696c69747922290a0a20202020202020206c6574206e6f6465496e666f203d206e6f64654f70657261746f725265662e6765744e6f6465496e666f286e6f646549443a206964290a2020202020202020202020203f3f2070616e69632822436f756c646e27742067657420696e666f20666f72206e6f646549443d222e636f6e63617428696429290a0a202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020206c6574206e6f64655374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020206e6f64654f70657261746f725265662e6164645374616b696e6750726f7879286e6f646549443a206e6f6465496e666f2e69642c2070726f78793a206e6f64655374616b657250726f7879290a202020207d0a7d0af8bfaf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227db85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9054af90546b90442696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f7274205374616b696e6750726f78792066726f6d203078363234333063663238633236643039350a0a7472616e73616374696f6e28616464726573733a20416464726573732c2069643a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574206e6f64654f70657261746f72526566203d206765744163636f756e742861646472657373292e6765744361706162696c6974790a2020202020202020202020203c265374616b696e6750726f78792e4e6f64655374616b657250726f7879486f6c6465727b5374616b696e6750726f78792e4e6f64655374616b657250726f7879486f6c6465725075626c69637d3e0a202020202020202020202020285374616b696e6750726f78792e4e6f64654f70657261746f724361706162696c6974795075626c69635061746829212e626f72726f772829200a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77206e6f6465206f70657261746f72207075626c6963206361706162696c69747922290a0a20202020202020206c6574206e6f6465496e666f203d206e6f64654f70657261746f725265662e6765744e6f6465496e666f286e6f646549443a206964290a2020202020202020202020203f3f2070616e69632822436f756c646e27742067657420696e666f20666f72206e6f646549443d222e636f6e63617428696429290a0a202020202020202073656c662e686f6c6465725265662e6372656174654e6f64655374616b6572286e6f6465496e666f3a206e6f6465496e666f2c20616d6f756e743a20616d6f756e74290a0a20202020202020206c6574206e6f64655374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f775374616b657228290a0a20202020202020206e6f64654f70657261746f725265662e6164645374616b696e6750726f7879286e6f646549443a206e6f6465496e666f2e69642c2070726f78793a206e6f64655374616b657250726f7879290a202020207d0a7d0af8bfaf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227db85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02c29d4024aaeb71ab478182542499e0ba3d5d303ec027252e3b8333515ee3de4897b3436482c5aefc1baf8b850e92c829202e468c57241dec707b6c27bd89d15c5265676973746572204f70657261746f72204e6f64650003014f70657261746f7220416464726573730000416464726573730003014e6f64652049440001537472696e67000301416d6f756e7400025546697836340003", - "hash": "97b3436482c5aefc1baf8b850e92c829202e468c57241dec707b6c27bd89d15c" + "encodedTransactionPayloadHex": "f9029ab90226696d706f727420466c6f7749445461626c655374616b696e672066726f6d203078383632346235326639646463643034610a0a7472616e73616374696f6e286e6577416464726573733a20537472696e6729207b0a0a202020202f2f204c6f63616c207661726961626c6520666f722061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020206c6574207374616b65725265663a2026466c6f7749445461626c655374616b696e672e4e6f64655374616b65720a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020202020202073656c662e7374616b6572526566203d20616363742e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f207374616b696e672061646d696e22290a202020207d0a0a2020202065786563757465207b0a0a202020202020202073656c662e7374616b65725265662e7570646174654e6574776f726b696e6741646472657373286e657741646472657373290a0a202020207d0a7df0af7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9029ef9029ab90226696d706f727420466c6f7749445461626c655374616b696e672066726f6d203078383632346235326639646463643034610a0a7472616e73616374696f6e286e6577416464726573733a20537472696e6729207b0a0a202020202f2f204c6f63616c207661726961626c6520666f722061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020206c6574207374616b65725265663a2026466c6f7749445461626c655374616b696e672e4e6f64655374616b65720a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020202020202073656c662e7374616b6572526566203d20616363742e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f207374616b696e672061646d696e22290a202020207d0a0a2020202065786563757465207b0a0a202020202020202073656c662e7374616b65725265662e7570646174654e6574776f726b696e6741646472657373286e657741646472657373290a0a202020207d0a7df0af7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "026cbe81c71d2b04dc403ea0db89377f0abc5db14d3d2bd014397b2776aa29bc3ee79cb076f2f7da7a3039b5061916e081a823087f1560bdf3caea773992892873557064617465204e6574776f726b696e672041646472657373000101416464726573730000537472696e670003", + "hash": "e79cb076f2f7da7a3039b5061916e081a823087f1560bdf3caea773992892873" }, { - "title": "TH.17 - Register Delegator", + "title": "SCO.01 - Setup Staking Collection", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(id: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n self.holderRef.createNodeDelegator(nodeID: id)\n\n let delegatorProxy = self.holderRef.borrowDelegator()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n delegatorProxy.delegateNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n delegatorProxy.delegateNewTokens(amount: amount)\n\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - } - ], + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport FlowIDTableStaking from 0x8624b52f9ddcd04a\nimport LockedTokens from 0x8d0e87b65159ae63\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// This transaction sets up an account to use a staking collection\n/// It will work regardless of whether they have a regular account, a two-account locked tokens setup,\n/// or staking objects stored in the unlocked account\n\ntransaction {\n prepare(signer: AuthAccount) {\n\n // If there isn't already a staking collection\n if signer.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath) == nil {\n\n // Create private capabilities for the token holder and unlocked vault\n let lockedHolder = signer.link<&LockedTokens.TokenHolder>(/private/flowTokenHolder, target: LockedTokens.TokenHolderStoragePath)!\n let flowToken = signer.link<&FlowToken.Vault>(/private/flowTokenVault, target: /storage/flowTokenVault)!\n \n // Create a new Staking Collection and put it in storage\n if lockedHolder.check() {\n signer.save(<-FlowStakingCollection.createStakingCollection(unlockedVault: flowToken, tokenHolder: lockedHolder), to: FlowStakingCollection.StakingCollectionStoragePath)\n } else {\n signer.save(<-FlowStakingCollection.createStakingCollection(unlockedVault: flowToken, tokenHolder: nil), to: FlowStakingCollection.StakingCollectionStoragePath)\n }\n\n // Create a public link to the staking collection\n signer.link<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(\n FlowStakingCollection.StakingCollectionPublicPath,\n target: FlowStakingCollection.StakingCollectionStoragePath\n )\n }\n\n // borrow a reference to the staking collection\n let collectionRef = signer.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow staking collection reference\")\n\n // If there is a node staker object in the account, put it in the staking collection\n if signer.borrow<&FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath) != nil {\n let node <- signer.load<@FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath)!\n collectionRef.addNodeObject(<-node, machineAccountInfo: nil)\n }\n\n // If there is a delegator object in the account, put it in the staking collection\n if signer.borrow<&FlowIDTableStaking.NodeDelegator>(from: FlowIDTableStaking.DelegatorStoragePath) != nil {\n let delegator <- signer.load<@FlowIDTableStaking.NodeDelegator>(from: FlowIDTableStaking.DelegatorStoragePath)!\n collectionRef.addDelegatorObject(<-delegator)\n }\n }\n}\n", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -4572,17 +4079,8 @@ ] }, "envelopeMessage": { - "script": "import FlowToken from 0x1654653399040a61\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(id: String, amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n self.holderRef.createNodeDelegator(nodeID: id)\n\n let delegatorProxy = self.holderRef.borrowDelegator()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n delegatorProxy.delegateNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n delegatorProxy.delegateNewTokens(amount: amount)\n\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - } - ], + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport FlowIDTableStaking from 0x8624b52f9ddcd04a\nimport LockedTokens from 0x8d0e87b65159ae63\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// This transaction sets up an account to use a staking collection\n/// It will work regardless of whether they have a regular account, a two-account locked tokens setup,\n/// or staking objects stored in the unlocked account\n\ntransaction {\n prepare(signer: AuthAccount) {\n\n // If there isn't already a staking collection\n if signer.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath) == nil {\n\n // Create private capabilities for the token holder and unlocked vault\n let lockedHolder = signer.link<&LockedTokens.TokenHolder>(/private/flowTokenHolder, target: LockedTokens.TokenHolderStoragePath)!\n let flowToken = signer.link<&FlowToken.Vault>(/private/flowTokenVault, target: /storage/flowTokenVault)!\n \n // Create a new Staking Collection and put it in storage\n if lockedHolder.check() {\n signer.save(<-FlowStakingCollection.createStakingCollection(unlockedVault: flowToken, tokenHolder: lockedHolder), to: FlowStakingCollection.StakingCollectionStoragePath)\n } else {\n signer.save(<-FlowStakingCollection.createStakingCollection(unlockedVault: flowToken, tokenHolder: nil), to: FlowStakingCollection.StakingCollectionStoragePath)\n }\n\n // Create a public link to the staking collection\n signer.link<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(\n FlowStakingCollection.StakingCollectionPublicPath,\n target: FlowStakingCollection.StakingCollectionStoragePath\n )\n }\n\n // borrow a reference to the staking collection\n let collectionRef = signer.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow staking collection reference\")\n\n // If there is a node staker object in the account, put it in the staking collection\n if signer.borrow<&FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath) != nil {\n let node <- signer.load<@FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath)!\n collectionRef.addNodeObject(<-node, machineAccountInfo: nil)\n }\n\n // If there is a delegator object in the account, put it in the staking collection\n if signer.borrow<&FlowIDTableStaking.NodeDelegator>(from: FlowIDTableStaking.DelegatorStoragePath) != nil {\n let delegator <- signer.load<@FlowIDTableStaking.NodeDelegator>(from: FlowIDTableStaking.DelegatorStoragePath)!\n collectionRef.addDelegatorObject(<-delegator)\n }\n }\n}\n", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -4596,21 +4094,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9058fb904bb696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e2869643a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e686f6c6465725265662e6372656174654e6f646544656c656761746f72286e6f646549443a206964290a0a20202020202020206c65742064656c656761746f7250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a20202020202020202020202064656c656761746f7250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a20202020202020202020202064656c656761746f7250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90593f9058fb904bb696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e2869643a20537472696e672c20616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e686f6c6465725265662e6372656174654e6f646544656c656761746f72286e6f646549443a206964290a0a20202020202020206c65742064656c656761746f7250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a20202020202020202020202064656c656761746f7250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a20202020202020202020202064656c656761746f7250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "021378405c85e0c966344b196c0fce602f39e79f3938ec7b689e0c96a8703b018a3cb357a97a57d9abbe5c68f0df342ee96ba97ade2013753fd2ddf47695a8c08a52656769737465722044656c656761746f720002014e6f64652049440000537472696e67000301416d6f756e7400015546697836340003", - "hash": "3cb357a97a57d9abbe5c68f0df342ee96ba97ade2013753fd2ddf47695a8c08a" + "encodedTransactionPayloadHex": "f90bf0b90bac696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f727420466c6f7749445461626c655374616b696e672066726f6d203078383632346235326639646463643034610a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f207573652061207374616b696e6720636f6c6c656374696f6e0a2f2f2f2049742077696c6c20776f726b207265676172646c657373206f66207768657468657220746865792068617665206120726567756c6172206163636f756e742c20612074776f2d6163636f756e74206c6f636b656420746f6b656e732073657475702c0a2f2f2f206f72207374616b696e67206f626a656374732073746f72656420696e2074686520756e6c6f636b6564206163636f756e740a0a7472616e73616374696f6e207b0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049662074686572652069736e277420616c72656164792061207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f726167655061746829203d3d206e696c207b0a0a2020202020202020202020202f2f204372656174652070726976617465206361706162696c697469657320666f722074686520746f6b656e20686f6c64657220616e6420756e6c6f636b6564207661756c740a2020202020202020202020206c6574206c6f636b6564486f6c646572203d207369676e65722e6c696e6b3c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e282f707269766174652f666c6f77546f6b656e486f6c6465722c207461726765743a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829210a2020202020202020202020206c657420666c6f77546f6b656e203d207369676e65722e6c696e6b3c26466c6f77546f6b656e2e5661756c743e282f707269766174652f666c6f77546f6b656e5661756c742c207461726765743a202f73746f726167652f666c6f77546f6b656e5661756c7429210a2020202020202020202020200a2020202020202020202020202f2f204372656174652061206e6577205374616b696e6720436f6c6c656374696f6e20616e642070757420697420696e2073746f726167650a2020202020202020202020206966206c6f636b6564486f6c6465722e636865636b2829207b0a202020202020202020202020202020207369676e65722e73617665283c2d466c6f775374616b696e67436f6c6c656374696f6e2e6372656174655374616b696e67436f6c6c656374696f6e28756e6c6f636b65645661756c743a20666c6f77546f6b656e2c20746f6b656e486f6c6465723a206c6f636b6564486f6c646572292c20746f3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020207d20656c7365207b0a202020202020202020202020202020207369676e65722e73617665283c2d466c6f775374616b696e67436f6c6c656374696f6e2e6372656174655374616b696e67436f6c6c656374696f6e28756e6c6f636b65645661756c743a20666c6f77546f6b656e2c20746f6b656e486f6c6465723a206e696c292c20746f3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020207d0a0a2020202020202020202020202f2f204372656174652061207075626c6963206c696e6b20746f20746865207374616b696e6720636f6c6c656374696f6e0a2020202020202020202020207369676e65722e6c696e6b3c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e280a20202020202020202020202020202020466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c6963506174682c0a202020202020202020202020202020207461726765743a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f72616765506174680a202020202020202020202020290a20202020202020207d0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d207369676e65722e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207374616b696e6720636f6c6c656374696f6e207265666572656e636522290a0a20202020202020202f2f2049662074686572652069732061206e6f6465207374616b6572206f626a65637420696e20746865206163636f756e742c2070757420697420696e20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f72616765506174682920213d206e696c207b0a2020202020202020202020206c6574206e6f6465203c2d207369676e65722e6c6f61643c40466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f726167655061746829210a202020202020202020202020636f6c6c656374696f6e5265662e6164644e6f64654f626a656374283c2d6e6f64652c206d616368696e654163636f756e74496e666f3a206e696c290a20202020202020207d0a0a20202020202020202f2f20496620746865726520697320612064656c656761746f72206f626a65637420696e20746865206163636f756e742c2070757420697420696e20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f646544656c656761746f723e2866726f6d3a20466c6f7749445461626c655374616b696e672e44656c656761746f7253746f72616765506174682920213d206e696c207b0a2020202020202020202020206c65742064656c656761746f72203c2d207369676e65722e6c6f61643c40466c6f7749445461626c655374616b696e672e4e6f646544656c656761746f723e2866726f6d3a20466c6f7749445461626c655374616b696e672e44656c656761746f7253746f726167655061746829210a202020202020202020202020636f6c6c656374696f6e5265662e61646444656c656761746f724f626a656374283c2d64656c656761746f72290a20202020202020207d0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90bf4f90bf0b90bac696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f727420466c6f7749445461626c655374616b696e672066726f6d203078383632346235326639646463643034610a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f207573652061207374616b696e6720636f6c6c656374696f6e0a2f2f2f2049742077696c6c20776f726b207265676172646c657373206f66207768657468657220746865792068617665206120726567756c6172206163636f756e742c20612074776f2d6163636f756e74206c6f636b656420746f6b656e732073657475702c0a2f2f2f206f72207374616b696e67206f626a656374732073746f72656420696e2074686520756e6c6f636b6564206163636f756e740a0a7472616e73616374696f6e207b0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049662074686572652069736e277420616c72656164792061207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f726167655061746829203d3d206e696c207b0a0a2020202020202020202020202f2f204372656174652070726976617465206361706162696c697469657320666f722074686520746f6b656e20686f6c64657220616e6420756e6c6f636b6564207661756c740a2020202020202020202020206c6574206c6f636b6564486f6c646572203d207369676e65722e6c696e6b3c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e282f707269766174652f666c6f77546f6b656e486f6c6465722c207461726765743a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829210a2020202020202020202020206c657420666c6f77546f6b656e203d207369676e65722e6c696e6b3c26466c6f77546f6b656e2e5661756c743e282f707269766174652f666c6f77546f6b656e5661756c742c207461726765743a202f73746f726167652f666c6f77546f6b656e5661756c7429210a2020202020202020202020200a2020202020202020202020202f2f204372656174652061206e6577205374616b696e6720436f6c6c656374696f6e20616e642070757420697420696e2073746f726167650a2020202020202020202020206966206c6f636b6564486f6c6465722e636865636b2829207b0a202020202020202020202020202020207369676e65722e73617665283c2d466c6f775374616b696e67436f6c6c656374696f6e2e6372656174655374616b696e67436f6c6c656374696f6e28756e6c6f636b65645661756c743a20666c6f77546f6b656e2c20746f6b656e486f6c6465723a206c6f636b6564486f6c646572292c20746f3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020207d20656c7365207b0a202020202020202020202020202020207369676e65722e73617665283c2d466c6f775374616b696e67436f6c6c656374696f6e2e6372656174655374616b696e67436f6c6c656374696f6e28756e6c6f636b65645661756c743a20666c6f77546f6b656e2c20746f6b656e486f6c6465723a206e696c292c20746f3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020207d0a0a2020202020202020202020202f2f204372656174652061207075626c6963206c696e6b20746f20746865207374616b696e6720636f6c6c656374696f6e0a2020202020202020202020207369676e65722e6c696e6b3c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e280a20202020202020202020202020202020466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c6963506174682c0a202020202020202020202020202020207461726765743a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f72616765506174680a202020202020202020202020290a20202020202020207d0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d207369676e65722e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207374616b696e6720636f6c6c656374696f6e207265666572656e636522290a0a20202020202020202f2f2049662074686572652069732061206e6f6465207374616b6572206f626a65637420696e20746865206163636f756e742c2070757420697420696e20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f72616765506174682920213d206e696c207b0a2020202020202020202020206c6574206e6f6465203c2d207369676e65722e6c6f61643c40466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f726167655061746829210a202020202020202020202020636f6c6c656374696f6e5265662e6164644e6f64654f626a656374283c2d6e6f64652c206d616368696e654163636f756e74496e666f3a206e696c290a20202020202020207d0a0a20202020202020202f2f20496620746865726520697320612064656c656761746f72206f626a65637420696e20746865206163636f756e742c2070757420697420696e20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f646544656c656761746f723e2866726f6d3a20466c6f7749445461626c655374616b696e672e44656c656761746f7253746f72616765506174682920213d206e696c207b0a2020202020202020202020206c65742064656c656761746f72203c2d207369676e65722e6c6f61643c40466c6f7749445461626c655374616b696e672e4e6f646544656c656761746f723e2866726f6d3a20466c6f7749445461626c655374616b696e672e44656c656761746f7253746f726167655061746829210a202020202020202020202020636f6c6c656374696f6e5265662e61646444656c656761746f724f626a656374283c2d64656c656761746f72290a20202020202020207d0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02a524b4094fcaf1051dbf43ac33ff80bb2f553670c58eeeb719757972a25d6b500e5c2445c0b1016eed4f60c429f233aa0bb223a0d9ff2aedffce00a58037a2bf5365747570205374616b696e6720436f6c6c656374696f6e0000", + "hash": "0e5c2445c0b1016eed4f60c429f233aa0bb223a0d9ff2aedffce00a58037a2bf" }, { - "title": "TH.19 - Delegate New Locked FLOW", + "title": "SCO.02 - Register Delegator", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowToken from 0x1654653399040a61\nimport FungibleToken from 0xf233dcee88fe0abe\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowDelegator()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n stakerProxy.delegateNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n stakerProxy.delegateNewTokens(amount: amount)\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified nodeID and the amount of tokens to commit\n\ntransaction(id: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.registerDelegator(nodeID: id, amount: amount) \n }\n}\n", "arguments": [ { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -4626,8 +4128,12 @@ ] }, "envelopeMessage": { - "script": "import FlowToken from 0x1654653399040a61\nimport FungibleToken from 0xf233dcee88fe0abe\nimport LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath)\n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow flow token vault reference\")\n }\n\n execute {\n let stakerProxy = self.holderRef.borrowDelegator()\n\n let lockedBalance = self.holderRef.getLockedAccountBalance()\n\n if amount <= lockedBalance {\n\n stakerProxy.delegateNewTokens(amount: amount)\n\n } else if ((amount - lockedBalance) <= self.vaultRef.balance) {\n\n self.holderRef.deposit(from: <-self.vaultRef.withdraw(amount: amount - lockedBalance))\n\n stakerProxy.delegateNewTokens(amount: amount)\n } else {\n panic(\"Not enough tokens to stake!\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified nodeID and the amount of tokens to commit\n\ntransaction(id: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.registerDelegator(nodeID: id, amount: amount) \n }\n}\n", "arguments": [ + { + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, { "type": "UFix64", "value": "92233720368.54775808" @@ -4646,21 +4152,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9050db90498696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a2020202020202020202020207374616b657250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a2020202020202020202020207374616b657250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90511f9050db90498696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a0a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f7720666c6f7720746f6b656e207661756c74207265666572656e636522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c6574207374616b657250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a20202020202020206c6574206c6f636b656442616c616e6365203d2073656c662e686f6c6465725265662e6765744c6f636b65644163636f756e7442616c616e636528290a0a2020202020202020696620616d6f756e74203c3d206c6f636b656442616c616e6365207b0a0a2020202020202020202020207374616b657250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a0a20202020202020207d20656c7365206966202828616d6f756e74202d206c6f636b656442616c616e636529203c3d2073656c662e7661756c745265662e62616c616e636529207b0a0a20202020202020202020202073656c662e686f6c6465725265662e6465706f7369742866726f6d3a203c2d73656c662e7661756c745265662e776974686472617728616d6f756e743a20616d6f756e74202d206c6f636b656442616c616e636529290a0a2020202020202020202020207374616b657250726f78792e64656c65676174654e6577546f6b656e7328616d6f756e743a20616d6f756e74290a20202020202020207d20656c7365207b0a20202020202020202020202070616e696328224e6f7420656e6f75676820746f6b656e7320746f207374616b652122290a20202020202020207d0a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0218fad68368a4394b245db91217d7dc979e1316ab757388d416eaef831f565ab3802354d8b3e7908e584bcb5217637fb9f4ef045427c32d57d81ad4a390ed1a6044656c6567617465204e6577204c6f636b656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "802354d8b3e7908e584bcb5217637fb9f4ef045427c32d57d81ad4a390ed1a60" + "encodedTransactionPayloadHex": "f9036fb9029b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f6465494420616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e726567697374657244656c656761746f72286e6f646549443a2069642c20616d6f756e743a20616d6f756e74292020202020200a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90373f9036fb9029b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f6465494420616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e726567697374657244656c656761746f72286e6f646549443a2069642c20616d6f756e743a20616d6f756e74292020202020200a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02c26f69a33ead535e7d597cec4567c6c70170e86fd85ec708f5381e50d43871e2c5636d510872a16eb06996dacb43d6a28f8f72ff1b05b2eb03416cc711d9bb1f52656769737465722044656c656761746f720002014e6f64652049440000537472696e67000301416d6f756e7400015546697836340003", + "hash": "c5636d510872a16eb06996dacb43d6a28f8f72ff1b05b2eb03416cc711d9bb1f" }, { - "title": "TH.20 - Re-delegate Unstaked FLOW", + "title": "SCO.04 - Create Machine Account - 1", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n\n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.delegateUnstakedTokens(amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Array", + "value": [] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -4676,11 +4186,15 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n\n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.delegateUnstakedTokens(amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Array", + "value": [] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -4696,21 +4210,30 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9027bb90206696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a0a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e64656c6567617465556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9027ff9027bb90206696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a0a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e64656c6567617465556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "028776b1521b04395754734f8f40d4a0482863274f8d832973d9e011b3cbb48c852027331b72d8710a1a05feb6ecebadb5858d134bc8c95d6f261319cd9fa1bb9552652d64656c656761746520556e7374616b656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "2027331b72d8710a1a05feb6ecebadb5858d134bc8c95d6f261319cd9fa1bb95" + "encodedTransactionPayloadHex": "f904e2b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f904e6f904e2b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", + "hash": "c2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841" }, { - "title": "TH.21 - Re-delegate Rewarded FLOW", + "title": "SCO.04 - Create Machine Account - 2", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.delegateRewardedTokens(amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -4726,11 +4249,20 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.delegateRewardedTokens(amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -4746,21 +4278,38 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90283b9020e696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e64656c65676174655265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90287f90283b9020e696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e64656c65676174655265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "026b40ffc9169abd75107a45da5974c7e502d38773275abb231d747e4760b7ebee864edbff384335ef21c26b3bcf17d36b2b1d894afbe2b203f58099cc457971e452652d64656c656761746520526577617264656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "864edbff384335ef21c26b3bcf17d36b2b1d894afbe2b203f58099cc457971e4" + "encodedTransactionPayloadHex": "f9058eb90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90592f9058eb90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", + "hash": "c2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841" }, { - "title": "TH.22 - Unstake Delegated FLOW", + "title": "SCO.04 - Create Machine Account - 3", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.requestUnstaking(amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -4776,11 +4325,28 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.requestUnstaking(amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", "arguments": [ { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Array", + "value": [ + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + }, + { + "type": "String", + "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" + } + ] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -4796,18 +4362,26 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e72657175657374556e7374616b696e6728616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90281f9027db90208696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e72657175657374556e7374616b696e6728616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0261cbcd1c31bbfc9ceb4a5ac726e2f8b3d845a4fdf59b0ab23cbbfa8f16d7a024262aeddd3f49fd6222d706c02696bd7d359ba962b6c30232cc93d7cf4166a23e556e7374616b652044656c65676174656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "262aeddd3f49fd6222d706c02696bd7d359ba962b6c30232cc93d7cf4166a23e" + "encodedTransactionPayloadHex": "f906e5b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f906e9f906e5b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", + "hash": "c2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841" }, { - "title": "TH.23 - Withdraw Unstaked FLOW", + "title": "SCO.05 - Request Unstaking - 1", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.withdrawUnstakedTokens(amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ + { + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Optional", + "value": null + }, { "type": "UFix64", "value": "92233720368.54775808" @@ -4826,8 +4400,16 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\n\ntransaction(amount: UFix64) {\n let nodeDelegatorProxy: LockedTokens.LockedNodeDelegatorProxy\n\n prepare(account: AuthAccount) {\n let holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"TokenHolder is not saved at specified path\")\n \n self.nodeDelegatorProxy = holderRef.borrowDelegator()\n }\n\n execute {\n self.nodeDelegatorProxy.withdrawUnstakedTokens(amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ + { + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Optional", + "value": null + }, { "type": "UFix64", "value": "92233720368.54775808" @@ -4846,18 +4428,29 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90283b9020e696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e7769746864726177556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90287f90283b9020e696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a202020206c6574206e6f646544656c656761746f7250726f78793a204c6f636b6564546f6b656e732e4c6f636b65644e6f646544656c656761746f7250726f78790a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020206c657420686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822546f6b656e486f6c646572206973206e6f7420736176656420617420737065636966696564207061746822290a20202020202020200a202020202020202073656c662e6e6f646544656c656761746f7250726f7879203d20686f6c6465725265662e626f72726f7744656c656761746f7228290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e6e6f646544656c656761746f7250726f78792e7769746864726177556e7374616b6564546f6b656e7328616d6f756e743a20616d6f756e74290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "022ae983f78e32b989fafa58ee7910b131fb51a2a74356f7916624695cb8bf596412675a013c064b6d0ef11dbf13f92210489bf2b3d299b2f14cd09be70b37577f576974686472617720556e7374616b656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "12675a013c064b6d0ef11dbf13f92210489bf2b3d299b2f14cd09be70b37577f" + "encodedTransactionPayloadHex": "f90399b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9039df90399b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c5265717565737420556e7374616b696e670003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c" }, { - "title": "TH.24 - Withdraw Rewarded FLOW", + "title": "SCO.05 - Request Unstaking - 2", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport FlowToken from 0x1654653399040a61\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow reference to FlowToken value\")\n }\n\n execute {\n let delegatorProxy = self.holderRef.borrowDelegator()\n\n delegatorProxy.withdrawRewardedTokens(amount: amount)\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ + { + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, { "type": "UFix64", "value": "92233720368.54775808" @@ -4876,8 +4469,19 @@ ] }, "envelopeMessage": { - "script": "import LockedTokens from 0x8d0e87b65159ae63\nimport FlowToken from 0x1654653399040a61\n\ntransaction(amount: UFix64) {\n\n let holderRef: &LockedTokens.TokenHolder\n let vaultRef: &FlowToken.Vault\n\n prepare(account: AuthAccount) {\n self.holderRef = account.borrow<&LockedTokens.TokenHolder>(from: LockedTokens.TokenHolderStoragePath) \n ?? panic(\"Could not borrow reference to TokenHolder\")\n\n self.vaultRef = account.borrow<&FlowToken.Vault>(from: /storage/flowTokenVault)\n ?? panic(\"Could not borrow reference to FlowToken value\")\n }\n\n execute {\n let delegatorProxy = self.holderRef.borrowDelegator()\n\n delegatorProxy.withdrawRewardedTokens(amount: amount)\n self.vaultRef.deposit(from: <-self.holderRef.withdraw(amount: amount))\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ + { + "type": "String", + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, { "type": "UFix64", "value": "92233720368.54775808" @@ -4896,21 +4500,29 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90398b90323696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20466c6f77546f6b656e2076616c756522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c65742064656c656761746f7250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a202020202020202064656c656761746f7250726f78792e77697468647261775265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9039cf90398b90323696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a0a7472616e73616374696f6e28616d6f756e743a2055466978363429207b0a0a202020206c657420686f6c6465725265663a20264c6f636b6564546f6b656e732e546f6b656e486f6c6465720a202020206c6574207661756c745265663a2026466c6f77546f6b656e2e5661756c740a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e686f6c646572526566203d206163636f756e742e626f72726f773c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e2866726f6d3a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829200a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20546f6b656e486f6c64657222290a0a202020202020202073656c662e7661756c74526566203d206163636f756e742e626f72726f773c26466c6f77546f6b656e2e5661756c743e2866726f6d3a202f73746f726167652f666c6f77546f6b656e5661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20466c6f77546f6b656e2076616c756522290a202020207d0a0a2020202065786563757465207b0a20202020202020206c65742064656c656761746f7250726f7879203d2073656c662e686f6c6465725265662e626f72726f7744656c656761746f7228290a0a202020202020202064656c656761746f7250726f78792e77697468647261775265776172646564546f6b656e7328616d6f756e743a20616d6f756e74290a202020202020202073656c662e7661756c745265662e6465706f7369742866726f6d3a203c2d73656c662e686f6c6465725265662e776974686472617728616d6f756e743a20616d6f756e7429290a202020207d0a7d0af1b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02385042aa453566fcff0b2bd418b837d8f46fbc23b1b46e6651b25a395bc04be8239ffa449eae5560eec3e99633dcf9c63b1e9c99996d1c5636644dceef9ec44b576974686472617720526577617264656420464c4f57000101416d6f756e7400005546697836340003", - "hash": "239ffa449eae5560eec3e99633dcf9c63b1e9c99996d1c5636644dceef9ec44b" + "encodedTransactionPayloadHex": "f903b4b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f903b8f903b4b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c5265717565737420556e7374616b696e670003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c" }, { - "title": "TH.25 - Update Networking Address", + "title": "SCO.06 - Stake New Tokens - 1", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowIDTableStaking from 0x8624b52f9ddcd04a\n\ntransaction(newAddress: String) {\n\n // Local variable for a reference to the node object\n let stakerRef: &FlowIDTableStaking.NodeStaker\n\n prepare(acct: AuthAccount) {\n // borrow a reference to the node object\n self.stakerRef = acct.borrow<&FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath)\n ?? panic(\"Could not borrow reference to staking admin\")\n }\n\n execute {\n\n self.stakerRef.updateNetworkingAddress(newAddress)\n\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", - "value": "flow-node.test:3569" + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Optional", + "value": null + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -4926,11 +4538,19 @@ ] }, "envelopeMessage": { - "script": "import FlowIDTableStaking from 0x8624b52f9ddcd04a\n\ntransaction(newAddress: String) {\n\n // Local variable for a reference to the node object\n let stakerRef: &FlowIDTableStaking.NodeStaker\n\n prepare(acct: AuthAccount) {\n // borrow a reference to the node object\n self.stakerRef = acct.borrow<&FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath)\n ?? panic(\"Could not borrow reference to staking admin\")\n }\n\n execute {\n\n self.stakerRef.updateNetworkingAddress(newAddress)\n\n }\n}", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", - "value": "flow-node.test:3569" + "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" + }, + { + "type": "Optional", + "value": null + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -4946,62 +4566,29 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9029ab90226696d706f727420466c6f7749445461626c655374616b696e672066726f6d203078383632346235326639646463643034610a0a7472616e73616374696f6e286e6577416464726573733a20537472696e6729207b0a0a202020202f2f204c6f63616c207661726961626c6520666f722061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020206c6574207374616b65725265663a2026466c6f7749445461626c655374616b696e672e4e6f64655374616b65720a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020202020202073656c662e7374616b6572526566203d20616363742e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f207374616b696e672061646d696e22290a202020207d0a0a2020202065786563757465207b0a0a202020202020202073656c662e7374616b65725265662e7570646174654e6574776f726b696e6741646472657373286e657741646472657373290a0a202020207d0a7df0af7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9029ef9029ab90226696d706f727420466c6f7749445461626c655374616b696e672066726f6d203078383632346235326639646463643034610a0a7472616e73616374696f6e286e6577416464726573733a20537472696e6729207b0a0a202020202f2f204c6f63616c207661726961626c6520666f722061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020206c6574207374616b65725265663a2026466c6f7749445461626c655374616b696e672e4e6f64655374616b65720a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020202020202073656c662e7374616b6572526566203d20616363742e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f207374616b696e672061646d696e22290a202020207d0a0a2020202065786563757465207b0a0a202020202020202073656c662e7374616b65725265662e7570646174654e6574776f726b696e6741646472657373286e657741646472657373290a0a202020207d0a7df0af7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "026cbe81c71d2b04dc403ea0db89377f0abc5db14d3d2bd014397b2776aa29bc3ee79cb076f2f7da7a3039b5061916e081a823087f1560bdf3caea773992892873557064617465204e6574776f726b696e672041646472657373000101416464726573730000537472696e670003", - "hash": "e79cb076f2f7da7a3039b5061916e081a823087f1560bdf3caea773992892873" + "encodedTransactionPayloadHex": "f90415b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90419f90415b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "021307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b5374616b65204e657720546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b" }, { - "title": "SCO.01 - Setup Staking Collection", + "title": "SCO.06 - Stake New Tokens - 2", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport FlowIDTableStaking from 0x8624b52f9ddcd04a\nimport LockedTokens from 0x8d0e87b65159ae63\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// This transaction sets up an account to use a staking collection\n/// It will work regardless of whether they have a regular account, a two-account locked tokens setup,\n/// or staking objects stored in the unlocked account\n\ntransaction {\n prepare(signer: AuthAccount) {\n\n // If there isn't already a staking collection\n if signer.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath) == nil {\n\n // Create private capabilities for the token holder and unlocked vault\n let lockedHolder = signer.link<&LockedTokens.TokenHolder>(/private/flowTokenHolder, target: LockedTokens.TokenHolderStoragePath)!\n let flowToken = signer.link<&FlowToken.Vault>(/private/flowTokenVault, target: /storage/flowTokenVault)!\n \n // Create a new Staking Collection and put it in storage\n if lockedHolder.check() {\n signer.save(<-FlowStakingCollection.createStakingCollection(unlockedVault: flowToken, tokenHolder: lockedHolder), to: FlowStakingCollection.StakingCollectionStoragePath)\n } else {\n signer.save(<-FlowStakingCollection.createStakingCollection(unlockedVault: flowToken, tokenHolder: nil), to: FlowStakingCollection.StakingCollectionStoragePath)\n }\n\n // Create a public link to the staking collection\n signer.link<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(\n FlowStakingCollection.StakingCollectionPublicPath,\n target: FlowStakingCollection.StakingCollectionStoragePath\n )\n }\n\n // borrow a reference to the staking collection\n let collectionRef = signer.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow staking collection reference\")\n\n // If there is a node staker object in the account, put it in the staking collection\n if signer.borrow<&FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath) != nil {\n let node <- signer.load<@FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath)!\n collectionRef.addNodeObject(<-node, machineAccountInfo: nil)\n }\n\n // If there is a delegator object in the account, put it in the staking collection\n if signer.borrow<&FlowIDTableStaking.NodeDelegator>(from: FlowIDTableStaking.DelegatorStoragePath) != nil {\n let delegator <- signer.load<@FlowIDTableStaking.NodeDelegator>(from: FlowIDTableStaking.DelegatorStoragePath)!\n collectionRef.addDelegatorObject(<-delegator)\n }\n }\n}\n", - "arguments": [], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FlowToken from 0x1654653399040a61\nimport FlowIDTableStaking from 0x8624b52f9ddcd04a\nimport LockedTokens from 0x8d0e87b65159ae63\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// This transaction sets up an account to use a staking collection\n/// It will work regardless of whether they have a regular account, a two-account locked tokens setup,\n/// or staking objects stored in the unlocked account\n\ntransaction {\n prepare(signer: AuthAccount) {\n\n // If there isn't already a staking collection\n if signer.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath) == nil {\n\n // Create private capabilities for the token holder and unlocked vault\n let lockedHolder = signer.link<&LockedTokens.TokenHolder>(/private/flowTokenHolder, target: LockedTokens.TokenHolderStoragePath)!\n let flowToken = signer.link<&FlowToken.Vault>(/private/flowTokenVault, target: /storage/flowTokenVault)!\n \n // Create a new Staking Collection and put it in storage\n if lockedHolder.check() {\n signer.save(<-FlowStakingCollection.createStakingCollection(unlockedVault: flowToken, tokenHolder: lockedHolder), to: FlowStakingCollection.StakingCollectionStoragePath)\n } else {\n signer.save(<-FlowStakingCollection.createStakingCollection(unlockedVault: flowToken, tokenHolder: nil), to: FlowStakingCollection.StakingCollectionStoragePath)\n }\n\n // Create a public link to the staking collection\n signer.link<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(\n FlowStakingCollection.StakingCollectionPublicPath,\n target: FlowStakingCollection.StakingCollectionStoragePath\n )\n }\n\n // borrow a reference to the staking collection\n let collectionRef = signer.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow staking collection reference\")\n\n // If there is a node staker object in the account, put it in the staking collection\n if signer.borrow<&FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath) != nil {\n let node <- signer.load<@FlowIDTableStaking.NodeStaker>(from: FlowIDTableStaking.NodeStakerStoragePath)!\n collectionRef.addNodeObject(<-node, machineAccountInfo: nil)\n }\n\n // If there is a delegator object in the account, put it in the staking collection\n if signer.borrow<&FlowIDTableStaking.NodeDelegator>(from: FlowIDTableStaking.DelegatorStoragePath) != nil {\n let delegator <- signer.load<@FlowIDTableStaking.NodeDelegator>(from: FlowIDTableStaking.DelegatorStoragePath)!\n collectionRef.addDelegatorObject(<-delegator)\n }\n }\n}\n", - "arguments": [], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f90bf0b90bac696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f727420466c6f7749445461626c655374616b696e672066726f6d203078383632346235326639646463643034610a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f207573652061207374616b696e6720636f6c6c656374696f6e0a2f2f2f2049742077696c6c20776f726b207265676172646c657373206f66207768657468657220746865792068617665206120726567756c6172206163636f756e742c20612074776f2d6163636f756e74206c6f636b656420746f6b656e732073657475702c0a2f2f2f206f72207374616b696e67206f626a656374732073746f72656420696e2074686520756e6c6f636b6564206163636f756e740a0a7472616e73616374696f6e207b0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049662074686572652069736e277420616c72656164792061207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f726167655061746829203d3d206e696c207b0a0a2020202020202020202020202f2f204372656174652070726976617465206361706162696c697469657320666f722074686520746f6b656e20686f6c64657220616e6420756e6c6f636b6564207661756c740a2020202020202020202020206c6574206c6f636b6564486f6c646572203d207369676e65722e6c696e6b3c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e282f707269766174652f666c6f77546f6b656e486f6c6465722c207461726765743a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829210a2020202020202020202020206c657420666c6f77546f6b656e203d207369676e65722e6c696e6b3c26466c6f77546f6b656e2e5661756c743e282f707269766174652f666c6f77546f6b656e5661756c742c207461726765743a202f73746f726167652f666c6f77546f6b656e5661756c7429210a2020202020202020202020200a2020202020202020202020202f2f204372656174652061206e6577205374616b696e6720436f6c6c656374696f6e20616e642070757420697420696e2073746f726167650a2020202020202020202020206966206c6f636b6564486f6c6465722e636865636b2829207b0a202020202020202020202020202020207369676e65722e73617665283c2d466c6f775374616b696e67436f6c6c656374696f6e2e6372656174655374616b696e67436f6c6c656374696f6e28756e6c6f636b65645661756c743a20666c6f77546f6b656e2c20746f6b656e486f6c6465723a206c6f636b6564486f6c646572292c20746f3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020207d20656c7365207b0a202020202020202020202020202020207369676e65722e73617665283c2d466c6f775374616b696e67436f6c6c656374696f6e2e6372656174655374616b696e67436f6c6c656374696f6e28756e6c6f636b65645661756c743a20666c6f77546f6b656e2c20746f6b656e486f6c6465723a206e696c292c20746f3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020207d0a0a2020202020202020202020202f2f204372656174652061207075626c6963206c696e6b20746f20746865207374616b696e6720636f6c6c656374696f6e0a2020202020202020202020207369676e65722e6c696e6b3c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e280a20202020202020202020202020202020466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c6963506174682c0a202020202020202020202020202020207461726765743a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f72616765506174680a202020202020202020202020290a20202020202020207d0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d207369676e65722e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207374616b696e6720636f6c6c656374696f6e207265666572656e636522290a0a20202020202020202f2f2049662074686572652069732061206e6f6465207374616b6572206f626a65637420696e20746865206163636f756e742c2070757420697420696e20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f72616765506174682920213d206e696c207b0a2020202020202020202020206c6574206e6f6465203c2d207369676e65722e6c6f61643c40466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f726167655061746829210a202020202020202020202020636f6c6c656374696f6e5265662e6164644e6f64654f626a656374283c2d6e6f64652c206d616368696e654163636f756e74496e666f3a206e696c290a20202020202020207d0a0a20202020202020202f2f20496620746865726520697320612064656c656761746f72206f626a65637420696e20746865206163636f756e742c2070757420697420696e20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f646544656c656761746f723e2866726f6d3a20466c6f7749445461626c655374616b696e672e44656c656761746f7253746f72616765506174682920213d206e696c207b0a2020202020202020202020206c65742064656c656761746f72203c2d207369676e65722e6c6f61643c40466c6f7749445461626c655374616b696e672e4e6f646544656c656761746f723e2866726f6d3a20466c6f7749445461626c655374616b696e672e44656c656761746f7253746f726167655061746829210a202020202020202020202020636f6c6c656374696f6e5265662e61646444656c656761746f724f626a656374283c2d64656c656761746f72290a20202020202020207d0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90bf4f90bf0b90bac696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420466c6f77546f6b656e2066726f6d203078313635343635333339393034306136310a696d706f727420466c6f7749445461626c655374616b696e672066726f6d203078383632346235326639646463643034610a696d706f7274204c6f636b6564546f6b656e732066726f6d203078386430653837623635313539616536330a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f207573652061207374616b696e6720636f6c6c656374696f6e0a2f2f2f2049742077696c6c20776f726b207265676172646c657373206f66207768657468657220746865792068617665206120726567756c6172206163636f756e742c20612074776f2d6163636f756e74206c6f636b656420746f6b656e732073657475702c0a2f2f2f206f72207374616b696e67206f626a656374732073746f72656420696e2074686520756e6c6f636b6564206163636f756e740a0a7472616e73616374696f6e207b0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049662074686572652069736e277420616c72656164792061207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f726167655061746829203d3d206e696c207b0a0a2020202020202020202020202f2f204372656174652070726976617465206361706162696c697469657320666f722074686520746f6b656e20686f6c64657220616e6420756e6c6f636b6564207661756c740a2020202020202020202020206c6574206c6f636b6564486f6c646572203d207369676e65722e6c696e6b3c264c6f636b6564546f6b656e732e546f6b656e486f6c6465723e282f707269766174652f666c6f77546f6b656e486f6c6465722c207461726765743a204c6f636b6564546f6b656e732e546f6b656e486f6c64657253746f726167655061746829210a2020202020202020202020206c657420666c6f77546f6b656e203d207369676e65722e6c696e6b3c26466c6f77546f6b656e2e5661756c743e282f707269766174652f666c6f77546f6b656e5661756c742c207461726765743a202f73746f726167652f666c6f77546f6b656e5661756c7429210a2020202020202020202020200a2020202020202020202020202f2f204372656174652061206e6577205374616b696e6720436f6c6c656374696f6e20616e642070757420697420696e2073746f726167650a2020202020202020202020206966206c6f636b6564486f6c6465722e636865636b2829207b0a202020202020202020202020202020207369676e65722e73617665283c2d466c6f775374616b696e67436f6c6c656374696f6e2e6372656174655374616b696e67436f6c6c656374696f6e28756e6c6f636b65645661756c743a20666c6f77546f6b656e2c20746f6b656e486f6c6465723a206c6f636b6564486f6c646572292c20746f3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020207d20656c7365207b0a202020202020202020202020202020207369676e65722e73617665283c2d466c6f775374616b696e67436f6c6c656374696f6e2e6372656174655374616b696e67436f6c6c656374696f6e28756e6c6f636b65645661756c743a20666c6f77546f6b656e2c20746f6b656e486f6c6465723a206e696c292c20746f3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020207d0a0a2020202020202020202020202f2f204372656174652061207075626c6963206c696e6b20746f20746865207374616b696e6720636f6c6c656374696f6e0a2020202020202020202020207369676e65722e6c696e6b3c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e280a20202020202020202020202020202020466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c6963506174682c0a202020202020202020202020202020207461726765743a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f72616765506174680a202020202020202020202020290a20202020202020207d0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d207369676e65722e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207374616b696e6720636f6c6c656374696f6e207265666572656e636522290a0a20202020202020202f2f2049662074686572652069732061206e6f6465207374616b6572206f626a65637420696e20746865206163636f756e742c2070757420697420696e20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f72616765506174682920213d206e696c207b0a2020202020202020202020206c6574206e6f6465203c2d207369676e65722e6c6f61643c40466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f726167655061746829210a202020202020202020202020636f6c6c656374696f6e5265662e6164644e6f64654f626a656374283c2d6e6f64652c206d616368696e654163636f756e74496e666f3a206e696c290a20202020202020207d0a0a20202020202020202f2f20496620746865726520697320612064656c656761746f72206f626a65637420696e20746865206163636f756e742c2070757420697420696e20746865207374616b696e6720636f6c6c656374696f6e0a20202020202020206966207369676e65722e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f646544656c656761746f723e2866726f6d3a20466c6f7749445461626c655374616b696e672e44656c656761746f7253746f72616765506174682920213d206e696c207b0a2020202020202020202020206c65742064656c656761746f72203c2d207369676e65722e6c6f61643c40466c6f7749445461626c655374616b696e672e4e6f646544656c656761746f723e2866726f6d3a20466c6f7749445461626c655374616b696e672e44656c656761746f7253746f726167655061746829210a202020202020202020202020636f6c6c656374696f6e5265662e61646444656c656761746f724f626a656374283c2d64656c656761746f72290a20202020202020207d0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02a524b4094fcaf1051dbf43ac33ff80bb2f553670c58eeeb719757972a25d6b500e5c2445c0b1016eed4f60c429f233aa0bb223a0d9ff2aedffce00a58037a2bf5365747570205374616b696e6720436f6c6c656374696f6e0000", - "hash": "0e5c2445c0b1016eed4f60c429f233aa0bb223a0d9ff2aedffce00a58037a2bf" - }, - { - "title": "SCO.02 - Register Delegator", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified nodeID and the amount of tokens to commit\n\ntransaction(id: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.registerDelegator(nodeID: id, amount: amount) \n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, + { + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, { "type": "UFix64", "value": "92233720368.54775808" @@ -5020,12 +4607,19 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified nodeID and the amount of tokens to commit\n\ntransaction(id: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.registerDelegator(nodeID: id, amount: amount) \n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, + { + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, { "type": "UFix64", "value": "92233720368.54775808" @@ -5044,45 +4638,29 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9036fb9029b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f6465494420616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e726567697374657244656c656761746f72286e6f646549443a2069642c20616d6f756e743a20616d6f756e74292020202020200a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90373f9036fb9029b696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f6465494420616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e726567697374657244656c656761746f72286e6f646549443a2069642c20616d6f756e743a20616d6f756e74292020202020200a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02c26f69a33ead535e7d597cec4567c6c70170e86fd85ec708f5381e50d43871e2c5636d510872a16eb06996dacb43d6a28f8f72ff1b05b2eb03416cc711d9bb1f52656769737465722044656c656761746f720002014e6f64652049440000537472696e67000301416d6f756e7400015546697836340003", - "hash": "c5636d510872a16eb06996dacb43d6a28f8f72ff1b05b2eb03416cc711d9bb1f" + "encodedTransactionPayloadHex": "f90430b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90434f90430b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "021307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b5374616b65204e657720546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b" }, { - "title": "SCO.03 - Register Node - 1", + "title": "SCO.07 - Stake Rewarded Tokens - 1", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "type": "Optional", + "value": null }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": null } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5098,35 +4676,19 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "type": "Optional", + "value": null }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": null } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5142,48 +4704,32 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f907f3b90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90279b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f907f7f907f3b90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90279b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac468835265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac46883" + "encodedTransactionPayloadHex": "f903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f903aef903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c405374616b6520526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c40" }, { - "title": "SCO.03 - Register Node - 2", + "title": "SCO.07 - Stake Rewarded Tokens - 2", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5199,38 +4745,22 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5246,53 +4776,29 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9080ab90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90290b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db77b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9080ef9080ab90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90290b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db77b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac468835265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac46883" + "encodedTransactionPayloadHex": "f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f903c9f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c405374616b6520526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c40" }, { - "title": "SCO.03 - Register Node - 3", + "title": "SCO.08 - Stake Unstaked Tokens - 1", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "type": "Optional", + "value": null }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5308,43 +4814,19 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "type": "Optional", + "value": null }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5360,61 +4842,32 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f908b5b90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af9033bb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db8e17b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f908b9f908b5b90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af9033bb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db8e17b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac468835265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac46883" + "encodedTransactionPayloadHex": "f903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f903aef903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "023595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb5374616b6520556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb" }, { - "title": "SCO.03 - Register Node - 4", + "title": "SCO.08 - Stake Unstaked Tokens - 2", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5430,51 +4883,22 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [String]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } }, { "type": "UFix64", "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5490,25 +4914,21 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90a0cb90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90492b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db902377b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90a10f90a0cb90534696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b537472696e675d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90492b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db902377b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f47efa834bc0559afae9a660b2efefddd0c6dc6e1bbcf9c3994e45ea9e5135ec99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac468835265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "99997236b6d76caa298331d5cef77cbdf83c1af64584ece537a780ba4ac46883" + "encodedTransactionPayloadHex": "f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f903c9f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "023595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb5374616b6520556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb" }, { - "title": "SCO.04 - Create Machine Account - 1", + "title": "SCO.09 - Unstake All", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests to unstake ALL tokens for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.unstakeAll(nodeID: nodeID)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Array", - "value": [] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5524,15 +4944,11 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests to unstake ALL tokens for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.unstakeAll(nodeID: nodeID)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Array", - "value": [] } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5548,30 +4964,32 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f904e2b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f904e6f904e2b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af87ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9b7b2274797065223a224172726179222c2276616c7565223a5b5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", - "hash": "c2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841" + "encodedTransactionPayloadHex": "f902fdb9025a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320746f20756e7374616b6520414c4c20746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e756e7374616b65416c6c286e6f646549443a206e6f64654944290a202020207d0a7d0af85eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90301f902fdb9025a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320746f20756e7374616b6520414c4c20746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e756e7374616b65416c6c286e6f646549443a206e6f64654944290a202020207d0a7d0af85eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "020bde358f3965ba2f4c18fb45b6536857c3f53d7d3b740fe66fe93a4ebf7524c1df9c6486baa6f8f685368ea216659239cb81fa8ebd9062a9723edb54ca0d7525556e7374616b6520416c6c0001014e6f64652049440000537472696e670003", + "hash": "df9c6486baa6f8f685368ea216659239cb81fa8ebd9062a9723edb54ca0d7525" }, { - "title": "SCO.04 - Create Machine Account - 2", + "title": "SCO.10 - Withdraw Rewarded Tokens - 1", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5587,20 +5005,22 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] + "type": "Optional", + "value": { + "type": "UInt32", + "value": "42" + } + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5616,38 +5036,29 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9058eb90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90592f9058eb90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af90125b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db8c57b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", - "hash": "c2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841" + "encodedTransactionPayloadHex": "f90466b90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9046af90466b90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "023af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299576974686472617720526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299" }, { - "title": "SCO.04 - Create Machine Account - 3", + "title": "SCO.10 - Withdraw Rewarded Tokens - 2", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] + "type": "Optional", + "value": null + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5663,28 +5074,19 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Creates a machine account for a node that is already in the staking collection\n/// and adds public keys to the new account\n\ntransaction(nodeID: String, publicKeys: [String]) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.createMachineAccountForExistingNode(nodeID: nodeID, payer: account) {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.addPublicKey(key.decodeHex())\n }\n } else {\n panic(\"Could not create a machine account for the node\")\n }\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] + "type": "Optional", + "value": null + }, + { + "type": "UFix64", + "value": "92233720368.54775808" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5700,17 +5102,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f906e5b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f906e9f906e5b90423696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20437265617465732061206d616368696e65206163636f756e7420666f722061206e6f6465207468617420697320616c726561647920696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f20616e642061646473207075626c6963206b65797320746f20746865206e6577206163636f756e740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c207075626c69634b6579733a205b537472696e675d29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e6372656174654d616368696e654163636f756e74466f724578697374696e674e6f6465286e6f646549443a206e6f646549442c2070617965723a206163636f756e7429207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6164645075626c69634b6579286b65792e6465636f64654865782829290a2020202020202020202020207d0a20202020202020207d20656c7365207b0a20202020202020202020202070616e69632822436f756c64206e6f74206372656174652061206d616368696e65206163636f756e7420666f7220746865206e6f646522290a20202020202020207d0a202020207d0a7d0af9027cb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db9021b7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02e79df145af42488e3da1d1b2e50a38a2084229896d670884f278a2119dc3bf9ec2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", - "hash": "c2442b498eea025099815ea613d6407407192dc12ad70e1a4f47936db804a841" + "encodedTransactionPayloadHex": "f9044bb90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9044ff9044bb90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "023af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299576974686472617720526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299" }, { - "title": "SCO.05 - Request Unstaking - 1", + "title": "SCO.11 - Withdraw Unstaked Tokens - 1", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -5738,7 +5140,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -5766,17 +5168,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90399b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9039df90399b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c5265717565737420556e7374616b696e670003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c" + "encodedTransactionPayloadHex": "f9045ab90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9045ef9045ab90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0268879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf06d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8576974686472617720556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "6d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8" }, { - "title": "SCO.05 - Request Unstaking - 2", + "title": "SCO.11 - Withdraw Unstaked Tokens - 2", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -5807,7 +5209,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests unstaking for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.requestUnstaking(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", @@ -5838,17 +5240,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903b4b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f903b8f903b4b902a4696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320756e7374616b696e6720666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e72657175657374556e7374616b696e67286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02b00f6b3b9d8d7d4a9a8ad14fce11ee0edb23c39c56a8c1351e6b597f53f2fb71a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c5265717565737420556e7374616b696e670003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "a552951c5e6300a118610fbf2d36b3073ee266e1d26787d04717c141976ef78c" + "encodedTransactionPayloadHex": "f90475b90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90479f90475b90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0268879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf06d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8576974686472617720556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", + "hash": "6d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8" }, { - "title": "SCO.06 - Stake New Tokens - 1", + "title": "SCO.12 - Close Stake - 1", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", "arguments": [ { "type": "String", @@ -5856,11 +5258,10 @@ }, { "type": "Optional", - "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "value": { + "type": "UInt32", + "value": "42" + } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5876,7 +5277,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", "arguments": [ { "type": "String", @@ -5884,11 +5285,10 @@ }, { "type": "Optional", - "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "value": { + "type": "UInt32", + "value": "42" + } } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5904,17 +5304,17 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90415b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90419f90415b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "021307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b5374616b65204e657720546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b" + "encodedTransactionPayloadHex": "f903cdb902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af89ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f903d1f903cdb902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af89ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884436c6f7365205374616b650002014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e7433320003", + "hash": "ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884" }, { - "title": "SCO.06 - Stake New Tokens - 2", + "title": "SCO.12 - Close Stake - 2", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", "arguments": [ { "type": "String", @@ -5922,14 +5322,7 @@ }, { "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "value": null } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5945,7 +5338,7 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits new tokens to stake for the specified node or delegator in the staking collection\n/// The tokens from the locked vault are used first, if it exists\n/// followed by the tokens from the unlocked vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeNewTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", "arguments": [ { "type": "String", @@ -5953,14 +5346,7 @@ }, { "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "value": null } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -5976,29 +5362,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90430b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90434f90430b90320696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d697473206e657720746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e732066726f6d20746865206c6f636b6564207661756c742061726520757365642066697273742c206966206974206578697374730a2f2f2f20666f6c6c6f7765642062792074686520746f6b656e732066726f6d2074686520756e6c6f636b6564207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b654e6577546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "021307928440cee4289235793d6ff860a24315f7b6a5d5907a145dcc5f83702a2c8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b5374616b65204e657720546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "8e10ac56db8ec5d5e0051d3c9608fabc8edd6abed983f6d3a254e7668a54b32b" + "encodedTransactionPayloadHex": "f903b2b902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af87fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f903b6f903b2b902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af87fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884436c6f7365205374616b650002014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e7433320003", + "hash": "ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884" }, { - "title": "SCO.07 - Stake Rewarded Tokens - 1", + "title": "SCO.13 - Transfer Node", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "Address", + "value": "0xe467b9dd11fa00df" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -6014,19 +5396,15 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "Address", + "value": "0xe467b9dd11fa00df" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -6042,32 +5420,29 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f903aef903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c405374616b6520526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c40" + "encodedTransactionPayloadHex": "f90907b90834696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9090bf90907b90834696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "022386d7ae1a5b936e3914729ee34e01d53a8fbd2e403512ec1beccb4062c231ebcdc3a63d0c75ea95b414becb6fbb8f5a8004236d48661cd3c3d4f540ee4d422e5472616e73666572204e6f64650002014e6f64652049440000537472696e67000301416464726573730001416464726573730003", + "hash": "cdc3a63d0c75ea95b414becb6fbb8f5a8004236d48661cd3c3d4f540ee4d422e" }, { - "title": "SCO.07 - Stake Rewarded Tokens - 2", + "title": "SCO.14 - Transfer Delegator", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } + "type": "UInt32", + "value": "42" }, { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "Address", + "value": "0xe467b9dd11fa00df" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -6083,22 +5458,19 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits rewarded tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } + "type": "UInt32", + "value": "42" }, { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "Address", + "value": "0xe467b9dd11fa00df" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -6114,26 +5486,22 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f903c9f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320726577617264656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b655265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02d7aca7113a7aa03e0afd20ee36f4873779708a02ac4c6985017740c2ecea3d62907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c405374616b6520526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "907c4cfd67a98a8003393c64dc74eb7a957b229352a266139a542bb105ac4c40" + "encodedTransactionPayloadHex": "f908b4b907c2696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2274797065223a2255496e743332222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f908b8f908b4b907c2696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2274797065223a2255496e743332222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0253b096b4850a30894e7b272ec5c39e2b2f4a23f8c40e76a3c64cfc63dc2999b6b34d6fafcc5a4d0ed9cf92e168a08d0674c93341e2393ee72dde6664918ec2405472616e736665722044656c656761746f720003014e6f64652049440000537472696e6700030144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", + "hash": "b34d6fafcc5a4d0ed9cf92e168a08d0674c93341e2393ee72dde6664918ec240" }, { - "title": "SCO.08 - Stake Unstaked Tokens - 1", + "title": "SCO.15 - Withdraw From Machine Account", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw tokens from the machine account\n/// The tokens are automatically deposited to the unlocked account vault\n\ntransaction(nodeID: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawFromMachineAccount(nodeID: nodeID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, - { - "type": "Optional", - "value": null - }, { "type": "UFix64", "value": "92233720368.54775808" @@ -6152,16 +5520,12 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw tokens from the machine account\n/// The tokens are automatically deposited to the unlocked account vault\n\ntransaction(nodeID: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawFromMachineAccount(nodeID: nodeID, amount: amount)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, - { - "type": "Optional", - "value": null - }, { "type": "UFix64", "value": "92233720368.54775808" @@ -6180,32 +5544,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f903aef903aab902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "023595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb5374616b6520556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb" + "encodedTransactionPayloadHex": "f9037eb902aa696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720746f6b656e732066726f6d20746865206d616368696e65206163636f756e740a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e776974686472617746726f6d4d616368696e654163636f756e74286e6f646549443a206e6f646549442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90382f9037eb902aa696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720746f6b656e732066726f6d20746865206d616368696e65206163636f756e740a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e776974686472617746726f6d4d616368696e654163636f756e74286e6f646549443a206e6f646549442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0239a126038522c6c964d53aaf78dde55bfe80929091510792fe49678bb22cbd96f9c48e18bda7f113e82711a4c95dfd151c6600ed9fbf46ceb22566d6c5728c6f57697468647261772046726f6d204d616368696e65204163636f756e740002014e6f64652049440000537472696e67000301416d6f756e7400015546697836340003", + "hash": "f9c48e18bda7f113e82711a4c95dfd151c6600ed9fbf46ceb22566d6c5728c6f" }, { - "title": "SCO.08 - Stake Unstaked Tokens - 2", + "title": "SCO.16 - Update Networking Address", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Changes the networking address for the specified node\n\ntransaction(nodeID: String, newAddress: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.updateNetworkingAddress(nodeID: nodeID, newAddress: newAddress)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "String", + "value": "flow-node.test:3569" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -6221,22 +5578,15 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Commits unstaked tokens to stake for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.stakeUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Changes the networking address for the specified node\n\ntransaction(nodeID: String, newAddress: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.updateNetworkingAddress(nodeID: nodeID, newAddress: newAddress)\n }\n}\n", "arguments": [ { "type": "String", "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" }, { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } - }, - { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "String", + "value": "flow-node.test:3569" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -6252,23 +5602,18 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f903c9f903c5b902b5696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20436f6d6d69747320756e7374616b656420746f6b656e7320746f207374616b6520666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7374616b65556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "023595fcd68cff445c65ad99f8d4d726b5e28807b061800769c41cbe3adb98aeec082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb5374616b6520556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "082e690b9647182cf6969db1a0fa8e0f1728da6db01fe0d462e9f0841c268cbb" + "encodedTransactionPayloadHex": "f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90343f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "0260f2cf219d56b19dc7fd223caed42dda9143c87b1b0d2c21a9652e12a3714133ff067b40ac67020ef864cd14842f62023254da34dd2ded56affa1364305bf1c5557064617465204e6574776f726b696e6720416464726573730002014e6f64652049440000537472696e67000301416464726573730001537472696e670003", + "hash": "ff067b40ac67020ef864cd14842f62023254da34dd2ded56affa1364305bf1c5" }, { - "title": "SCO.09 - Unstake All", + "title": "FUSD.01 - Setup FUSD Vault", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests to unstake ALL tokens for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.unstakeAll(nodeID: nodeID)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - } - ], + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -6282,13 +5627,8 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Requests to unstake ALL tokens for the specified node or delegator in the staking collection\n\ntransaction(nodeID: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.unstakeAll(nodeID: nodeID)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - } - ], + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -6302,32 +5642,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f902fdb9025a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320746f20756e7374616b6520414c4c20746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e756e7374616b65416c6c286e6f646549443a206e6f64654944290a202020207d0a7d0af85eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90301f902fdb9025a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f20526571756573747320746f20756e7374616b6520414c4c20746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a0a7472616e73616374696f6e286e6f646549443a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e756e7374616b65416c6c286e6f646549443a206e6f64654944290a202020207d0a7d0af85eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "020bde358f3965ba2f4c18fb45b6536857c3f53d7d3b740fe66fe93a4ebf7524c1df9c6486baa6f8f685368ea216659239cb81fa8ebd9062a9723edb54ca0d7525556e7374616b6520416c6c0001014e6f64652049440000537472696e670003", - "hash": "df9c6486baa6f8f685368ea216659239cb81fa8ebd9062a9723edb54ca0d7525" + "encodedTransactionPayloadHex": "f9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9057ef9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "020ffaf77ab320ce4cc9602d39b89c85f094ebcea571ed324537e703bc07b0fdc4aa7fecdf159e71bd0b029e40b22643fb443161e67796f42bac68e9bab4630e2953657475702046555344205661756c740000", + "hash": "aa7fecdf159e71bd0b029e40b22643fb443161e67796f42bac68e9bab4630e29" }, { - "title": "SCO.10 - Withdraw Rewarded Tokens - 1", + "title": "FUSD.02 - Transfer FUSD", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } - }, { "type": "UFix64", "value": "92233720368.54775808" + }, + { + "type": "Address", + "value": "0xe467b9dd11fa00df" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -6343,22 +5676,15 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } - }, { "type": "UFix64", "value": "92233720368.54775808" + }, + { + "type": "Address", + "value": "0xe467b9dd11fa00df" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -6374,31 +5700,18 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90466b90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9046af90466b90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "023af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299576974686472617720526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299" + "encodedTransactionPayloadHex": "f90759b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af861b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9075df90759b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af861b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02f22ca4b350a79c724f6471d5a6a7a0efa7ba9aeebb7fed2843a3ddd6e42c2e1c180cef7053a5f0ae66e19e3a96cc3b9eb7da29767fb5d6938239bf1f8e1dc2845472616e736665722046555344000201416d6f756e740000554669783634000301526563697069656e740001416464726573730003", + "hash": "180cef7053a5f0ae66e19e3a96cc3b9eb7da29767fb5d6938239bf1f8e1dc284" }, { - "title": "SCO.10 - Withdraw Rewarded Tokens - 2", + "title": "TS.01 - Set up Top Shot Collection", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - } - ], + "script": "import TopShot from 0x0b2a3299cc857e29\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -6412,21 +5725,8 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw rewarded tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawRewardedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": null - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - } - ], + "script": "import TopShot from 0x0b2a3299cc857e29\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -6440,29 +5740,25 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9044bb90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9044ff9044bb90356696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720726577617264656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e77697468647261775265776172646564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "023af182f568b37a8067d3fb524afcfe96991c85a928bf7651e730be0e15fdb72d27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299576974686472617720526577617264656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "27a2b60d538b8bb883b602ea83d1697986a29dd69a44a9209dc75affb9e63299" + "encodedTransactionPayloadHex": "f90384b90340696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90388f90384b90340696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "020f0baeef9353ceee607c5be3b7c0f86792dadf20b9e9c89e831adb0199e758827511848f1c27a173d966f4b868fd7efead7eeb1bbf04fc3f3e60dabc6c7f759353657420757020546f702053686f7420436f6c6c656374696f6e0000", + "hash": "7511848f1c27a173d966f4b868fd7efead7eeb1bbf04fc3f3e60dabc6c7f7593" }, { - "title": "SCO.11 - Withdraw Unstaked Tokens - 1", + "title": "TS.02 - Transfer Top Shot Moment", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport TopShot from 0x0b2a3299cc857e29\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": null + "type": "Address", + "value": "0xe467b9dd11fa00df" }, { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "UInt64", + "value": "42" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -6478,19 +5774,15 @@ ] }, "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport TopShot from 0x0b2a3299cc857e29\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": null + "type": "Address", + "value": "0xe467b9dd11fa00df" }, { - "type": "UFix64", - "value": "92233720368.54775808" + "type": "UInt64", + "value": "42" } ], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", @@ -6506,221 +5798,18 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f9045ab90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9045ef9045ab90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8b0b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0268879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf06d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8576974686472617720556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "6d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8" + "encodedTransactionPayloadHex": "f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84faf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2274797065223a2255496e743634222c2276616c7565223a223432227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90685f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84faf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2274797065223a2255496e743634222c2276616c7565223a223432227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "021ec9aea0b51409610f882f5ae4278567da675542bb378eb999f05b7c4f12f7d809d5ad21bf70dfe4f8d800db9e61a77f2f64837ae0e818c3cd67e9cea837a1cf5472616e7366657220546f702053686f74204d6f6d656e74000201526563697069656e740000416464726573730003014d6f6d656e74204944000155496e7436340003", + "hash": "09d5ad21bf70dfe4f8d800db9e61a77f2f64837ae0e818c3cd67e9cea837a1cf" }, { - "title": "SCO.11 - Withdraw Unstaked Tokens - 2", + "title": "USDC.01 - Setup USDC Vault", "valid": true, "chainID": "Mainnet", "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw unstaked tokens for the specified node or delegator in the staking collection\n/// The tokens are automatically deposited to the unlocked account vault first,\n/// And then any locked tokens are deposited into the locked account vault if it is there\n\ntransaction(nodeID: String, delegatorID: UInt32?, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawUnstakedTokens(nodeID: nodeID, delegatorID: delegatorID, amount: amount)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f90475b90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90479f90475b90365696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720756e7374616b656420746f6b656e7320666f722074686520737065636966696564206e6f6465206f722064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c742066697273742c0a2f2f2f20416e64207468656e20616e79206c6f636b656420746f6b656e7320617265206465706f736974656420696e746f20746865206c6f636b6564206163636f756e74207661756c742069662069742069732074686572650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f2c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7769746864726177556e7374616b6564546f6b656e73286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f7249442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af8cbb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0268879197d961bb104a56e1e7d35660436fe4c52ed78f79d97fa50aa9e96fabf06d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8576974686472617720556e7374616b656420546f6b656e730003014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e743332000301416d6f756e7400025546697836340003", - "hash": "6d50ab1ef3d74203081c38306da74f5ad8fdd489e49fba732f8ba194d0c781c8" - }, - { - "title": "SCO.12 - Close Stake - 1", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": { - "type": "UInt32", - "value": "42" - } - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f903cdb902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af89ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f903d1f903cdb902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af89ab85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db83a7b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a2255496e743332222c2276616c7565223a223432227d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884436c6f7365205374616b650002014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e7433320003", - "hash": "ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884" - }, - { - "title": "SCO.12 - Close Stake - 2", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": null - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n// Closes out a staking object in the staking collection\n// This does not remove the record from the identity table,\n// but it does mean that the account that closes it cannot ever access it again\n\ntransaction(nodeID: String, delegatorID: UInt32?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.closeStake(nodeID: nodeID, delegatorID: delegatorID)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Optional", - "value": null - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f903b2b902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af87fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f903b6f903b2b902ee696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f20436c6f736573206f75742061207374616b696e67206f626a65637420696e20746865207374616b696e6720636f6c6c656374696f6e0a2f2f205468697320646f6573206e6f742072656d6f766520746865207265636f72642066726f6d20746865206964656e74697479207461626c652c0a2f2f2062757420697420646f6573206d65616e207468617420746865206163636f756e74207468617420636c6f7365732069742063616e6e6f7420657665722061636365737320697420616761696e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433323f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e636c6f73655374616b65286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a202020207d0a7d0af87fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02079aaa9cfb22138415056b43d5d91e8d73bd8bd5f37ebff4f4023d33ea6d2f25ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884436c6f7365205374616b650002014e6f64652049440000537472696e6700030244656c656761746f72204944000155496e7433320003", - "hash": "ecdffc1ae67479bc20c06eba6c776ff37b9523660ff1cd3129a3924d92484884" - }, - { - "title": "SCO.13 - Transfer Node", - "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Address", - "value": "0xe467b9dd11fa00df" - } - ], + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FiatToken from 0xb19436aae4d94622\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // Return early if the account already stores a FiatToken Vault\n if signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath) != nil {\n return\n }\n\n // Create a new ExampleToken Vault and put it in storage\n signer.save(\n <-FiatToken.createEmptyVault(),\n to: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FiatToken.Vault{FungibleToken.Receiver}>(\n FiatToken.VaultReceiverPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the UUID() function through the VaultUUID interface\n signer.link<&FiatToken.Vault{FiatToken.ResourceId}>(\n FiatToken.VaultUUIDPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FiatToken.Vault{FungibleToken.Balance}>(\n FiatToken.VaultBalancePubPath,\n target: FiatToken.VaultStoragePath\n )\n\n }\n}\n", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -6734,17 +5823,8 @@ ] }, "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "Address", - "value": "0xe467b9dd11fa00df" - } - ], + "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FiatToken from 0xb19436aae4d94622\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // Return early if the account already stores a FiatToken Vault\n if signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath) != nil {\n return\n }\n\n // Create a new ExampleToken Vault and put it in storage\n signer.save(\n <-FiatToken.createEmptyVault(),\n to: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FiatToken.Vault{FungibleToken.Receiver}>(\n FiatToken.VaultReceiverPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the UUID() function through the VaultUUID interface\n signer.link<&FiatToken.Vault{FiatToken.ResourceId}>(\n FiatToken.VaultUUIDPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FiatToken.Vault{FungibleToken.Balance}>(\n FiatToken.VaultBalancePubPath,\n target: FiatToken.VaultStoragePath\n )\n\n }\n}\n", + "arguments": [], "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", "gasLimit": 42, "proposalKey": { @@ -6758,24 +5838,20 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f90907b90834696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9090bf90907b90834696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f64655374616b6572206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f64655374616b657220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b6572206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f64655374616b65722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f64655374616b657220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206c6574206d616368696e654163636f756e74496e666f203d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e6765744d616368696e654163636f756e747328295b6e6f646549445d0a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420676574206d616368696e65206163636f756e7420696e666f20666f722074686520737065636966696564206e6f646520494422290a0a20202020202020202f2f2052656d6f766520746865204e6f64655374616b65722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f64655374616b6572203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f76654e6f6465286e6f646549443a206e6f64654944290a0a20202020202020202f2f204465706f73697420746865204e6f64655374616b657220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e6164644e6f64654f626a656374283c2d206e6f64655374616b6572212c206d616368696e654163636f756e74496e666f3a206d616368696e654163636f756e74496e666f290a202020207d0a7df88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "022386d7ae1a5b936e3914729ee34e01d53a8fbd2e403512ec1beccb4062c231ebcdc3a63d0c75ea95b414becb6fbb8f5a8004236d48661cd3c3d4f540ee4d422e5472616e73666572204e6f64650002014e6f64652049440000537472696e67000301416464726573730001416464726573730003", - "hash": "cdc3a63d0c75ea95b414becb6fbb8f5a8004236d48661cd3c3d4f540ee4d422e" + "encodedTransactionPayloadHex": "f905b9b90575696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046696174546f6b656e2066726f6d203078623139343336616165346439343632320a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2052657475726e206561726c7920696620746865206163636f756e7420616c72656164792073746f72657320612046696174546f6b656e205661756c740a20202020202020206966207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f72616765506174682920213d206e696c207b0a20202020202020202020202072657475726e0a20202020202020207d0a0a20202020202020202f2f204372656174652061206e6577204578616d706c65546f6b656e205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665280a2020202020202020202020203c2d46696174546f6b656e2e637265617465456d7074795661756c7428292c0a202020202020202020202020746f3a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a20202020202020202020202046696174546f6b656e2e5661756c745265636569766572507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865205555494428292066756e6374696f6e207468726f75676820746865205661756c745555494420696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46696174546f6b656e2e5265736f7572636549647d3e280a20202020202020202020202046696174546f6b656e2e5661756c7455554944507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a20202020202020202020202046696174546f6b656e2e5661756c7442616c616e6365507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f905bdf905b9b90575696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046696174546f6b656e2066726f6d203078623139343336616165346439343632320a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2052657475726e206561726c7920696620746865206163636f756e7420616c72656164792073746f72657320612046696174546f6b656e205661756c740a20202020202020206966207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f72616765506174682920213d206e696c207b0a20202020202020202020202072657475726e0a20202020202020207d0a0a20202020202020202f2f204372656174652061206e6577204578616d706c65546f6b656e205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665280a2020202020202020202020203c2d46696174546f6b656e2e637265617465456d7074795661756c7428292c0a202020202020202020202020746f3a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a20202020202020202020202046696174546f6b656e2e5661756c745265636569766572507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865205555494428292066756e6374696f6e207468726f75676820746865205661756c745555494420696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46696174546f6b656e2e5265736f7572636549647d3e280a20202020202020202020202046696174546f6b656e2e5661756c7455554944507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a20202020202020202020202046696174546f6b656e2e5661756c7442616c616e6365507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "022defee818c0c003ca519f83517f4c7bcf9dd8664a562ec80959cb6146428f971887673892a2e2c12337394570dfa30c5669e93f537ae426690f402799514a9a153657475702055534443205661756c740000", + "hash": "887673892a2e2c12337394570dfa30c5669e93f537ae426690f402799514a9a1" }, { - "title": "SCO.14 - Transfer Delegator", + "title": "USDC.02 - Transfer USDC", "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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 FungibleToken from 0xf233dcee88fe0abe\nimport FiatToken from 0xb19436aae4d94622\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(FiatToken.VaultReceiverPubPath)\n .borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt32", + "type": "UFix64", "value": "42" }, { @@ -6796,14 +5872,10 @@ ] }, "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: &FlowStakingCollection.StakingCollection\n let toStakingCollectionCap: &FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}\n\n prepare(account: AuthAccount) {\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.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\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.getCapability<&FlowStakingCollection.StakingCollection{FlowStakingCollection.StakingCollectionPublic}>(FlowStakingCollection.StakingCollectionPublicPath).borrow()\n ?? panic(\"Could not borrow ref to StakingCollection\")\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 FungibleToken from 0xf233dcee88fe0abe\nimport FiatToken from 0xb19436aae4d94622\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(FiatToken.VaultReceiverPubPath)\n .borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", "arguments": [ { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt32", + "type": "UFix64", "value": "42" }, { @@ -6824,866 +5896,10 @@ ], "payloadSigs": [] }, - "encodedTransactionPayloadHex": "f908b4b907c2696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2274797065223a2255496e743332222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f908b8f908b4b907c2696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f205472616e73666572732061204e6f646544656c656761746f72206f626a6563742066726f6d20616e20617574686f72697a657273206163636f6f756e740a2f2f20616e64206164647320746865204e6f646544656c656761746f7220746f20616e6f74686572206163636f756e7473205374616b696e6720436f6c6c656374696f6e0a2f2f206964656e7469666965642062792074686520746f20416464726573732e0a0a7472616e73616374696f6e286e6f646549443a20537472696e672c2064656c656761746f7249443a2055496e7433322c20746f3a204164647265737329207b0a202020206c65742066726f6d5374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a202020206c657420746f5374616b696e67436f6c6c656374696f6e4361703a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a20202020202020202f2f20546865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f72206f626a65637420746f206d757374206861766520612076616c6964205374616b696e6720436f6c6c656374696f6e20696e206f7264657220746f207265636569766520746865204e6f646544656c656761746f722e0a20202020202020206966202821466c6f775374616b696e67436f6c6c656374696f6e2e646f65734163636f756e74486176655374616b696e67436f6c6c656374696f6e28616464726573733a20746f2929207b0a20202020202020202020202070616e6963282244657374696e6174696f6e206163636f756e74206d75737420686176652061205374616b696e6720436f6c6c656374696f6e207365742075702e22290a20202020202020207d0a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e0a202020202020202073656c662e66726f6d5374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020202f2f2047657420746865205075626c69634163636f756e74206f6620746865206163636f756e7420746f207472616e7366657220746865204e6f646544656c656761746f7220746f2e200a20202020202020206c657420746f4163636f756e74203d206765744163636f756e7428746f290a0a20202020202020202f2f20426f72726f772061206361706162696c69747920746f20746865207075626c6963206d6574686f647320617661696c61626c65206f6e2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e436170203d20746f4163636f756e742e6765744361706162696c6974793c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e7b466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c69637d3e28466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e5075626c696350617468292e626f72726f7728290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f2052656d6f766520746865204e6f646544656c656761746f722066726f6d2074686520617574686f72697a657273205374616b696e67436f6c6c656374696f6e2e0a20202020202020206c6574206e6f646544656c656761746f72203c2d2073656c662e66726f6d5374616b696e67436f6c6c656374696f6e5265662e72656d6f766544656c656761746f72286e6f646549443a206e6f646549442c2064656c656761746f7249443a2064656c656761746f724944290a0a20202020202020202f2f204465706f73697420746865204e6f646544656c656761746f7220746f2074686520726563656976657273205374616b696e67436f6c6c656374696f6e2e0a202020202020202073656c662e746f5374616b696e67436f6c6c656374696f6e4361702e61646444656c656761746f724f626a656374283c2d206e6f646544656c656761746f7221290a202020207d0a7df8adb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9e7b2274797065223a2255496e743332222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0253b096b4850a30894e7b272ec5c39e2b2f4a23f8c40e76a3c64cfc63dc2999b6b34d6fafcc5a4d0ed9cf92e168a08d0674c93341e2393ee72dde6664918ec2405472616e736665722044656c656761746f720003014e6f64652049440000537472696e6700030144656c656761746f72204944000155496e743332000301416464726573730002416464726573730003", - "hash": "b34d6fafcc5a4d0ed9cf92e168a08d0674c93341e2393ee72dde6664918ec240" - }, - { - "title": "SCO.15 - Withdraw From Machine Account", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw tokens from the machine account\n/// The tokens are automatically deposited to the unlocked account vault\n\ntransaction(nodeID: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawFromMachineAccount(nodeID: nodeID, amount: amount)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Request to withdraw tokens from the machine account\n/// The tokens are automatically deposited to the unlocked account vault\n\ntransaction(nodeID: String, amount: UFix64) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.withdrawFromMachineAccount(nodeID: nodeID, amount: amount)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f9037eb902aa696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720746f6b656e732066726f6d20746865206d616368696e65206163636f756e740a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e776974686472617746726f6d4d616368696e654163636f756e74286e6f646549443a206e6f646549442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90382f9037eb902aa696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f205265717565737420746f20776974686472617720746f6b656e732066726f6d20746865206d616368696e65206163636f756e740a2f2f2f2054686520746f6b656e7320617265206175746f6d61746963616c6c79206465706f736974656420746f2074686520756e6c6f636b6564206163636f756e74207661756c740a0a7472616e73616374696f6e286e6f646549443a20537472696e672c20616d6f756e743a2055466978363429207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e776974686472617746726f6d4d616368696e654163636f756e74286e6f646549443a206e6f646549442c20616d6f756e743a20616d6f756e74290a202020207d0a7d0af88fb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0239a126038522c6c964d53aaf78dde55bfe80929091510792fe49678bb22cbd96f9c48e18bda7f113e82711a4c95dfd151c6600ed9fbf46ceb22566d6c5728c6f57697468647261772046726f6d204d616368696e65204163636f756e740002014e6f64652049440000537472696e67000301416d6f756e7400015546697836340003", - "hash": "f9c48e18bda7f113e82711a4c95dfd151c6600ed9fbf46ceb22566d6c5728c6f" - }, - { - "title": "SCO.16 - Update Networking Address", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Changes the networking address for the specified node\n\ntransaction(nodeID: String, newAddress: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.updateNetworkingAddress(nodeID: nodeID, newAddress: newAddress)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "String", - "value": "flow-node.test:3569" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Changes the networking address for the specified node\n\ntransaction(nodeID: String, newAddress: String) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n }\n\n execute {\n self.stakingCollectionRef.updateNetworkingAddress(nodeID: nodeID, newAddress: newAddress)\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "String", - "value": "flow-node.test:3569" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90343f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "0260f2cf219d56b19dc7fd223caed42dda9143c87b1b0d2c21a9652e12a3714133ff067b40ac67020ef864cd14842f62023254da34dd2ded56affa1364305bf1c5557064617465204e6574776f726b696e6720416464726573730002014e6f64652049440000537472696e67000301416464726573730001537472696e670003", - "hash": "ff067b40ac67020ef864cd14842f62023254da34dd2ded56affa1364305bf1c5" - }, - { - "title": "FUSD.01 - Setup FUSD Vault", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", - "arguments": [], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", - "arguments": [], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9057ef9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "020ffaf77ab320ce4cc9602d39b89c85f094ebcea571ed324537e703bc07b0fdc4aa7fecdf159e71bd0b029e40b22643fb443161e67796f42bac68e9bab4630e2953657475702046555344205661756c740000", - "hash": "aa7fecdf159e71bd0b029e40b22643fb443161e67796f42bac68e9bab4630e29" - }, - { - "title": "FUSD.02 - Transfer FUSD", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", - "arguments": [ - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Address", - "value": "0xe467b9dd11fa00df" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", - "arguments": [ - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Address", - "value": "0xe467b9dd11fa00df" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f90759b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af861b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9075df90759b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af861b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02f22ca4b350a79c724f6471d5a6a7a0efa7ba9aeebb7fed2843a3ddd6e42c2e1c180cef7053a5f0ae66e19e3a96cc3b9eb7da29767fb5d6938239bf1f8e1dc2845472616e736665722046555344000201416d6f756e740000554669783634000301526563697069656e740001416464726573730003", - "hash": "180cef7053a5f0ae66e19e3a96cc3b9eb7da29767fb5d6938239bf1f8e1dc284" - }, - { - "title": "TS.01 - Set up Top Shot Collection", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import TopShot from 0x0b2a3299cc857e29\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", - "arguments": [], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import TopShot from 0x0b2a3299cc857e29\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", - "arguments": [], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f90384b90340696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90388f90384b90340696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "020f0baeef9353ceee607c5be3b7c0f86792dadf20b9e9c89e831adb0199e758827511848f1c27a173d966f4b868fd7efead7eeb1bbf04fc3f3e60dabc6c7f759353657420757020546f702053686f7420436f6c6c656374696f6e0000", - "hash": "7511848f1c27a173d966f4b868fd7efead7eeb1bbf04fc3f3e60dabc6c7f7593" - }, - { - "title": "TS.02 - Transfer Top Shot Moment", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport TopShot from 0x0b2a3299cc857e29\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", - "arguments": [ - { - "type": "Address", - "value": "0xe467b9dd11fa00df" - }, - { - "type": "UInt64", - "value": "42" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport TopShot from 0x0b2a3299cc857e29\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", - "arguments": [ - { - "type": "Address", - "value": "0xe467b9dd11fa00df" - }, - { - "type": "UInt64", - "value": "42" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84faf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2274797065223a2255496e743634222c2276616c7565223a223432227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90685f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84faf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227d9e7b2274797065223a2255496e743634222c2276616c7565223a223432227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "021ec9aea0b51409610f882f5ae4278567da675542bb378eb999f05b7c4f12f7d809d5ad21bf70dfe4f8d800db9e61a77f2f64837ae0e818c3cd67e9cea837a1cf5472616e7366657220546f702053686f74204d6f6d656e74000201526563697069656e740000416464726573730003014d6f6d656e74204944000155496e7436340003", - "hash": "09d5ad21bf70dfe4f8d800db9e61a77f2f64837ae0e818c3cd67e9cea837a1cf" - }, - { - "title": "USDC.01 - Setup USDC Vault", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FiatToken from 0xb19436aae4d94622\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // Return early if the account already stores a FiatToken Vault\n if signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath) != nil {\n return\n }\n\n // Create a new ExampleToken Vault and put it in storage\n signer.save(\n <-FiatToken.createEmptyVault(),\n to: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FiatToken.Vault{FungibleToken.Receiver}>(\n FiatToken.VaultReceiverPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the UUID() function through the VaultUUID interface\n signer.link<&FiatToken.Vault{FiatToken.ResourceId}>(\n FiatToken.VaultUUIDPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FiatToken.Vault{FungibleToken.Balance}>(\n FiatToken.VaultBalancePubPath,\n target: FiatToken.VaultStoragePath\n )\n\n }\n}\n", - "arguments": [], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FiatToken from 0xb19436aae4d94622\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // Return early if the account already stores a FiatToken Vault\n if signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath) != nil {\n return\n }\n\n // Create a new ExampleToken Vault and put it in storage\n signer.save(\n <-FiatToken.createEmptyVault(),\n to: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FiatToken.Vault{FungibleToken.Receiver}>(\n FiatToken.VaultReceiverPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the UUID() function through the VaultUUID interface\n signer.link<&FiatToken.Vault{FiatToken.ResourceId}>(\n FiatToken.VaultUUIDPubPath,\n target: FiatToken.VaultStoragePath\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FiatToken.Vault{FungibleToken.Balance}>(\n FiatToken.VaultBalancePubPath,\n target: FiatToken.VaultStoragePath\n )\n\n }\n}\n", - "arguments": [], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f905b9b90575696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046696174546f6b656e2066726f6d203078623139343336616165346439343632320a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2052657475726e206561726c7920696620746865206163636f756e7420616c72656164792073746f72657320612046696174546f6b656e205661756c740a20202020202020206966207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f72616765506174682920213d206e696c207b0a20202020202020202020202072657475726e0a20202020202020207d0a0a20202020202020202f2f204372656174652061206e6577204578616d706c65546f6b656e205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665280a2020202020202020202020203c2d46696174546f6b656e2e637265617465456d7074795661756c7428292c0a202020202020202020202020746f3a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a20202020202020202020202046696174546f6b656e2e5661756c745265636569766572507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865205555494428292066756e6374696f6e207468726f75676820746865205661756c745555494420696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46696174546f6b656e2e5265736f7572636549647d3e280a20202020202020202020202046696174546f6b656e2e5661756c7455554944507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a20202020202020202020202046696174546f6b656e2e5661756c7442616c616e6365507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f905bdf905b9b90575696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046696174546f6b656e2066726f6d203078623139343336616165346439343632320a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2052657475726e206561726c7920696620746865206163636f756e7420616c72656164792073746f72657320612046696174546f6b656e205661756c740a20202020202020206966207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f72616765506174682920213d206e696c207b0a20202020202020202020202072657475726e0a20202020202020207d0a0a20202020202020202f2f204372656174652061206e6577204578616d706c65546f6b656e205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665280a2020202020202020202020203c2d46696174546f6b656e2e637265617465456d7074795661756c7428292c0a202020202020202020202020746f3a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a20202020202020202020202046696174546f6b656e2e5661756c745265636569766572507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865205555494428292066756e6374696f6e207468726f75676820746865205661756c745555494420696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46696174546f6b656e2e5265736f7572636549647d3e280a20202020202020202020202046696174546f6b656e2e5661756c7455554944507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c2646696174546f6b656e2e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a20202020202020202020202046696174546f6b656e2e5661756c7442616c616e6365507562506174682c0a2020202020202020202020207461726765743a2046696174546f6b656e2e5661756c7453746f72616765506174680a2020202020202020290a0a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "022defee818c0c003ca519f83517f4c7bcf9dd8664a562ec80959cb6146428f971887673892a2e2c12337394570dfa30c5669e93f537ae426690f402799514a9a153657475702055534443205661756c740000", - "hash": "887673892a2e2c12337394570dfa30c5669e93f537ae426690f402799514a9a1" - }, - { - "title": "USDC.02 - Transfer USDC", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FiatToken from 0xb19436aae4d94622\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(FiatToken.VaultReceiverPubPath)\n .borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", - "arguments": [ - { - "type": "UFix64", - "value": "42" - }, - { - "type": "Address", - "value": "0xe467b9dd11fa00df" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import FungibleToken from 0xf233dcee88fe0abe\nimport FiatToken from 0xb19436aae4d94622\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FiatToken.Vault>(from: FiatToken.VaultStoragePath)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(FiatToken.VaultReceiverPubPath)\n .borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", - "arguments": [ - { - "type": "UFix64", - "value": "42" - }, - { - "type": "Address", - "value": "0xe467b9dd11fa00df" - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f90503b9046f696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046696174546f6b656e2066726f6d203078623139343336616165346439343632320a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c6974792846696174546f6b656e2e5661756c74526563656976657250756250617468290a2020202020202020202020202e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af84f9e7b2274797065223a22554669783634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90507f90503b9046f696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046696174546f6b656e2066726f6d203078623139343336616165346439343632320a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c6974792846696174546f6b656e2e5661756c74526563656976657250756250617468290a2020202020202020202020202e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af84f9e7b2274797065223a22554669783634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "02512485ec3f8e007853b0ea2a22fb2b9f7e2fa55fd9819171c5d013282efee60a7ff4d9f53ba5eebda556d0ead0ca13911bc8996e2c91c5147f8787d10a3244835472616e736665722055534443000201416d6f756e740000554669783634000301526563697069656e740001416464726573730003", - "hash": "7ff4d9f53ba5eebda556d0ead0ca13911bc8996e2c91c5147f8787d10a324483" - }, - { - "title": "SCO.03 - Register Node - 1", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": null - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": null - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f90849b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90279b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9084df90849b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90279b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227da07b2274797065223a224f7074696f6e616c222c2276616c7565223a6e756c6c7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "029246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b685265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b68" - }, - { - "title": "SCO.03 - Register Node - 2", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [] - } - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [] - } - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f90860b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90290b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db77b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90864f90860b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90290b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db77b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "029246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b685265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b68" - }, - { - "title": "SCO.03 - Register Node - 3", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f9090bb9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af9033bb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db8e17b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f9090ff9090bb9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af9033bb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db8e17b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "029246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b685265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b68" - }, - { - "title": "SCO.03 - Register Node - 4", - "valid": true, - "chainID": "Mainnet", - "payloadMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ] - }, - "envelopeMessage": { - "script": "import Crypto\nimport FlowStakingCollection from 0x8d0e87b65159ae63\n\n/// Registers a delegator in the staking collection resource\n/// for the specified node information and the amount of tokens to commit\n\ntransaction(id: String,\n role: UInt8,\n networkingAddress: String,\n networkingKey: String,\n stakingKey: String,\n amount: UFix64,\n publicKeys: [Crypto.KeyListEntry]?) {\n \n let stakingCollectionRef: &FlowStakingCollection.StakingCollection\n\n prepare(account: AuthAccount) {\n self.stakingCollectionRef = account.borrow<&FlowStakingCollection.StakingCollection>(from: FlowStakingCollection.StakingCollectionStoragePath)\n ?? panic(\"Could not borrow ref to StakingCollection\")\n\n if let machineAccount = self.stakingCollectionRef.registerNode(\n id: id,\n role: role,\n networkingAddress: networkingAddress,\n networkingKey: networkingKey,\n stakingKey: stakingKey,\n amount: amount,\n payer: account) \n {\n if publicKeys == nil || publicKeys!.length == 0 {\n panic(\"Cannot provide zero keys for the machine account\")\n }\n for key in publicKeys! {\n machineAccount.keys.add(publicKey: key.publicKey, hashAlgorithm: key.hashAlgorithm, weight: key.weight)\n }\n }\n }\n}\n", - "arguments": [ - { - "type": "String", - "value": "88549335e1db7b5b46c2ad58ddb70b7a45e770cc5fe779650ba26f10e6bae5e6" - }, - { - "type": "UInt8", - "value": "1" - }, - { - "type": "String", - "value": "flow-node.test:3569" - }, - { - "type": "String", - "value": "1348307bc77c688e80049de9d081aa09755da33e6997605fa059db2144fc85e560cbe6f7da8d74b453f5916618cb8fd392c2db856f3e78221dc68db1b1d914e4" - }, - { - "type": "String", - "value": "9e9ae0d645fd5fd9050792e0b0daa82cc1686d9133afa0f81a784b375c42ae48567d1545e7a9e1965f2c1a32f73cf8575ebb7a967f6e4d104d2df78eb8be409135d12da0499b8a00771f642c1b9c49397f22b440439f036c3bdee82f5309dab3" - }, - { - "type": "UFix64", - "value": "92233720368.54775808" - }, - { - "type": "Optional", - "value": { - "type": "Array", - "value": [ - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - }, - { - "type": "String", - "value": "f845b8406e4f43f79d3c1d8cacb3d5f3e7aeedb29feaeb4559fdb71a97e2fd0438565310e87670035d83bc10fe67fe314dba5363c81654595d64884b1ecad1512a64e65e020164" - } - ] - } - } - ], - "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", - "gasLimit": 42, - "proposalKey": { - "address": "f19c161bc24cf4b4", - "keyId": 4, - "sequenceNum": 10 - }, - "payer": "f19c161bc24cf4b4", - "authorizers": [ - "f19c161bc24cf4b4" - ], - "payloadSigs": [] - }, - "encodedTransactionPayloadHex": "f90a62b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90492b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db902377b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", - "encodedTransactionEnvelopeHex": "f90a66f90a62b9058a696d706f72742043727970746f0a696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f2052656769737465727320612064656c656761746f7220696e20746865207374616b696e6720636f6c6c656374696f6e207265736f757263650a2f2f2f20666f722074686520737065636966696564206e6f646520696e666f726d6174696f6e20616e642074686520616d6f756e74206f6620746f6b656e7320746f20636f6d6d69740a0a7472616e73616374696f6e2869643a20537472696e672c0a202020202020202020202020726f6c653a2055496e74382c0a2020202020202020202020206e6574776f726b696e67416464726573733a20537472696e672c0a2020202020202020202020206e6574776f726b696e674b65793a20537472696e672c0a2020202020202020202020207374616b696e674b65793a20537472696e672c0a202020202020202020202020616d6f756e743a205546697836342c0a2020202020202020202020207075626c69634b6579733a205b43727970746f2e4b65794c697374456e7472795d3f29207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a0a20202020202020206966206c6574206d616368696e654163636f756e74203d2073656c662e7374616b696e67436f6c6c656374696f6e5265662e72656769737465724e6f6465280a20202020202020202020202069643a2069642c0a202020202020202020202020726f6c653a20726f6c652c0a2020202020202020202020206e6574776f726b696e67416464726573733a206e6574776f726b696e67416464726573732c0a2020202020202020202020206e6574776f726b696e674b65793a206e6574776f726b696e674b65792c0a2020202020202020202020207374616b696e674b65793a207374616b696e674b65792c0a202020202020202020202020616d6f756e743a20616d6f756e742c0a20202020202020202020202070617965723a206163636f756e7429200a20202020202020207b0a2020202020202020202020206966207075626c69634b657973203d3d206e696c207c7c207075626c69634b657973212e6c656e677468203d3d2030207b0a2020202020202020202020202020202070616e6963282243616e6e6f742070726f76696465207a65726f206b65797320666f7220746865206d616368696e65206163636f756e7422290a2020202020202020202020207d0a202020202020202020202020666f72206b657920696e207075626c69634b65797321207b0a202020202020202020202020202020206d616368696e654163636f756e742e6b6579732e616464287075626c69634b65793a206b65792e7075626c69634b65792c2068617368416c676f726974686d3a206b65792e68617368416c676f726974686d2c207765696768743a206b65792e776569676874290a2020202020202020202020207d0a20202020202020207d0a202020207d0a7d0af90492b85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227d9c7b2274797065223a2255496e7438222c2276616c7565223a2231227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227db89c7b2274797065223a22537472696e67222c2276616c7565223a223133343833303762633737633638386538303034396465396430383161613039373535646133336536393937363035666130353964623231343466633835653536306362653666376461386437346234353366353931363631386362386664333932633264623835366633653738323231646336386462316231643931346534227db8dc7b2274797065223a22537472696e67222c2276616c7565223a22396539616530643634356664356664393035303739326530623064616138326363313638366439313333616661306638316137383462333735633432616534383536376431353435653761396531393635663263316133326637336366383537356562623761393637663665346431303464326466373865623862653430393133356431326461303439396238613030373731663634326331623963343933393766323262343430343339663033366333626465653832663533303964616233227db07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227db902377b2274797065223a224f7074696f6e616c222c2276616c7565223a7b2274797065223a224172726179222c2276616c7565223a5b7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d2c7b2274797065223a22537472696e67222c2276616c7565223a2266383435623834303665346634336637396433633164386361636233643566336537616565646232396665616562343535396664623731613937653266643034333835363533313065383736373030333564383362633130666536376665333134646261353336336338313635343539356436343838346231656361643135313261363465363565303230313634227d5d7d7da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "metadata": "029246ec9b7a5c81151156e7c2f6d356f68b1b884f88728daca46b968d9a46cd5a79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b685265676973746572204e6f64650007014e6f64652049440000537472696e670003014e6f646520526f6c65000155496e74380003014e6574772e20416464726573730002537472696e670003014e6574772e204b65790003537472696e670003015374616b696e67204b65790004537472696e67000301416d6f756e74000555466978363400030400035075622e204b65790006537472696e670003", - "hash": "79de7119aea61bdafb39cc3d1f4fa17ca802c2732726a86d2c636dbc19808b68" + "encodedTransactionPayloadHex": "f90503b9046f696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046696174546f6b656e2066726f6d203078623139343336616165346439343632320a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c6974792846696174546f6b656e2e5661756c74526563656976657250756250617468290a2020202020202020202020202e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af84f9e7b2274797065223a22554669783634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90507f90503b9046f696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f72742046696174546f6b656e2066726f6d203078623139343336616165346439343632320a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c2646696174546f6b656e2e5661756c743e2866726f6d3a2046696174546f6b656e2e5661756c7453746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c6974792846696174546f6b656e2e5661756c74526563656976657250756250617468290a2020202020202020202020202e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af84f9e7b2274797065223a22554669783634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "metadata": "02512485ec3f8e007853b0ea2a22fb2b9f7e2fa55fd9819171c5d013282efee60a7ff4d9f53ba5eebda556d0ead0ca13911bc8996e2c91c5147f8787d10a3244835472616e736665722055534443000201416d6f756e740000554669783634000301526563697069656e740001416464726573730003", + "hash": "7ff4d9f53ba5eebda556d0ead0ca13911bc8996e2c91c5147f8787d10a324483" }, { "title": "SCO.04 - Create Machine Account - 1", @@ -7895,4 +6111,4 @@ "metadata": "0286c69d731560f3bff549c5f180eb4219bfe650ae4efec8e0c5b5ad3ebed54a92dd3b327b09087ea7f8e92a22a6b04a3c6ca33b868b430c4f15f251658c38c1b7437265617465204d616368696e65204163636f756e740002014e6f64652049440000537472696e6700030300035075622e204b65790001537472696e670003", "hash": "dd3b327b09087ea7f8e92a22a6b04a3c6ca33b868b430c4f15f251658c38c1b7" } -] \ No newline at end of file +] diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00000.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00000.png deleted file mode 100644 index cf0d6cbc..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00001.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00001.png deleted file mode 100644 index 2ab14840..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00002.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00002.png deleted file mode 100644 index d9d217d6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00003.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00003.png deleted file mode 100644 index dab7d1f7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00004.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00004.png deleted file mode 100644 index 9432c6c1..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00005.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00005.png deleted file mode 100644 index 33c20042..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00006.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00006.png deleted file mode 100644 index 9c1f1495..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00007.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00007.png deleted file mode 100644 index 09f6db4d..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00007.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00008.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00008.png deleted file mode 100644 index b13ec60b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00008.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00009.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00009.png deleted file mode 100644 index 34e99c4c..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00009.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00010.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00010.png deleted file mode 100644 index a131269e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00010.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00011.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00011.png deleted file mode 100644 index 14379e5a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00011.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00012.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00012.png deleted file mode 100644 index 8336c1b2..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00012.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00013.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00013.png deleted file mode 100644 index d8f24150..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00013.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00014.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00014.png deleted file mode 100644 index 8829fa90..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00014.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00015.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00015.png deleted file mode 100644 index a2fd3cde..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00015.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00016.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00016.png deleted file mode 100644 index c4c85af7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00016.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00017.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00017.png deleted file mode 100644 index 33655dac..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00017.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00018.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00018.png deleted file mode 100644 index 05f27c3a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00018.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00019.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00019.png deleted file mode 100644 index 5ebc5665..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00019.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00020.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00020.png deleted file mode 100644 index f39812e8..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00020.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00021.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00021.png deleted file mode 100644 index 41b0ce2b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00021.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00022.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00022.png deleted file mode 100644 index 44e7069e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00022.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00023.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00023.png deleted file mode 100644 index 7a5610fa..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00023.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00024.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00024.png deleted file mode 100644 index 55ce7183..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00024.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00025.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00025.png deleted file mode 100644 index c4016375..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00025.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00026.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00026.png deleted file mode 100644 index 52b06db9..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00026.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00027.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00027.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00027.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00028.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00028.png deleted file mode 100644 index 7f6ab5e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Mainnet/00028.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00000.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00000.png deleted file mode 100644 index cf0d6cbc..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00001.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00001.png deleted file mode 100644 index f2422205..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00002.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00002.png deleted file mode 100644 index d9d217d6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00003.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00003.png deleted file mode 100644 index dab7d1f7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00004.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00004.png deleted file mode 100644 index 9432c6c1..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00005.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00005.png deleted file mode 100644 index 33c20042..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00006.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00006.png deleted file mode 100644 index 9c1f1495..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00007.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00007.png deleted file mode 100644 index 09f6db4d..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00007.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00008.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00008.png deleted file mode 100644 index b13ec60b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00008.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00009.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00009.png deleted file mode 100644 index 34e99c4c..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00009.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00010.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00010.png deleted file mode 100644 index a131269e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00010.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00011.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00011.png deleted file mode 100644 index 14379e5a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00011.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00012.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00012.png deleted file mode 100644 index 8336c1b2..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00012.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00013.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00013.png deleted file mode 100644 index d8f24150..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00013.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00014.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00014.png deleted file mode 100644 index 8829fa90..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00014.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00015.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00015.png deleted file mode 100644 index a2fd3cde..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00015.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00016.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00016.png deleted file mode 100644 index c4c85af7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00016.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00017.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00017.png deleted file mode 100644 index 33655dac..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00017.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00018.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00018.png deleted file mode 100644 index 05f27c3a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00018.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00019.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00019.png deleted file mode 100644 index 5ebc5665..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00019.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00020.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00020.png deleted file mode 100644 index f39812e8..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00020.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00021.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00021.png deleted file mode 100644 index 7a7c2869..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00021.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00022.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00022.png deleted file mode 100644 index 44e7069e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00022.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00023.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00023.png deleted file mode 100644 index 7a5610fa..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00023.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00024.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00024.png deleted file mode 100644 index 61e19bd5..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00024.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00025.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00025.png deleted file mode 100644 index 0a500512..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00025.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00026.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00026.png deleted file mode 100644 index 52b06db9..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00026.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00027.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00027.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00027.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00028.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00028.png deleted file mode 100644 index 7f6ab5e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-1-Testnet/00028.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00000.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00000.png deleted file mode 100644 index cf0d6cbc..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00001.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00001.png deleted file mode 100644 index 2ab14840..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00002.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00002.png deleted file mode 100644 index d9d217d6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00003.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00003.png deleted file mode 100644 index dab7d1f7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00004.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00004.png deleted file mode 100644 index 9432c6c1..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00005.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00005.png deleted file mode 100644 index 33c20042..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00006.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00006.png deleted file mode 100644 index 9c1f1495..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00007.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00007.png deleted file mode 100644 index 09f6db4d..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00007.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00008.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00008.png deleted file mode 100644 index b13ec60b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00008.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00009.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00009.png deleted file mode 100644 index 34e99c4c..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00009.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00010.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00010.png deleted file mode 100644 index a131269e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00010.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00011.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00011.png deleted file mode 100644 index 14379e5a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00011.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00012.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00012.png deleted file mode 100644 index 8336c1b2..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00012.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00013.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00013.png deleted file mode 100644 index d8f24150..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00013.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00014.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00014.png deleted file mode 100644 index 8829fa90..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00014.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00015.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00015.png deleted file mode 100644 index a2fd3cde..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00015.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00016.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00016.png deleted file mode 100644 index c4c85af7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00016.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00017.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00017.png deleted file mode 100644 index 05f27c3a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00017.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00018.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00018.png deleted file mode 100644 index 5ebc5665..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00018.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00019.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00019.png deleted file mode 100644 index f39812e8..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00019.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00020.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00020.png deleted file mode 100644 index 41b0ce2b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00020.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00021.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00021.png deleted file mode 100644 index 44e7069e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00021.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00022.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00022.png deleted file mode 100644 index 7a5610fa..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00022.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00023.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00023.png deleted file mode 100644 index 55ce7183..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00023.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00024.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00024.png deleted file mode 100644 index c4016375..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00024.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00025.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00025.png deleted file mode 100644 index 52b06db9..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00025.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00026.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00026.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00026.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00027.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00027.png deleted file mode 100644 index 7f6ab5e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Mainnet/00027.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00000.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00000.png deleted file mode 100644 index cf0d6cbc..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00001.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00001.png deleted file mode 100644 index f2422205..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00002.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00002.png deleted file mode 100644 index d9d217d6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00003.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00003.png deleted file mode 100644 index dab7d1f7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00004.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00004.png deleted file mode 100644 index 9432c6c1..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00005.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00005.png deleted file mode 100644 index 33c20042..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00006.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00006.png deleted file mode 100644 index 9c1f1495..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00007.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00007.png deleted file mode 100644 index 09f6db4d..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00007.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00008.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00008.png deleted file mode 100644 index b13ec60b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00008.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00009.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00009.png deleted file mode 100644 index 34e99c4c..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00009.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00010.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00010.png deleted file mode 100644 index a131269e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00010.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00011.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00011.png deleted file mode 100644 index 14379e5a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00011.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00012.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00012.png deleted file mode 100644 index 8336c1b2..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00012.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00013.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00013.png deleted file mode 100644 index d8f24150..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00013.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00014.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00014.png deleted file mode 100644 index 8829fa90..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00014.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00015.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00015.png deleted file mode 100644 index a2fd3cde..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00015.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00016.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00016.png deleted file mode 100644 index c4c85af7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00016.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00017.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00017.png deleted file mode 100644 index 05f27c3a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00017.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00018.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00018.png deleted file mode 100644 index 5ebc5665..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00018.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00019.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00019.png deleted file mode 100644 index f39812e8..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00019.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00020.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00020.png deleted file mode 100644 index 7a7c2869..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00020.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00021.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00021.png deleted file mode 100644 index 44e7069e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00021.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00022.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00022.png deleted file mode 100644 index 7a5610fa..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00022.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00023.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00023.png deleted file mode 100644 index 61e19bd5..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00023.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00024.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00024.png deleted file mode 100644 index 0a500512..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00024.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00025.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00025.png deleted file mode 100644 index 52b06db9..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00025.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00026.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00026.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00026.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00027.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00027.png deleted file mode 100644 index 7f6ab5e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-2-Testnet/00027.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00000.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00000.png deleted file mode 100644 index cf0d6cbc..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00001.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00001.png deleted file mode 100644 index 2ab14840..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00002.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00002.png deleted file mode 100644 index d9d217d6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00003.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00003.png deleted file mode 100644 index dab7d1f7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00004.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00004.png deleted file mode 100644 index 9432c6c1..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00005.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00005.png deleted file mode 100644 index 33c20042..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00006.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00006.png deleted file mode 100644 index 9c1f1495..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00007.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00007.png deleted file mode 100644 index 09f6db4d..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00007.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00008.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00008.png deleted file mode 100644 index b13ec60b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00008.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00009.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00009.png deleted file mode 100644 index 34e99c4c..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00009.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00010.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00010.png deleted file mode 100644 index a131269e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00010.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00011.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00011.png deleted file mode 100644 index 14379e5a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00011.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00012.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00012.png deleted file mode 100644 index 8336c1b2..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00012.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00013.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00013.png deleted file mode 100644 index d8f24150..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00013.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00014.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00014.png deleted file mode 100644 index 8829fa90..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00014.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00015.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00015.png deleted file mode 100644 index a2fd3cde..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00015.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00016.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00016.png deleted file mode 100644 index c4c85af7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00016.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00017.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00017.png deleted file mode 100644 index 12f1ce59..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00017.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00018.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00018.png deleted file mode 100644 index 798f9d17..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00018.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00019.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00019.png deleted file mode 100644 index f57787e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00019.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00020.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00020.png deleted file mode 100644 index 5ad37755..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00020.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00021.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00021.png deleted file mode 100644 index e70cb31f..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00021.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00022.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00022.png deleted file mode 100644 index 05f27c3a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00022.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00023.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00023.png deleted file mode 100644 index 5ebc5665..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00023.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00024.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00024.png deleted file mode 100644 index f39812e8..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00024.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00025.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00025.png deleted file mode 100644 index 41b0ce2b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00025.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00026.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00026.png deleted file mode 100644 index 44e7069e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00026.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00027.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00027.png deleted file mode 100644 index 7a5610fa..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00027.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00028.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00028.png deleted file mode 100644 index 55ce7183..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00028.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00029.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00029.png deleted file mode 100644 index c4016375..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00029.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00030.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00030.png deleted file mode 100644 index 52b06db9..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00030.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00031.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00031.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00031.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00032.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00032.png deleted file mode 100644 index 7f6ab5e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Mainnet/00032.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00000.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00000.png deleted file mode 100644 index cf0d6cbc..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00001.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00001.png deleted file mode 100644 index f2422205..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00002.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00002.png deleted file mode 100644 index d9d217d6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00003.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00003.png deleted file mode 100644 index dab7d1f7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00004.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00004.png deleted file mode 100644 index 9432c6c1..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00005.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00005.png deleted file mode 100644 index 33c20042..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00006.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00006.png deleted file mode 100644 index 9c1f1495..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00007.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00007.png deleted file mode 100644 index 09f6db4d..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00007.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00008.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00008.png deleted file mode 100644 index b13ec60b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00008.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00009.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00009.png deleted file mode 100644 index 34e99c4c..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00009.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00010.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00010.png deleted file mode 100644 index a131269e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00010.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00011.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00011.png deleted file mode 100644 index 14379e5a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00011.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00012.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00012.png deleted file mode 100644 index 8336c1b2..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00012.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00013.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00013.png deleted file mode 100644 index d8f24150..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00013.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00014.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00014.png deleted file mode 100644 index 8829fa90..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00014.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00015.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00015.png deleted file mode 100644 index a2fd3cde..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00015.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00016.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00016.png deleted file mode 100644 index c4c85af7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00016.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00017.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00017.png deleted file mode 100644 index 12f1ce59..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00017.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00018.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00018.png deleted file mode 100644 index 798f9d17..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00018.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00019.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00019.png deleted file mode 100644 index f57787e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00019.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00020.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00020.png deleted file mode 100644 index 5ad37755..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00020.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00021.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00021.png deleted file mode 100644 index e70cb31f..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00021.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00022.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00022.png deleted file mode 100644 index 05f27c3a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00022.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00023.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00023.png deleted file mode 100644 index 5ebc5665..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00023.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00024.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00024.png deleted file mode 100644 index f39812e8..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00024.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00025.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00025.png deleted file mode 100644 index 7a7c2869..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00025.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00026.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00026.png deleted file mode 100644 index 44e7069e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00026.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00027.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00027.png deleted file mode 100644 index 7a5610fa..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00027.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00028.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00028.png deleted file mode 100644 index 61e19bd5..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00028.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00029.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00029.png deleted file mode 100644 index 0a500512..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00029.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00030.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00030.png deleted file mode 100644 index 52b06db9..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00030.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00031.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00031.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00031.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00032.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00032.png deleted file mode 100644 index 7f6ab5e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-3-Testnet/00032.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00000.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00000.png deleted file mode 100644 index cf0d6cbc..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00001.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00001.png deleted file mode 100644 index 2ab14840..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00002.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00002.png deleted file mode 100644 index d9d217d6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00003.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00003.png deleted file mode 100644 index dab7d1f7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00004.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00004.png deleted file mode 100644 index 9432c6c1..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00005.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00005.png deleted file mode 100644 index 33c20042..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00006.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00006.png deleted file mode 100644 index 9c1f1495..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00007.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00007.png deleted file mode 100644 index 09f6db4d..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00007.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00008.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00008.png deleted file mode 100644 index b13ec60b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00008.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00009.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00009.png deleted file mode 100644 index 34e99c4c..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00009.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00010.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00010.png deleted file mode 100644 index a131269e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00010.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00011.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00011.png deleted file mode 100644 index 14379e5a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00011.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00012.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00012.png deleted file mode 100644 index 8336c1b2..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00012.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00013.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00013.png deleted file mode 100644 index d8f24150..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00013.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00014.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00014.png deleted file mode 100644 index 8829fa90..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00014.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00015.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00015.png deleted file mode 100644 index a2fd3cde..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00015.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00016.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00016.png deleted file mode 100644 index c4c85af7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00016.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00017.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00017.png deleted file mode 100644 index 12f1ce59..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00017.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00018.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00018.png deleted file mode 100644 index 798f9d17..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00018.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00019.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00019.png deleted file mode 100644 index f57787e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00019.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00020.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00020.png deleted file mode 100644 index 5ad37755..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00020.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00021.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00021.png deleted file mode 100644 index e70cb31f..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00021.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00022.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00022.png deleted file mode 100644 index 038b4981..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00022.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00023.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00023.png deleted file mode 100644 index 24d3677e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00023.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00024.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00024.png deleted file mode 100644 index 2a277309..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00024.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00025.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00025.png deleted file mode 100644 index 077d5311..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00025.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00026.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00026.png deleted file mode 100644 index aeb52474..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00026.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00027.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00027.png deleted file mode 100644 index 80c594a8..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00027.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00028.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00028.png deleted file mode 100644 index e2128ac9..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00028.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00029.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00029.png deleted file mode 100644 index f171a5d4..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00029.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00030.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00030.png deleted file mode 100644 index bf3f115b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00030.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00031.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00031.png deleted file mode 100644 index 68df9e18..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00031.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00032.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00032.png deleted file mode 100644 index 05f27c3a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00032.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00033.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00033.png deleted file mode 100644 index 5ebc5665..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00033.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00034.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00034.png deleted file mode 100644 index f39812e8..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00034.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00035.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00035.png deleted file mode 100644 index 41b0ce2b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00035.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00036.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00036.png deleted file mode 100644 index 44e7069e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00036.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00037.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00037.png deleted file mode 100644 index 7a5610fa..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00037.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00038.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00038.png deleted file mode 100644 index 55ce7183..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00038.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00039.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00039.png deleted file mode 100644 index c4016375..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00039.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00040.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00040.png deleted file mode 100644 index 52b06db9..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00040.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00041.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00041.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00041.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00042.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00042.png deleted file mode 100644 index 7f6ab5e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Mainnet/00042.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00000.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00000.png deleted file mode 100644 index cf0d6cbc..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00000.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00001.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00001.png deleted file mode 100644 index f2422205..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00001.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00002.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00002.png deleted file mode 100644 index d9d217d6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00002.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00003.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00003.png deleted file mode 100644 index dab7d1f7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00003.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00004.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00004.png deleted file mode 100644 index 9432c6c1..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00004.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00005.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00005.png deleted file mode 100644 index 33c20042..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00005.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00006.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00006.png deleted file mode 100644 index 9c1f1495..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00006.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00007.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00007.png deleted file mode 100644 index 09f6db4d..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00007.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00008.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00008.png deleted file mode 100644 index b13ec60b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00008.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00009.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00009.png deleted file mode 100644 index 34e99c4c..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00009.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00010.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00010.png deleted file mode 100644 index a131269e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00010.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00011.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00011.png deleted file mode 100644 index 14379e5a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00011.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00012.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00012.png deleted file mode 100644 index 8336c1b2..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00012.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00013.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00013.png deleted file mode 100644 index d8f24150..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00013.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00014.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00014.png deleted file mode 100644 index 8829fa90..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00014.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00015.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00015.png deleted file mode 100644 index a2fd3cde..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00015.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00016.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00016.png deleted file mode 100644 index c4c85af7..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00016.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00017.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00017.png deleted file mode 100644 index 12f1ce59..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00017.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00018.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00018.png deleted file mode 100644 index 798f9d17..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00018.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00019.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00019.png deleted file mode 100644 index f57787e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00019.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00020.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00020.png deleted file mode 100644 index 5ad37755..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00020.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00021.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00021.png deleted file mode 100644 index e70cb31f..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00021.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00022.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00022.png deleted file mode 100644 index 038b4981..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00022.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00023.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00023.png deleted file mode 100644 index 24d3677e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00023.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00024.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00024.png deleted file mode 100644 index 2a277309..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00024.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00025.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00025.png deleted file mode 100644 index 077d5311..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00025.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00026.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00026.png deleted file mode 100644 index aeb52474..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00026.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00027.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00027.png deleted file mode 100644 index 80c594a8..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00027.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00028.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00028.png deleted file mode 100644 index e2128ac9..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00028.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00029.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00029.png deleted file mode 100644 index f171a5d4..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00029.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00030.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00030.png deleted file mode 100644 index bf3f115b..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00030.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00031.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00031.png deleted file mode 100644 index 68df9e18..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00031.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00032.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00032.png deleted file mode 100644 index 05f27c3a..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00032.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00033.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00033.png deleted file mode 100644 index 5ebc5665..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00033.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00034.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00034.png deleted file mode 100644 index f39812e8..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00034.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00035.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00035.png deleted file mode 100644 index 7a7c2869..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00035.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00036.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00036.png deleted file mode 100644 index 44e7069e..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00036.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00037.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00037.png deleted file mode 100644 index 7a5610fa..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00037.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00038.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00038.png deleted file mode 100644 index 61e19bd5..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00038.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00039.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00039.png deleted file mode 100644 index 0a500512..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00039.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00040.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00040.png deleted file mode 100644 index 52b06db9..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00040.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00041.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00041.png deleted file mode 100644 index 006c26ab..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00041.png and /dev/null differ diff --git a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00042.png b/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00042.png deleted file mode 100644 index 7f6ab5e6..00000000 Binary files a/tests/snapshots/nanos/test_transaction_manifest/SCO.03-4-Testnet/00042.png and /dev/null differ diff --git a/unit-tests/CMakeLists.txt b/unit-tests/CMakeLists.txt index 535d011e..f1495093 100644 --- a/unit-tests/CMakeLists.txt +++ b/unit-tests/CMakeLists.txt @@ -42,7 +42,6 @@ include_directories(../deps/jsmn/src) add_executable(test_rlp test_rlp.c) add_executable(test_tx_metadata test_tx_metadata.c) -add_executable(test_script_parser test_script_parser.c) add_library(base58 SHARED $ENV{BOLOS_SDK}/lib_standard_app/base58.c) add_library(bip32 SHARED $ENV{BOLOS_SDK}/lib_standard_app/bip32.c) @@ -53,7 +52,6 @@ add_library(format SHARED $ENV{BOLOS_SDK}/lib_standard_app/format.c) add_library(varint SHARED $ENV{BOLOS_SDK}/lib_standard_app/varint.c) add_library(apdu_parser SHARED $ENV{BOLOS_SDK}/lib_standard_app/parser.c) add_library(rlp ../src/rlp.c) -add_library(script_parser ../src/script_parser.c) add_library(tx_metadata ../src/tx_metadata.c) add_library(hexutils ../deps/ledger-zxlib/src/hexutils.c) add_library(sha256mock utils/sha256.c) @@ -70,11 +68,5 @@ target_link_libraries(test_tx_metadata PUBLIC tx_metadata sha256mock) -target_link_libraries(test_script_parser PUBLIC - cmocka - gcov - script_parser) - add_test(test_rlp test_rlp) add_test(test_tx_metadata test_tx_metadata) -add_test(test_script_parser test_script_parser) diff --git a/unit-tests/test_script_parser.c b/unit-tests/test_script_parser.c deleted file mode 100644 index ab5d9229..00000000 --- a/unit-tests/test_script_parser.c +++ /dev/null @@ -1,331 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "script_parser.h" - -bool PARSE_TEST(const char *script, size_t scriptSize, const char *template, size_t templateSize, bool expectedResult, - const char **expectedValues, size_t expectedValuesSize) { - script_parsed_elements_t parsed; - bool result = parseScript(&parsed, (const uint8_t *) script, scriptSize, - (const uint8_t *) template, templateSize); - if (result != expectedResult) { - printf("Return value error: Result: %d, expected: %d\n", result, expectedResult); - return false; - } - if (result) { - if (parsed.elements_count != expectedValuesSize) { - printf("Value size error: Result: %ld, expected: %ld\n", parsed.elements_count, expectedValuesSize); - return false; - } - - for(size_t i=0; i(\n" - " /public/zzzzzzZ,\n" - " target: /storage/c\n" - " )\n" - " }\n" - "}\n"; - - const char* expected1[11] = {"0x631e88ae7f1d7c20", "0x631e88ae7f1d7c20", "aaa", "bbb", "c", "aaa", "c", "x", "_", "zzzzzzZ", "c"}; - assert_true(PARSE_NFT_TEST(parseNFT1, script1, sizeof(script1)-1, true, expected1, sizeof(expected1)/sizeof(*expected1), - SCRIPT_TYPE_NFT_SETUP_COLLECTION)); - - const char script2[] = - "import NonFungibleToken from 0x631e88ae7f1d7c20\n" - "import MetadataViews from 0x631e88ae7f1d7c20\n" - "import aaa from bbb\n" - "transaction {\n" - " prepare(acct: AuthAccount) {\n" - " let collectionType = acct.type(at: /storage/c)\n" - " // if there already is a collection stored, return\n" - " if (collectionType != nil) {\n" - " return\n" - " }\n" - " // create empty collection\n" - " let collection <- aaa.createEmptyCollection()\n" - " // put the new Collection in storage\n" - " acct.save(<-collection, to: /storage/cc)\n" - " // create a public capability for the collection\n" - " acct.link<&{NonFungibleToken.CollectionPublic, NonFungibleToken.Receiver, x._, MetadataViews.ResolverCollection}>(\n" - " /public/zzzzzzZ,\n" - " target: /storage/c\n" - " )\n" - " }\n" - "}\n"; - - assert_true(PARSE_NFT_TEST(parseNFT1, script2, sizeof(script2)-1, false, NULL, 0, SCRIPT_TYPE_UNKNOWN)); //storages do not match - - const char script3[] = - "import NonFungibleToken from 0x631e88ae7f1d7c20\n" - "import MetadataViews from 0x631e88ae7f1d7c20\n" - "import aaaa from bbb\n" - "transaction {\n" - " prepare(acct: AuthAccount) {\n" - " let collectionType = acct.type(at: /storage/c)\n" - " // if there already is a collection stored, return\n" - " if (collectionType != nil) {\n" - " return\n" - " }\n" - " // create empty collection\n" - " let collection <- aaa.createEmptyCollection()\n" - " // put the new Collection in storage\n" - " acct.save(<-collection, to: /storage/c)\n" - " // create a public capability for the collection\n" - " acct.link<&{NonFungibleToken.CollectionPublic, NonFungibleToken.Receiver, x._, MetadataViews.ResolverCollection}>(\n" - " /public/zzzzzzZ,\n" - " target: /storage/c\n" - " )\n" - " }\n" - "}\n"; - - assert_true(PARSE_NFT_TEST(parseNFT1, script3, sizeof(script3)-1, false, NULL, 0, SCRIPT_TYPE_UNKNOWN)); //contract names do not match -} - -static void test_parseTestNFT2(void **state) { - assert_true(PARSE_NFT_TEST(parseNFT2, "", 0, false, NULL, 0, SCRIPT_TYPE_UNKNOWN)); - - const char script1[] = - "import NonFungibleToken from 0x1d7e57aa55817448\n" - "import aaaa from bbb\n" - "transaction(recipient: Address, withdrawID: UInt64) {\n" - " // local variable for storing the transferred nft\n" - " let transferToken: @NonFungibleToken.NFT\n" - " prepare(owner: AuthAccount) {\n" - " // check if collection exists\n" - " if (owner.type(at: /storage/ststst) != Type<@aaaa.Collection>()) {\n" - " panic(\"Could not borrow a reference to the stored collection\")\n" - " }\n" - " // borrow a reference to the collection\n" - " let collectionRef = owner\n" - " .borrow<&aaaa.Collection>(from: /storage/ststst)!\n" - " // withdraw the NFT\n" - " self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n" - " }\n" - " execute {\n" - " // get the recipient's public account object\n" - " let recipient = getAccount(recipient)\n" - " // get receivers capability\n" - " let nonFungibleTokenCapability = recipient\n" - " .getCapability<&{NonFungibleToken.CollectionPublic}>(/public/publicPath)\n" - " // check the recipient has a NonFungibleToken public capability\n" - " if (!nonFungibleTokenCapability.check()) {\n" - " panic(\"Could not borrow a reference to the receiver's collection\")\n" - " }\n" - " // deposit nft to recipients collection\n" - " nonFungibleTokenCapability\n" - " .borrow()!\n" - " .deposit(token: <-self.transferToken)\n" - " }\n" - "}\n"; - - const char* expected1[8] = {"0x1d7e57aa55817448", "aaaa", "bbb", "ststst", "aaaa", "aaaa", "ststst", "publicPath"}; - assert_true(PARSE_NFT_TEST(parseNFT2, script1, sizeof(script1)-1, true, expected1, sizeof(expected1)/sizeof(*expected1), - SCRIPT_TYPE_NFT_TRANSFER)); - - const char script2[] = - "import NonFungibleToken from 0x1d7e57aa55817448\n" - "import aaaa from bbb\n" - "transaction(recipient: Address, withdrawID: UInt64) {\n" - " // local variable for storing the transferred nft\n" - " let transferToken: @NonFungibleToken.NFT\n" - " prepare(owner: AuthAccount) {\n" - " // check if collection exists\n" - " if (owner.type(at: /storage/ststst) != Type<@aaaa.Collection>()) {\n" - " panic(\"Could not borrow a reference to the stored collection\")\n" - " }\n" - " // borrow a reference to the collection\n" - " let collectionRef = owner\n" - " .borrow<&aaaaa.Collection>(from: /storage/ststst)!\n" - " // withdraw the NFT\n" - " self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n" - " }\n" - " execute {\n" - " // get the recipient's public account object\n" - " let recipient = getAccount(recipient)\n" - " // get receivers capability\n" - " let nonFungibleTokenCapability = recipient\n" - " .getCapability<&{NonFungibleToken.CollectionPublic}>(/public/publicPath)\n" - " // check the recipient has a NonFungibleToken public capability\n" - " if (!nonFungibleTokenCapability.check()) {\n" - " panic(\"Could not borrow a reference to the receiver's collection\")\n" - " }\n" - " // deposit nft to recipients collection\n" - " nonFungibleTokenCapability\n" - " .borrow()!\n" - " .deposit(token: <-self.transferToken)\n" - " }\n" - "}\n"; - - assert_true(PARSE_NFT_TEST(parseNFT2, script2, sizeof(script2)-1, false, NULL, 0, SCRIPT_TYPE_UNKNOWN)); //contractName mismatch - - const char script3[] = - "import NonFungibleToken from 0x1d7e57aa55817448\n" - "import aaaa from bbb\n" - "transaction(recipient: Address, withdrawID: UInt64) {\n" - " // local variable for storing the transferred nft\n" - " let transferToken: @NonFungibleToken.NFT\n" - " prepare(owner: AuthAccount) {\n" - " // check if collection exists\n" - " if (owner.type(at: /storage/stst) != Type<@aaaa.Collection>()) {\n" - " panic(\"Could not borrow a reference to the stored collection\")\n" - " }\n" - " // borrow a reference to the collection\n" - " let collectionRef = owner\n" - " .borrow<&aaaa.Collection>(from: /storage/ststst)!\n" - " // withdraw the NFT\n" - " self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n" - " }\n" - " execute {\n" - " // get the recipient's public account object\n" - " let recipient = getAccount(recipient)\n" - " // get receivers capability\n" - " let nonFungibleTokenCapability = recipient\n" - " .getCapability<&{NonFungibleToken.CollectionPublic}>(/public/publicPath)\n" - " // check the recipient has a NonFungibleToken public capability\n" - " if (!nonFungibleTokenCapability.check()) {\n" - " panic(\"Could not borrow a reference to the receiver's collection\")\n" - " }\n" - " // deposit nft to recipients collection\n" - " nonFungibleTokenCapability\n" - " .borrow()!\n" - " .deposit(token: <-self.transferToken)\n" - " }\n" - "}\n"; - - assert_true(PARSE_NFT_TEST(parseNFT2, script3, sizeof(script3)-1, false, NULL, 0, SCRIPT_TYPE_UNKNOWN)); // storage mismatch -} - -int main() { - const struct CMUnitTest tests[] = {cmocka_unit_test(test_parseTest), cmocka_unit_test(test_parseTestNFT1), cmocka_unit_test(test_parseTestNFT2)}; - - return cmocka_run_group_tests(tests, NULL, NULL); -} diff --git a/unit-tests/test_tx_metadata.c b/unit-tests/test_tx_metadata.c index 6b0c25a4..d256197c 100644 --- a/unit-tests/test_tx_metadata.c +++ b/unit-tests/test_tx_metadata.c @@ -47,7 +47,7 @@ const uint8_t TX_METADATA_TOKEN_TRANSFER[] = { 2, //number of arguments //Argument 1 - ARGUMENT_TYPE_OPTIONALARRAY, 5, 10, + ARGUMENT_TYPE_ARRAY, 5, 10, 'A', 'm', 'o', 'u', 'n', 't', 0, //arg name (to display) 0, //argument index 'U','I', 'n', 't', '6', '4', 0, //expected value type @@ -122,7 +122,7 @@ static void test_parseCompressedTxData(void **state) { assert_string_equal(result.txName, "Token Transfer"); assert_int_equal(result.txNameLength, 14); assert_int_equal(result.argCount, 2); - assert_int_equal(result.arguments[0].argumentType, ARGUMENT_TYPE_OPTIONALARRAY); + assert_int_equal(result.arguments[0].argumentType, ARGUMENT_TYPE_ARRAY); assert_int_equal(result.arguments[0].arrayMinElements, 5); assert_int_equal(result.arguments[0].arrayMaxElements, 10); assert_string_equal(result.arguments[0].displayKey, "Amount");