흐름에 따라 | Изучаем FCL — 3. Как вернуть пользовательское значение из скрипта
크라트키 오브조르
В этом руководстве вы узнаете, как вернуть значение, содержащее несколько других значений, которые не имеют одинакового типа. Для этого мы разберем и используем пользовательскую структуру Cadence Struct.
💡Лучше учиться с помощью видео? К счастью для вас, есть видео, которое вы можете смотреть вместе с этим руководством. Рассказывает один и единственный разработчик Flow Developer Advocate - !
콘텐츠 키마징
https://youtu.be/DWz8Plv5n3k
Ранее в разделе "Изучение FCL"
В мы узнали, как передавать аргументы в наш скрипт Cadence. Но если вы помните один из примеров -
passMultipleDifferentTypes
- мы могли вернуть только одно значение, хотя передавали несколько различнвых типолько различнвых типолько.Сегодня я покажу вам, как можно определить пользовательскую структуру в строке скрипта, а затем использовать ее в качествавать вопоп.
예를 들어! 💪
Шаг 1 - Установка
Добавьте
"@onflow/fcl": "1.0.0"
в качестве зависимостиШаг 2 - 나스트로이카
Как и в прошлый раз импортируем необходимые 방법 및 nasstrаиваем FCL:
import { query, config } from "@onflow/fcl";
const api = "https://rest-testnet.onflow.org";
config().put("accessNode.api", api);
Шаг 3 - 현실화 방법 fetchCustom
В строке скрипта разрешается определять новые структуры. Мы создадим одну из них и назовем ее
Custom
(можно использовать любое имя по своему усмотрению)const fetchCustom = async (name) => {
const cadence = `
// We will define custom Struct with name Custom :)
pub struct Custom {
pub let number: Int
pub let address: Address
// underscore before name of the arguments will allow us to pass values
// without specifying the name of the arguments, which is usefull when
// you have only a few of them
init(number: Int, address: Address){
self.number = number
self.address = address
}
}
pub fun main():Custom {
// in order to create instance of a struct you use it's name
// and pass initialization arguments in parentheses
let t = Custom(number: 42, address: 0x1337)
return t
}
`;
const custom = await query({ cadence });
const { number, address } = custom;
console.log(`number field is ${number}`)
console.log(`address field is ${address}`)
};
Заключение
Как всегда, выполним код с помощью IIFE:
(async () => {
console.clear();
await fetchCustom();
})();
В консоли вы должны увидеть следующий результат:
number field is: 42
address field is: 0x0000000000001337
Вы потерялись 🤷♂️? Не беспокойтесь 😉 - проверьте полный код на Codesandbox .
В следующий раз мы применим наши приобретенные навыки и используем.find 배포 계약 для преобразования .find ID 이름 в адрес.
До следующего раза 👋
정보 조사
예를 들어 코드 — https://codesandbox.io/s/dev-to-fcl-return-custom-struct-sgywnx
케이던스 구조 — https://docs.onflow.org/cadence/language/composite-types/#composite-type-declaration-and-creation
Другие источники, которые могут быть вам полезны:
(영어) | Документация Flow - https://docs.onflow.org/ - более детальная информации о блокчейне Flow и как взаимодействовать с ним
(영어) | Flow Portal - https://flow.com/ - Flow에 대한 진입점
(영어) | FCL JS - https://github.com/onflow/fcl-js - Исходный код и возможность поучаствовать в разработке библиотеки FCL JS 라이브러리
(영어) | 케이던스 - https://docs.onflow.org/cadence/
Codesandbox - https://codesandbox.io - Замечательная среда разработки и прототипирования прямо в вашем браузере
Reference
이 문제에 관하여(흐름에 따라 | Изучаем FCL — 3. Как вернуть пользовательское значение из скрипта), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/egormajj/sozdaiem-na-flow-izuchaiem-fcl-3-kak-viernut-polzovatielskoie-znachieniie-iz-skripta-1ccn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)