Created at 1pm, Jan 12
omerSoftware Development
1
Solidity Dokümantasyonu
Abok2ege7zy-IvaHVW0aijt5OvWnNrXex_LmKJxRnbQ
File Type
PDF
Entry Count
975
Embed. Model
jina_embeddings_v2_base_en
Index Type
hnsw

Solidity akıllı sözleşmelerin (smart contracts) uygulanması için geliştirilen nesne yönelimli, üst düzey bir programlama dilidir. Akıllı sözleşmeler Ethereum ağı içindeki hesapların hareketlerini ve davranışlarını yöneten programlardır.

Mapping deeri deer olmayan bir trse, hesaplanan yuva verinin balangcn iaret eder. rnein, deer struct trndeyse, yeye ulamak iin struct yesine karlk gelen bir ofset eklemeniz gerekir. rnek olarak, aadaki szlemeye bakalm: // SPDX-License-Identifier: GPL-3.0 pragma solidity >=0.4.0 <0.9.0; contract C { struct S { uint16 a; uint16 b; uint256 c; } uint x; mapping(uint => mapping(uint => S)) data; } 3.15. Depolama Alanndaki Durum Deikenlerinin Dzeni 185
id: 68197cf34f4030892010ab0bddc2232a - page: 189
Solidity Documentation, Yaym 0.8.15 Let us compute the storage location of data.c. The position of the mapping itself is 1 (the variable x with 32 bytes precedes it). This means data is stored at keccak256(uint256(4) . uint256(1)). The type of data is again a mapping and the data for data starts at slot keccak256(uint256(9) . keccak256(uint256(4) . uint256(1))). The slot offset of the member c inside the struct S is 1 because a and b are packed in a single slot. This means the slot for data.c is keccak256(uint256(9) . keccak256(uint256(4) . uint256(1))) + 1. The type of the value is uint256, so it uses a single slot. bytes ve string bytes ve string ayn ekilde ifrelenir. Genel olarak, ifreleme bytes1[] ifrelemesine benzer; dizinin kendisi iin bir yuva ve bu yuvann konumunun keccak256 hash`i kullanlarak hesaplanan bir veri alan vardr. Ancak, kk deerler iin (32 bayttan daha kk) dizi elemanlar uzunluklaryla birlikte ayn yuvada saklanr.
id: 448501bc2b8d9a1e99487ea37db1cdff - page: 190
32 veya daha fazla bayt uzunluundaki verileri saklayan bayt dizileri iin, p ana yuvas length * 2 + 1 deerini saklar ve veriler her zamanki gibi keccak256(p) iinde saklanr. Bu, en dk bitin ayarlanp ayarlanmadn kontrol ederek ksa bir diziyi uzun bir diziden ayrt edebileceiniz anlamna gelir: ksa (ayarlanmam) ve uzun (ayarlanm). Not: Geersiz olarak ifrelenmi yuvalarn ilenmesi u anda desteklenmemektedir ancak gelecekte bu zellik eklenebilir. IR araclyla derleme yapyorsanz, geersiz olarak kodlanm bir yuvay okumak Panic(0x22) hatasyla sonulanr. 3.15.2 JSON kts Bir szlemenin depolama dzeni standart JSON arayz araclyla talep edilebilir. kt, storage ve types olmak zere iki anahtar ieren bir JSON nesnesidir. storage nesnesi, her bir elemann aadaki forma sahip olduu bir dizidir: {
id: 60c20e67664c3624fe37479ab61690c4 - page: 190
"astId": 2, "contract": "fileA:A", "label": "x", "offset": 0, "slot": "0", "type": "t_uint256" } Yukardaki rnek, fileA kaynak biriminden contract A { uint x; } depolama dzenidir ve astId durum deikeninin bildiriminin AST nodeunun idsidir contract, n ek olarak yolunu da ieren szlemenin addr label durum deikeninin addr offset ifrelemeye gre depolama yuvas iindeki bayt cinsinden ofsettir slot durum deikeninin bulunduu veya balad depolama yuvasdr. Bu say ok byk olabilir ve bu nedenle JSON deeri bir dize olarak gsterilir. type deikenin tip bilgisi iin anahtar olarak kullanlan bir tanmlaycdr (aada aklanmtr) Verilen typep, bu durumda t_uint256, types iinde u forma sahip bir eleman temsil eder: 186 Blm 3. indekiler Solidity Documentation, Yaym 0.8.15 { "encoding": "inplace", "label": "uint256", "numberOfBytes": "32", }
id: befa94f65fcfa0fd1f27703c3ec7d2d0 - page: 190
How to Retrieve?
# Search

curl -X POST "https://search.dria.co/hnsw/search" \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"rerank": true, "top_n": 10, "contract_id": "Abok2ege7zy-IvaHVW0aijt5OvWnNrXex_LmKJxRnbQ", "query": "What is alexanDRIA library?"}'
        
# Query

curl -X POST "https://search.dria.co/hnsw/query" \
-H "x-api-key: <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{"vector": [0.123, 0.5236], "top_n": 10, "contract_id": "Abok2ege7zy-IvaHVW0aijt5OvWnNrXex_LmKJxRnbQ", "level": 2}'