Описание тега starknet

1 ответ

Проверка результата сообщения/вызова L1 -> L2 в Starknet

Я написал пару контрактов для L1 (Ethereum) и L2 (Starknet), и они общаются здесь . Я вижу, что L1 отправил ожидаемое сообщение, см. этот TX на etherscan . Однако последнее сообщение там никогда не выполнялось в моем контракте L2. Я пытаюсь выяснить…
14 май '22 в 11:37
0 ответов

Что значит объявить «локальную» переменную внутри «let»?

Как я понимаю, letопределяет ссылку, которую можно рассматривать как псевдоним, например let x = y * y * yне вычисляет, а вхождения xбудет заменен y * y * y. Локальные переменные аналогичны локальным переменным других языков. Как и в https://www.cai…
04 апр '22 в 13:42
1 ответ

когда использовать оптимизацию хвостового вызова в смарт-контракте cairo

Я часто могу сделать терминальную рекурсивную версию своих функций с немного менее элегантным кодом. Должен ли я сделать это, потому что это может снизить комиссию, или я должен оставить неоптимизированную версию? Например, вот «неоптимизированная» …
20 май '22 в 16:08
1 ответ

Почему эта каирская программа хранит в памяти степень двойки?

Я пытаюсь решить этот бонусный вопрос из учебника «Как работает Каир». Я запустил следующую функцию, открыл трассировщик Cairo и увидел, что память заполнена степенями двойки. Почему? func main(): [fp + 1] = 2; ap++ [fp] = 5201798304953761792; ap++ …
16 мар '22 в 16:27
3 ответа

что означает код ошибки Starknet «ENTRY_POINT_NOT_FOUND_IN_CONTRACT»?

Я новичок в Каире и StarkNet. Я использую простой контракт, указанный в следующей ссылке документов Каира. Я следую всем шагам. После компиляции, когда я пытаюсь объявить контракт, выдается следующая ошибка. Ошибка Got BadRequest при попытке доступа…
09 сен '22 в 06:02
1 ответ

Как преобразовать струну в каирский войлок (элемент поля)?

Cairo требует, чтобы все данные были войлочными. https://www.cairo-lang.org/docs/how_cairo_works/cairo_intro.html#field-elements Как преобразовать строку в войлок в JavaScript?
13 сен '22 в 13:31
0 ответов

Развертывание контракта Cairo с использованием Protostar

protostar invoke --contract-address 0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf --function "deployContract" --network testnet --account-address 0x0691622bBFD29e835bA4004e7425A4e9630840EbD11c5269DE51C16774585b16 --max-fee auto…
16 дек '22 в 00:39
1 ответ

Проблема с объявлением образца контракта в тестовой сети starknet

Я пытаюсь объявить образец контракта, как определено здесь: https://www.cairo-lang.org/docs/hello_starknet/intro.html#declare-contract При вызове starknet declare --contract contract_compiled.json Я все еще получаю: Got BadRequest while trying to ac…
05 янв '23 в 12:24
1 ответ

Как сгенерировать доказательство для программы Cairo и проверить его?

В SNARK вы можете использовать Zokrates или snarkjs , чтобы сгенерировать доказательство для программы/вычисления и проверить его локально или на Ethereum. Подобно этому оставшемуся без ответа вопросу , как сделать то же самое в Каире и СТАРКЕ, скаж…
20 июл '22 в 18:01
2 ответа

В чем неэффективность этого каирского кода с использованием alloc_locals

Следующий код: func pow4(n) -> (m : felt): alloc_locals local x jmp body if n != 0 [ap] = 0; ap++ ret body: x = n * n [ap] = x * x; ap++ ret end func main(): pow4(n=5) ret end объявлен неэффективным в документе из-за прерывистой памяти. Я запусти…
13 июн '22 в 10:20
1 ответ

Почему range_check_ptr проверяет [0, 2^128) вместо [0, P/2)

Согласно документу, войлок — это элемент поля, то есть любое целое число в диапазоне [0, P) с P = 2 ^ 251 + 17 * 2 ^ 192 + 1. С другой стороны, range_check_ptr проверяет, находится ли войлок в пределах [0, 2^128). Я не понимаю этого ограничения: поч…
09 июл '22 в 14:43
0 ответов

Не удалось найти модуль «starkware.cairo.common.bool»

При попытке скомпилировать этот код в cairo взят с: https://wizard.openzeppelin.com/cairo %lang starknet from starkware.cairo.common.cairo_builtins import HashBuiltin from starkware.cairo.common.uint256 import Uint256 from starkware.cairo.common.boo…
18 июл '22 в 13:01
0 ответов

Как получить идентификатор цепочки Старкнета с помощью javascript

См. https://docs.starknet.io/docs/Blocks/transactions/#chain-id . Пример написан на питоне. Как мне сделать эквивалент в javascript?
08 июл '22 в 09:36
1 ответ

Как оптимизировать газ в Каире с помощью Uint256/felt?

Я изучаю Cairo и хочу узнать больше об оптимизации газа. В компиляторе Solidity есть разница между записью uint128 и uint256. Аналогично C и другим языкам, например: contract ThisIsNotAnOptimizedContract{ uint128 Zero; uint256 One; uint128 Two; } co…
29 ноя '22 в 15:57
1 ответ

развертывание предварительно профинансированной учетной записи OZ с помощью starknet js

несколько спецификаций: работает на goerli alpha, starknet js 0.4.9 Я пытаюсь развернуть предварительно профинансированную учетную запись openzeppelin 0.5.0. Я обнаружил, что хэш класса:ACC_CLASS_HASH=0x750cd490a7cd1572411169eaa8be292325990d33c5d473…
14 ноя '22 в 05:48
0 ответов

Как правильно читать ленту данных chainlink на Starknet

В Starknet (testnet) я хотел бы узнать текущую цену ETH/USD через другой контракт. Однако при вызове моего контракта со starknet cli, чтобы узнать, могу ли я получить цену, я получаю следующую ошибку: Error message: SimpleReadAccessController: addre…
23 фев '23 в 11:02
0 ответов

Я получил эту ошибку protostar, когда пытался инициализировать проект

я побежалprotostar initи получил эту ошибку ниже: protostar init [5238] Error loading Python lib '/home/page/.protostar/dist/protostar/libpython3.9.so.1.0': dlopen: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.35' not found (required by /home/p…
05 фев '23 в 17:07
1 ответ

Сколько стоит хранилище в StarkNet?

Если хранение одного значения в виртуальной машине Ethereum стоит 20 000 газа, сколько это стоит на стороне StarkNet? Являются ли последующие обновления того же слота более дешевыми? Я предполагаю, что точный ответ, вероятно, зависит, по крайней мер…
06 июн '22 в 03:22
1 ответ

Тестирование функции контракта Starknet Cairo с адресом

Я создал модуль на языке Cairo и хотел бы протестировать его. Контракт довольно прост: он управляет списком авторизованных адресов и предоставляет некоторые вспомогательные функции «модификатора». Я взял пример кода модульного тестирования из докуме…
19 июл '22 в 10:02
1 ответ

HashBuiltin - Каир

у меня этоcontract.cairo:3:59: Unknown identifier 'HashBuiltin'после выполнения: starknet-compile contract.cairo --output contract_compiled.json --abi contract_abi.json код : @external func increase_balance{syscall_ptr : felt*, pedersen_ptr : HashBu…
18 июл '22 в 11:41