@typus/typus-sdk 1.4.3-c → 1.4.3-e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +10 -2
- package/src/_dependencies/source/0x1/ascii/structs.ts +135 -0
- package/src/_dependencies/source/0x1/bit-vector/structs.ts +70 -0
- package/src/_dependencies/source/0x1/fixed-point32/structs.ts +69 -0
- package/src/_dependencies/source/0x1/index.ts +1 -0
- package/src/_dependencies/source/0x1/init.ts +16 -0
- package/src/_dependencies/source/0x1/option/structs.ts +74 -0
- package/src/_dependencies/source/0x1/string/structs.ts +70 -0
- package/src/_dependencies/source/0x1/type-name/structs.ts +70 -0
- package/src/_dependencies/source/0x1d17058789bd1e1e79f1a92424519a88146f191f58a06cc4d9ab23d17d46ab73/index.ts +1 -0
- package/src/_dependencies/source/0x1d17058789bd1e1e79f1a92424519a88146f191f58a06cc4d9ab23d17d46ab73/init.ts +14 -0
- package/src/_dependencies/source/0x1d17058789bd1e1e79f1a92424519a88146f191f58a06cc4d9ab23d17d46ab73/oracle/structs.ts +203 -0
- package/src/_dependencies/source/0x1d17058789bd1e1e79f1a92424519a88146f191f58a06cc4d9ab23d17d46ab73/pyth-parser/structs.ts +317 -0
- package/src/_dependencies/source/0x1d17058789bd1e1e79f1a92424519a88146f191f58a06cc4d9ab23d17d46ab73/supra/structs.ts +69 -0
- package/src/_dependencies/source/0x1d17058789bd1e1e79f1a92424519a88146f191f58a06cc4d9ab23d17d46ab73/switchboard-feed-parser/structs.ts +69 -0
- package/src/_dependencies/source/0x2/authenticator-state/structs.ts +332 -0
- package/src/_dependencies/source/0x2/bag/structs.ts +70 -0
- package/src/_dependencies/source/0x2/balance/structs.ts +134 -0
- package/src/_dependencies/source/0x2/bcs/structs.ts +70 -0
- package/src/_dependencies/source/0x2/bls12381/structs.ts +264 -0
- package/src/_dependencies/source/0x2/borrow/structs.ts +138 -0
- package/src/_dependencies/source/0x2/clock/structs.ts +70 -0
- package/src/_dependencies/source/0x2/coin/structs.ts +400 -0
- package/src/_dependencies/source/0x2/deny-list/structs.ts +139 -0
- package/src/_dependencies/source/0x2/display/structs.ts +202 -0
- package/src/_dependencies/source/0x2/dynamic-field/structs.ts +70 -0
- package/src/_dependencies/source/0x2/dynamic-object-field/structs.ts +71 -0
- package/src/_dependencies/source/0x2/groth16/structs.ts +265 -0
- package/src/_dependencies/source/0x2/group-ops/structs.ts +70 -0
- package/src/_dependencies/source/0x2/index.ts +1 -0
- package/src/_dependencies/source/0x2/init.ts +125 -0
- package/src/_dependencies/source/0x2/kiosk/structs.ts +658 -0
- package/src/_dependencies/source/0x2/kiosk-extension/structs.ts +135 -0
- package/src/_dependencies/source/0x2/linked-table/structs.ts +136 -0
- package/src/_dependencies/source/0x2/object/structs.ts +134 -0
- package/src/_dependencies/source/0x2/object-bag/structs.ts +70 -0
- package/src/_dependencies/source/0x2/object-table/structs.ts +70 -0
- package/src/_dependencies/source/0x2/package/structs.ts +267 -0
- package/src/_dependencies/source/0x2/priority-queue/structs.ts +139 -0
- package/src/_dependencies/source/0x2/random/structs.ts +202 -0
- package/src/_dependencies/source/0x2/sui/structs.ts +69 -0
- package/src/_dependencies/source/0x2/table/structs.ts +70 -0
- package/src/_dependencies/source/0x2/table-vec/structs.ts +71 -0
- package/src/_dependencies/source/0x2/token/structs.ts +401 -0
- package/src/_dependencies/source/0x2/transfer/structs.ts +70 -0
- package/src/_dependencies/source/0x2/transfer-policy/structs.ts +400 -0
- package/src/_dependencies/source/0x2/tx-context/structs.ts +70 -0
- package/src/_dependencies/source/0x2/url/structs.ts +70 -0
- package/src/_dependencies/source/0x2/vec-map/structs.ts +135 -0
- package/src/_dependencies/source/0x2/vec-set/structs.ts +72 -0
- package/src/_dependencies/source/0x2/versioned/structs.ts +135 -0
- package/src/_dependencies/source/0x2/zklogin-verified-id/structs.ts +71 -0
- package/src/_dependencies/source/0x2/zklogin-verified-issuer/structs.ts +71 -0
- package/src/_dependencies/source/0x277f90d256d1015a78cad646db091bec451c5bbab834b9fb70bace7885b5c698/index.ts +1 -0
- package/src/_dependencies/source/0x277f90d256d1015a78cad646db091bec451c5bbab834b9fb70bace7885b5c698/init.ts +5 -0
- package/src/_dependencies/source/0x277f90d256d1015a78cad646db091bec451c5bbab834b9fb70bace7885b5c698/validator/structs.ts +70 -0
- package/src/_dependencies/source/0x2fdff17b86e34ab722c8ba5e63f0da070d9a4163705b3fdc6a95802cab40a72a/index.ts +1 -0
- package/src/_dependencies/source/0x2fdff17b86e34ab722c8ba5e63f0da070d9a4163705b3fdc6a95802cab40a72a/init.ts +8 -0
- package/src/_dependencies/source/0x2fdff17b86e34ab722c8ba5e63f0da070d9a4163705b3fdc6a95802cab40a72a/price-data-pull/structs.ts +69 -0
- package/src/_dependencies/source/0x2fdff17b86e34ab722c8ba5e63f0da070d9a4163705b3fdc6a95802cab40a72a/suprasvaluefeed/structs.ts +135 -0
- package/src/_dependencies/source/0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277/airdrop/structs.ts +400 -0
- package/src/_dependencies/source/0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277/big-vector/structs.ts +372 -0
- package/src/_dependencies/source/0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277/critbit/structs.ts +205 -0
- package/src/_dependencies/source/0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277/ecosystem/structs.ts +333 -0
- package/src/_dependencies/source/0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277/index.ts +1 -0
- package/src/_dependencies/source/0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277/init.ts +48 -0
- package/src/_dependencies/source/0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277/leaderboard/structs.ts +465 -0
- package/src/_dependencies/source/0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277/linked-object-table/structs.ts +136 -0
- package/src/_dependencies/source/0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277/linked-set/structs.ts +140 -0
- package/src/_dependencies/source/0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277/tgld/structs.ts +268 -0
- package/src/_dependencies/source/0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277/user/structs.ts +332 -0
- package/src/_dependencies/source/0x5cfd0819411be98034cba544cbffab192c2c35674a05ff57f4f1c5042875b828/discount-mint/structs.ts +466 -0
- package/src/_dependencies/source/0x5cfd0819411be98034cba544cbffab192c2c35674a05ff57f4f1c5042875b828/index.ts +1 -0
- package/src/_dependencies/source/0x5cfd0819411be98034cba544cbffab192c2c35674a05ff57f4f1c5042875b828/init.ts +36 -0
- package/src/_dependencies/source/0x5cfd0819411be98034cba544cbffab192c2c35674a05ff57f4f1c5042875b828/royalty-rule/structs.ts +134 -0
- package/src/_dependencies/source/0x5cfd0819411be98034cba544cbffab192c2c35674a05ff57f4f1c5042875b828/staking/structs.ts +333 -0
- package/src/_dependencies/source/0x5cfd0819411be98034cba544cbffab192c2c35674a05ff57f4f1c5042875b828/table-vec/structs.ts +71 -0
- package/src/_dependencies/source/0x5cfd0819411be98034cba544cbffab192c2c35674a05ff57f4f1c5042875b828/typus-nft/structs.ts +856 -0
- package/src/_dependencies/source/0x6c9a394a43844fc09d9617bc8a8e775a4521f0e28e83de1da780d043a498671f/auto-bid/structs.ts +1049 -0
- package/src/_dependencies/source/0x6c9a394a43844fc09d9617bc8a8e775a4521f0e28e83de1da780d043a498671f/index.ts +1 -0
- package/src/_dependencies/source/0x6c9a394a43844fc09d9617bc8a8e775a4521f0e28e83de1da780d043a498671f/init.ts +104 -0
- package/src/_dependencies/source/0x6c9a394a43844fc09d9617bc8a8e775a4521f0e28e83de1da780d043a498671f/tails-staking/structs.ts +1054 -0
- package/src/_dependencies/source/0x6c9a394a43844fc09d9617bc8a8e775a4521f0e28e83de1da780d043a498671f/tds-authorized-entry/structs.ts +592 -0
- package/src/_dependencies/source/0x6c9a394a43844fc09d9617bc8a8e775a4521f0e28e83de1da780d043a498671f/tds-fee-pool-entry/structs.ts +461 -0
- package/src/_dependencies/source/0x6c9a394a43844fc09d9617bc8a8e775a4521f0e28e83de1da780d043a498671f/tds-registry-authorized-entry/structs.ts +592 -0
- package/src/_dependencies/source/0x6c9a394a43844fc09d9617bc8a8e775a4521f0e28e83de1da780d043a498671f/tds-view-function/structs.ts +69 -0
- package/src/_dependencies/source/0x6c9a394a43844fc09d9617bc8a8e775a4521f0e28e83de1da780d043a498671f/typus-dov-single/structs.ts +2351 -0
- package/src/_dependencies/source/0x7237ec8436ef7e927c45470db6db3a834dd84cf903aedee3844e847fe4805399/index.ts +1 -0
- package/src/_dependencies/source/0x7237ec8436ef7e927c45470db6db3a834dd84cf903aedee3844e847fe4805399/init.ts +3 -0
- package/src/_dependencies/source/0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded/authority/structs.ts +71 -0
- package/src/_dependencies/source/0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded/balance-pool/structs.ts +203 -0
- package/src/_dependencies/source/0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded/big-vector/structs.ts +70 -0
- package/src/_dependencies/source/0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded/dutch/structs.ts +528 -0
- package/src/_dependencies/source/0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded/i64/structs.ts +69 -0
- package/src/_dependencies/source/0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded/index.ts +1 -0
- package/src/_dependencies/source/0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded/init.ts +54 -0
- package/src/_dependencies/source/0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded/linked-list/structs.ts +136 -0
- package/src/_dependencies/source/0x908a10789a1a6953e0b73a997c10e3552f7ce4e2907afd00a334ed74bd973ded/vault/structs.ts +1829 -0
- package/src/_dependencies/source/0x98670585b87e06628ef2d7f7cb1e7bee8ada65b43b82997935225a7e6e21d18e/aggregator/structs.ts +398 -0
- package/src/_dependencies/source/0x98670585b87e06628ef2d7f7cb1e7bee8ada65b43b82997935225a7e6e21d18e/index.ts +1 -0
- package/src/_dependencies/source/0x98670585b87e06628ef2d7f7cb1e7bee8ada65b43b82997935225a7e6e21d18e/init.ts +18 -0
- package/src/_dependencies/source/0x98670585b87e06628ef2d7f7cb1e7bee8ada65b43b82997935225a7e6e21d18e/job/structs.ts +71 -0
- package/src/_dependencies/source/0x98670585b87e06628ef2d7f7cb1e7bee8ada65b43b82997935225a7e6e21d18e/math/structs.ts +69 -0
- package/src/_dependencies/source/0x98670585b87e06628ef2d7f7cb1e7bee8ada65b43b82997935225a7e6e21d18e/quote/structs.ts +71 -0
- package/src/_dependencies/source/0x98670585b87e06628ef2d7f7cb1e7bee8ada65b43b82997935225a7e6e21d18e/switchboard/structs.ts +70 -0
- package/src/_dependencies/source/0xbd8fc1947cf119350184107a3087e2dc27efefa0dd82e25a1f699069fe81a585/index.ts +1 -0
- package/src/_dependencies/source/0xbd8fc1947cf119350184107a3087e2dc27efefa0dd82e25a1f699069fe81a585/init.ts +11 -0
- package/src/_dependencies/source/0xbd8fc1947cf119350184107a3087e2dc27efefa0dd82e25a1f699069fe81a585/kiosk-lock-rule/structs.ts +134 -0
- package/src/_dependencies/source/0xbd8fc1947cf119350184107a3087e2dc27efefa0dd82e25a1f699069fe81a585/royalty-rule/structs.ts +134 -0
- package/src/_dependencies/source/0xbd8fc1947cf119350184107a3087e2dc27efefa0dd82e25a1f699069fe81a585/witness-rule/structs.ts +69 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/bytes20/structs.ts +70 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/bytes32/structs.ts +70 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/consumed-vaas/structs.ts +72 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/cursor/structs.ts +72 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/emitter/structs.ts +200 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/external-address/structs.ts +70 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/fee-collector/structs.ts +72 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/governance-message/structs.ts +137 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/guardian/structs.ts +70 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/guardian-set/structs.ts +71 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/guardian-signature/structs.ts +70 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/index.ts +1 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/init.ts +65 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/migrate/structs.ts +70 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/package-utils/structs.ts +266 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/publish-message/structs.ts +136 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/set/structs.ts +136 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/set-fee/structs.ts +134 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/setup/structs.ts +70 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/state/structs.ts +142 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/transfer-fee/structs.ts +134 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/update-guardian-set/structs.ts +201 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/upgrade-contract/structs.ts +201 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/vaa/structs.ts +72 -0
- package/src/_dependencies/source/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e/version-control/structs.ts +134 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/batch-price-attestation/structs.ts +136 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/contract-upgrade/structs.ts +136 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/data-source/structs.ts +70 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/event/structs.ts +135 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/governance/structs.ts +71 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/governance-action/structs.ts +69 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/governance-instruction/structs.ts +71 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/hot-potato-vector/structs.ts +72 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/i64/structs.ts +69 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/index.ts +1 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/init.ts +59 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/migrate/structs.ts +70 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/price/structs.ts +70 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/price-feed/structs.ts +71 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/price-identifier/structs.ts +70 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/price-info/structs.ts +136 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/price-status/structs.ts +69 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/set/structs.ts +138 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/set-data-sources/structs.ts +71 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/set-fee-recipient/structs.ts +69 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/set-governance-data-source/structs.ts +70 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/set-stale-price-threshold/structs.ts +69 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/set-update-fee/structs.ts +69 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/setup/structs.ts +70 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/state/structs.ts +203 -0
- package/src/_dependencies/source/0xe76d8a37d4132278a7a752183e90e04890b9e7d0f6657eadb68821609a2a56a3/version-control/structs.ts +134 -0
- package/src/_framework/init-source.ts +39 -0
- package/src/_framework/loader.ts +69 -0
- package/src/_framework/reified.ts +442 -0
- package/src/_framework/util.ts +265 -0
- package/src/airdrop/authority-entry.ts +101 -0
- package/src/airdrop/index.ts +3 -0
- package/src/airdrop/user-entry.ts +24 -0
- package/src/airdrop/view-function.ts +36 -0
- package/src/auto-bid/index.ts +2 -0
- package/src/auto-bid/user-entry.ts +256 -0
- package/src/auto-bid/view-function.ts +285 -0
- package/src/constants/constant.ts +32 -0
- package/src/constants/index.ts +2 -0
- package/src/constants/token.ts +194 -0
- package/src/index.ts +11 -0
- package/src/leaderboard/authority-entry.ts +63 -0
- package/src/leaderboard/index.ts +2 -0
- package/src/leaderboard/view-function.ts +66 -0
- package/src/tails-exp-dice/api.ts +46 -0
- package/src/tails-exp-dice/fetch.ts +347 -0
- package/src/tails-exp-dice/index.ts +4 -0
- package/src/tails-exp-dice/user-entry.ts +241 -0
- package/src/tails-exp-dice/view-function.ts +111 -0
- package/src/tails-staking/authority-entry.ts +333 -0
- package/src/tails-staking/index.ts +3 -0
- package/src/tails-staking/user-entry.ts +401 -0
- package/src/tails-staking/view-function.ts +86 -0
- package/src/typus-dov-single-v2/entry/authority-entry.ts +171 -0
- package/src/typus-dov-single-v2/entry/index.ts +3 -0
- package/src/typus-dov-single-v2/entry/mfud-user-entry.ts +591 -0
- package/src/typus-dov-single-v2/entry/user-entry.ts +573 -0
- package/src/typus-dov-single-v2/function/bidding.ts +823 -0
- package/src/typus-dov-single-v2/function/index.ts +3 -0
- package/src/typus-dov-single-v2/function/token.ts +38 -0
- package/src/typus-dov-single-v2/function/vault.ts +24 -0
- package/src/typus-dov-single-v2/history/index.ts +2 -0
- package/src/typus-dov-single-v2/history/user-history.ts +929 -0
- package/src/typus-dov-single-v2/history/vault-history.ts +452 -0
- package/src/typus-dov-single-v2/index.ts +4 -0
- package/src/typus-dov-single-v2/view-function.ts +705 -0
- package/src/typus-nft/fetch.ts +428 -0
- package/src/typus-nft/index.ts +2 -0
- package/src/typus-nft/user-entry.ts +113 -0
- package/src/typus-perp/admin/functions.ts +141 -0
- package/src/typus-perp/admin/structs.ts +793 -0
- package/src/typus-perp/fetch.ts +253 -0
- package/src/typus-perp/index.ts +9 -0
- package/src/typus-perp/init.ts +96 -0
- package/src/typus-perp/lp-pool/functions.ts +694 -0
- package/src/typus-perp/lp-pool/structs.ts +3884 -0
- package/src/typus-perp/math/functions.ts +53 -0
- package/src/typus-perp/oracle/functions.ts +32 -0
- package/src/typus-perp/oracle/structs.ts +317 -0
- package/src/typus-perp/position/functions.ts +887 -0
- package/src/typus-perp/position/structs.ts +1637 -0
- package/src/typus-perp/readVec.ts +118 -0
- package/src/typus-perp/stake-pool/functions.ts +421 -0
- package/src/typus-perp/stake-pool/structs.ts +3873 -0
- package/src/typus-perp/symbol/functions.ts +24 -0
- package/src/typus-perp/symbol/structs.ts +165 -0
- package/src/typus-perp/tlp/functions.ts +50 -0
- package/src/typus-perp/tlp/structs.ts +287 -0
- package/src/typus-perp/token-interface/functions.ts +29 -0
- package/src/typus-perp/trading/functions.ts +1046 -0
- package/src/typus-perp/trading/structs.ts +4541 -0
- package/src/typus-perp/treasury-caps/functions.ts +36 -0
- package/src/typus-perp/treasury-caps/structs.ts +151 -0
- package/src/typus-perp/user/order.ts +221 -0
- package/src/typus-perp/user/orderWithBidReceipt.ts +176 -0
- package/src/typus-perp/user/tlp.ts +234 -0
- package/src/user/index.ts +1 -0
- package/src/user/view-function.ts +33 -0
- package/src/utils/.DS_Store +0 -0
- package/src/utils/api/defillama/index.ts +1 -0
- package/src/utils/api/defillama/tvl.ts +11 -0
- package/src/utils/api/index.ts +3 -0
- package/src/utils/api/price.ts +101 -0
- package/src/utils/api/sentio/index.ts +2 -0
- package/src/utils/api/sentio/leader-board.ts +259 -0
- package/src/utils/api/sentio/reward-generated.ts +392 -0
- package/src/utils/index.ts +5 -0
- package/src/utils/load_env.ts +5 -0
- package/src/utils/mint.ts +16 -0
- package/src/utils/pyth/constant.ts +71 -0
- package/src/utils/pyth/index.ts +2 -0
- package/src/utils/pyth/pythClient.ts +52 -0
- package/src/utils/tools.ts +38 -0
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
import * as reified from "../../../../_framework/reified";
|
|
2
|
+
import {
|
|
3
|
+
PhantomReified,
|
|
4
|
+
Reified,
|
|
5
|
+
StructClass,
|
|
6
|
+
ToField,
|
|
7
|
+
ToTypeArgument,
|
|
8
|
+
ToTypeStr,
|
|
9
|
+
TypeArgument,
|
|
10
|
+
Vector,
|
|
11
|
+
assertFieldsWithTypesArgsMatch,
|
|
12
|
+
assertReifiedTypeArgsMatch,
|
|
13
|
+
decodeFromFields,
|
|
14
|
+
decodeFromFieldsWithTypes,
|
|
15
|
+
decodeFromJSONField,
|
|
16
|
+
extractType,
|
|
17
|
+
fieldToJSON,
|
|
18
|
+
phantom,
|
|
19
|
+
toBcs,
|
|
20
|
+
} from "../../../../_framework/reified";
|
|
21
|
+
import { FieldsWithTypes, composeSuiType, compressSuiType } from "../../../../_framework/util";
|
|
22
|
+
import { TypeName } from "../../0x1/type-name/structs";
|
|
23
|
+
import { UID } from "../../0x2/object/structs";
|
|
24
|
+
import { BcsType, bcs, fromB64 } from "@mysten/bcs";
|
|
25
|
+
import { SuiClient, SuiParsedData } from "@mysten/sui.js/client";
|
|
26
|
+
|
|
27
|
+
/* ============================== BigVector =============================== */
|
|
28
|
+
|
|
29
|
+
export function isBigVector(type: string): boolean {
|
|
30
|
+
type = compressSuiType(type);
|
|
31
|
+
return type === "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::big_vector::BigVector";
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export interface BigVectorFields {
|
|
35
|
+
id: ToField<UID>;
|
|
36
|
+
elementType: ToField<TypeName>;
|
|
37
|
+
sliceIdx: ToField<"u64">;
|
|
38
|
+
sliceSize: ToField<"u32">;
|
|
39
|
+
length: ToField<"u64">;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export type BigVectorReified = Reified<BigVector, BigVectorFields>;
|
|
43
|
+
|
|
44
|
+
export class BigVector implements StructClass {
|
|
45
|
+
static readonly $typeName = "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::big_vector::BigVector";
|
|
46
|
+
static readonly $numTypeParams = 0;
|
|
47
|
+
|
|
48
|
+
readonly $typeName = BigVector.$typeName;
|
|
49
|
+
|
|
50
|
+
readonly $fullTypeName: "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::big_vector::BigVector";
|
|
51
|
+
|
|
52
|
+
readonly $typeArgs: [];
|
|
53
|
+
|
|
54
|
+
readonly id: ToField<UID>;
|
|
55
|
+
readonly elementType: ToField<TypeName>;
|
|
56
|
+
readonly sliceIdx: ToField<"u64">;
|
|
57
|
+
readonly sliceSize: ToField<"u32">;
|
|
58
|
+
readonly length: ToField<"u64">;
|
|
59
|
+
|
|
60
|
+
private constructor(typeArgs: [], fields: BigVectorFields) {
|
|
61
|
+
this.$fullTypeName = composeSuiType(
|
|
62
|
+
BigVector.$typeName,
|
|
63
|
+
...typeArgs
|
|
64
|
+
) as "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::big_vector::BigVector";
|
|
65
|
+
this.$typeArgs = typeArgs;
|
|
66
|
+
|
|
67
|
+
this.id = fields.id;
|
|
68
|
+
this.elementType = fields.elementType;
|
|
69
|
+
this.sliceIdx = fields.sliceIdx;
|
|
70
|
+
this.sliceSize = fields.sliceSize;
|
|
71
|
+
this.length = fields.length;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
static reified(): BigVectorReified {
|
|
75
|
+
return {
|
|
76
|
+
typeName: BigVector.$typeName,
|
|
77
|
+
fullTypeName: composeSuiType(
|
|
78
|
+
BigVector.$typeName,
|
|
79
|
+
...[]
|
|
80
|
+
) as "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::big_vector::BigVector",
|
|
81
|
+
typeArgs: [] as [],
|
|
82
|
+
reifiedTypeArgs: [],
|
|
83
|
+
fromFields: (fields: Record<string, any>) => BigVector.fromFields(fields),
|
|
84
|
+
fromFieldsWithTypes: (item: FieldsWithTypes) => BigVector.fromFieldsWithTypes(item),
|
|
85
|
+
fromBcs: (data: Uint8Array) => BigVector.fromBcs(data),
|
|
86
|
+
bcs: BigVector.bcs,
|
|
87
|
+
fromJSONField: (field: any) => BigVector.fromJSONField(field),
|
|
88
|
+
fromJSON: (json: Record<string, any>) => BigVector.fromJSON(json),
|
|
89
|
+
fromSuiParsedData: (content: SuiParsedData) => BigVector.fromSuiParsedData(content),
|
|
90
|
+
fetch: async (client: SuiClient, id: string) => BigVector.fetch(client, id),
|
|
91
|
+
new: (fields: BigVectorFields) => {
|
|
92
|
+
return new BigVector([], fields);
|
|
93
|
+
},
|
|
94
|
+
kind: "StructClassReified",
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
static get r() {
|
|
99
|
+
return BigVector.reified();
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
static phantom(): PhantomReified<ToTypeStr<BigVector>> {
|
|
103
|
+
return phantom(BigVector.reified());
|
|
104
|
+
}
|
|
105
|
+
static get p() {
|
|
106
|
+
return BigVector.phantom();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
static get bcs() {
|
|
110
|
+
return bcs.struct("BigVector", {
|
|
111
|
+
id: UID.bcs,
|
|
112
|
+
element_type: TypeName.bcs,
|
|
113
|
+
slice_idx: bcs.u64(),
|
|
114
|
+
slice_size: bcs.u32(),
|
|
115
|
+
length: bcs.u64(),
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
static fromFields(fields: Record<string, any>): BigVector {
|
|
120
|
+
return BigVector.reified().new({
|
|
121
|
+
id: decodeFromFields(UID.reified(), fields.id),
|
|
122
|
+
elementType: decodeFromFields(TypeName.reified(), fields.element_type),
|
|
123
|
+
sliceIdx: decodeFromFields("u64", fields.slice_idx),
|
|
124
|
+
sliceSize: decodeFromFields("u32", fields.slice_size),
|
|
125
|
+
length: decodeFromFields("u64", fields.length),
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
static fromFieldsWithTypes(item: FieldsWithTypes): BigVector {
|
|
130
|
+
if (!isBigVector(item.type)) {
|
|
131
|
+
throw new Error("not a BigVector type");
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return BigVector.reified().new({
|
|
135
|
+
id: decodeFromFieldsWithTypes(UID.reified(), item.fields.id),
|
|
136
|
+
elementType: decodeFromFieldsWithTypes(TypeName.reified(), item.fields.element_type),
|
|
137
|
+
sliceIdx: decodeFromFieldsWithTypes("u64", item.fields.slice_idx),
|
|
138
|
+
sliceSize: decodeFromFieldsWithTypes("u32", item.fields.slice_size),
|
|
139
|
+
length: decodeFromFieldsWithTypes("u64", item.fields.length),
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
static fromBcs(data: Uint8Array): BigVector {
|
|
144
|
+
return BigVector.fromFields(BigVector.bcs.parse(data));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
toJSONField() {
|
|
148
|
+
return {
|
|
149
|
+
id: this.id,
|
|
150
|
+
elementType: this.elementType.toJSONField(),
|
|
151
|
+
sliceIdx: this.sliceIdx.toString(),
|
|
152
|
+
sliceSize: this.sliceSize,
|
|
153
|
+
length: this.length.toString(),
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
toJSON() {
|
|
158
|
+
return { $typeName: this.$typeName, $typeArgs: this.$typeArgs, ...this.toJSONField() };
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
static fromJSONField(field: any): BigVector {
|
|
162
|
+
return BigVector.reified().new({
|
|
163
|
+
id: decodeFromJSONField(UID.reified(), field.id),
|
|
164
|
+
elementType: decodeFromJSONField(TypeName.reified(), field.elementType),
|
|
165
|
+
sliceIdx: decodeFromJSONField("u64", field.sliceIdx),
|
|
166
|
+
sliceSize: decodeFromJSONField("u32", field.sliceSize),
|
|
167
|
+
length: decodeFromJSONField("u64", field.length),
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
static fromJSON(json: Record<string, any>): BigVector {
|
|
172
|
+
if (json.$typeName !== BigVector.$typeName) {
|
|
173
|
+
throw new Error("not a WithTwoGenerics json object");
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
return BigVector.fromJSONField(json);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
static fromSuiParsedData(content: SuiParsedData): BigVector {
|
|
180
|
+
if (content.dataType !== "moveObject") {
|
|
181
|
+
throw new Error("not an object");
|
|
182
|
+
}
|
|
183
|
+
if (!isBigVector(content.type)) {
|
|
184
|
+
throw new Error(`object at ${(content.fields as any).id} is not a BigVector object`);
|
|
185
|
+
}
|
|
186
|
+
return BigVector.fromFieldsWithTypes(content);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
static async fetch(client: SuiClient, id: string): Promise<BigVector> {
|
|
190
|
+
const res = await client.getObject({ id, options: { showBcs: true } });
|
|
191
|
+
if (res.error) {
|
|
192
|
+
throw new Error(`error fetching BigVector object at id ${id}: ${res.error.code}`);
|
|
193
|
+
}
|
|
194
|
+
if (res.data?.bcs?.dataType !== "moveObject" || !isBigVector(res.data.bcs.type)) {
|
|
195
|
+
throw new Error(`object at id ${id} is not a BigVector object`);
|
|
196
|
+
}
|
|
197
|
+
return BigVector.fromBcs(fromB64(res.data.bcs.bcsBytes));
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/* ============================== Slice =============================== */
|
|
202
|
+
|
|
203
|
+
export function isSlice(type: string): boolean {
|
|
204
|
+
type = compressSuiType(type);
|
|
205
|
+
return type.startsWith("0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::big_vector::Slice<");
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export interface SliceFields<Element extends TypeArgument> {
|
|
209
|
+
idx: ToField<"u64">;
|
|
210
|
+
vector: ToField<Vector<Element>>;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
export type SliceReified<Element extends TypeArgument> = Reified<Slice<Element>, SliceFields<Element>>;
|
|
214
|
+
|
|
215
|
+
export class Slice<Element extends TypeArgument> implements StructClass {
|
|
216
|
+
static readonly $typeName = "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::big_vector::Slice";
|
|
217
|
+
static readonly $numTypeParams = 1;
|
|
218
|
+
|
|
219
|
+
readonly $typeName = Slice.$typeName;
|
|
220
|
+
|
|
221
|
+
readonly $fullTypeName: `0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::big_vector::Slice<${ToTypeStr<Element>}>`;
|
|
222
|
+
|
|
223
|
+
readonly $typeArgs: [ToTypeStr<Element>];
|
|
224
|
+
|
|
225
|
+
readonly idx: ToField<"u64">;
|
|
226
|
+
readonly vector: ToField<Vector<Element>>;
|
|
227
|
+
|
|
228
|
+
private constructor(typeArgs: [ToTypeStr<Element>], fields: SliceFields<Element>) {
|
|
229
|
+
this.$fullTypeName = composeSuiType(
|
|
230
|
+
Slice.$typeName,
|
|
231
|
+
...typeArgs
|
|
232
|
+
) as `0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::big_vector::Slice<${ToTypeStr<Element>}>`;
|
|
233
|
+
this.$typeArgs = typeArgs;
|
|
234
|
+
|
|
235
|
+
this.idx = fields.idx;
|
|
236
|
+
this.vector = fields.vector;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
static reified<Element extends Reified<TypeArgument, any>>(Element: Element): SliceReified<ToTypeArgument<Element>> {
|
|
240
|
+
return {
|
|
241
|
+
typeName: Slice.$typeName,
|
|
242
|
+
fullTypeName: composeSuiType(
|
|
243
|
+
Slice.$typeName,
|
|
244
|
+
...[extractType(Element)]
|
|
245
|
+
) as `0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::big_vector::Slice<${ToTypeStr<ToTypeArgument<Element>>}>`,
|
|
246
|
+
typeArgs: [extractType(Element)] as [ToTypeStr<ToTypeArgument<Element>>],
|
|
247
|
+
reifiedTypeArgs: [Element],
|
|
248
|
+
fromFields: (fields: Record<string, any>) => Slice.fromFields(Element, fields),
|
|
249
|
+
fromFieldsWithTypes: (item: FieldsWithTypes) => Slice.fromFieldsWithTypes(Element, item),
|
|
250
|
+
fromBcs: (data: Uint8Array) => Slice.fromBcs(Element, data),
|
|
251
|
+
bcs: Slice.bcs(toBcs(Element)),
|
|
252
|
+
fromJSONField: (field: any) => Slice.fromJSONField(Element, field),
|
|
253
|
+
fromJSON: (json: Record<string, any>) => Slice.fromJSON(Element, json),
|
|
254
|
+
fromSuiParsedData: (content: SuiParsedData) => Slice.fromSuiParsedData(Element, content),
|
|
255
|
+
fetch: async (client: SuiClient, id: string) => Slice.fetch(client, Element, id),
|
|
256
|
+
new: (fields: SliceFields<ToTypeArgument<Element>>) => {
|
|
257
|
+
return new Slice([extractType(Element)], fields);
|
|
258
|
+
},
|
|
259
|
+
kind: "StructClassReified",
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
static get r() {
|
|
264
|
+
return Slice.reified;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
static phantom<Element extends Reified<TypeArgument, any>>(
|
|
268
|
+
Element: Element
|
|
269
|
+
): PhantomReified<ToTypeStr<Slice<ToTypeArgument<Element>>>> {
|
|
270
|
+
return phantom(Slice.reified(Element));
|
|
271
|
+
}
|
|
272
|
+
static get p() {
|
|
273
|
+
return Slice.phantom;
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
static get bcs() {
|
|
277
|
+
return <Element extends BcsType<any>>(Element: Element) =>
|
|
278
|
+
bcs.struct(`Slice<${Element.name}>`, {
|
|
279
|
+
idx: bcs.u64(),
|
|
280
|
+
vector: bcs.vector(Element),
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
static fromFields<Element extends Reified<TypeArgument, any>>(
|
|
285
|
+
typeArg: Element,
|
|
286
|
+
fields: Record<string, any>
|
|
287
|
+
): Slice<ToTypeArgument<Element>> {
|
|
288
|
+
return Slice.reified(typeArg).new({
|
|
289
|
+
idx: decodeFromFields("u64", fields.idx),
|
|
290
|
+
vector: decodeFromFields(reified.vector(typeArg), fields.vector),
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
static fromFieldsWithTypes<Element extends Reified<TypeArgument, any>>(
|
|
295
|
+
typeArg: Element,
|
|
296
|
+
item: FieldsWithTypes
|
|
297
|
+
): Slice<ToTypeArgument<Element>> {
|
|
298
|
+
if (!isSlice(item.type)) {
|
|
299
|
+
throw new Error("not a Slice type");
|
|
300
|
+
}
|
|
301
|
+
assertFieldsWithTypesArgsMatch(item, [typeArg]);
|
|
302
|
+
|
|
303
|
+
return Slice.reified(typeArg).new({
|
|
304
|
+
idx: decodeFromFieldsWithTypes("u64", item.fields.idx),
|
|
305
|
+
vector: decodeFromFieldsWithTypes(reified.vector(typeArg), item.fields.vector),
|
|
306
|
+
});
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
static fromBcs<Element extends Reified<TypeArgument, any>>(typeArg: Element, data: Uint8Array): Slice<ToTypeArgument<Element>> {
|
|
310
|
+
const typeArgs = [typeArg];
|
|
311
|
+
|
|
312
|
+
return Slice.fromFields(typeArg, Slice.bcs(toBcs(typeArgs[0])).parse(data));
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
toJSONField() {
|
|
316
|
+
return {
|
|
317
|
+
idx: this.idx.toString(),
|
|
318
|
+
vector: fieldToJSON<Vector<Element>>(`vector<${this.$typeArgs[0]}>`, this.vector),
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
toJSON() {
|
|
323
|
+
return { $typeName: this.$typeName, $typeArgs: this.$typeArgs, ...this.toJSONField() };
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
static fromJSONField<Element extends Reified<TypeArgument, any>>(typeArg: Element, field: any): Slice<ToTypeArgument<Element>> {
|
|
327
|
+
return Slice.reified(typeArg).new({
|
|
328
|
+
idx: decodeFromJSONField("u64", field.idx),
|
|
329
|
+
vector: decodeFromJSONField(reified.vector(typeArg), field.vector),
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
static fromJSON<Element extends Reified<TypeArgument, any>>(
|
|
334
|
+
typeArg: Element,
|
|
335
|
+
json: Record<string, any>
|
|
336
|
+
): Slice<ToTypeArgument<Element>> {
|
|
337
|
+
if (json.$typeName !== Slice.$typeName) {
|
|
338
|
+
throw new Error("not a WithTwoGenerics json object");
|
|
339
|
+
}
|
|
340
|
+
assertReifiedTypeArgsMatch(composeSuiType(Slice.$typeName, extractType(typeArg)), json.$typeArgs, [typeArg]);
|
|
341
|
+
|
|
342
|
+
return Slice.fromJSONField(typeArg, json);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
static fromSuiParsedData<Element extends Reified<TypeArgument, any>>(
|
|
346
|
+
typeArg: Element,
|
|
347
|
+
content: SuiParsedData
|
|
348
|
+
): Slice<ToTypeArgument<Element>> {
|
|
349
|
+
if (content.dataType !== "moveObject") {
|
|
350
|
+
throw new Error("not an object");
|
|
351
|
+
}
|
|
352
|
+
if (!isSlice(content.type)) {
|
|
353
|
+
throw new Error(`object at ${(content.fields as any).id} is not a Slice object`);
|
|
354
|
+
}
|
|
355
|
+
return Slice.fromFieldsWithTypes(typeArg, content);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
static async fetch<Element extends Reified<TypeArgument, any>>(
|
|
359
|
+
client: SuiClient,
|
|
360
|
+
typeArg: Element,
|
|
361
|
+
id: string
|
|
362
|
+
): Promise<Slice<ToTypeArgument<Element>>> {
|
|
363
|
+
const res = await client.getObject({ id, options: { showBcs: true } });
|
|
364
|
+
if (res.error) {
|
|
365
|
+
throw new Error(`error fetching Slice object at id ${id}: ${res.error.code}`);
|
|
366
|
+
}
|
|
367
|
+
if (res.data?.bcs?.dataType !== "moveObject" || !isSlice(res.data.bcs.type)) {
|
|
368
|
+
throw new Error(`object at id ${id} is not a Slice object`);
|
|
369
|
+
}
|
|
370
|
+
return Slice.fromBcs(typeArg, fromB64(res.data.bcs.bcsBytes));
|
|
371
|
+
}
|
|
372
|
+
}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import * as reified from "../../../../_framework/reified";
|
|
2
|
+
import {PhantomReified, Reified, StructClass, ToField, ToTypeArgument, ToTypeStr, TypeArgument, assertFieldsWithTypesArgsMatch, assertReifiedTypeArgsMatch, decodeFromFields, decodeFromFieldsWithTypes, decodeFromJSONField, extractType, fieldToJSON, phantom, toBcs, ToTypeStr as ToPhantom} from "../../../../_framework/reified";
|
|
3
|
+
import {FieldsWithTypes, composeSuiType, compressSuiType} from "../../../../_framework/util";
|
|
4
|
+
import {Table} from "../../0x2/table/structs";
|
|
5
|
+
import {BcsType, bcs, fromB64} from "@mysten/bcs";
|
|
6
|
+
import {SuiClient, SuiParsedData} from "@mysten/sui.js/client";
|
|
7
|
+
|
|
8
|
+
/* ============================== CritbitTree =============================== */
|
|
9
|
+
|
|
10
|
+
export function isCritbitTree(type: string): boolean { type = compressSuiType(type); return type.startsWith("0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::CritbitTree<"); }
|
|
11
|
+
|
|
12
|
+
export interface CritbitTreeFields<V extends TypeArgument> { root: ToField<"u64">; internalNodes: ToField<Table<"u64", ToPhantom<InternalNode>>>; leaves: ToField<Table<"u64", ToPhantom<Leaf<V>>>>; minLeafIndex: ToField<"u64">; maxLeafIndex: ToField<"u64">; nextInternalNodeIndex: ToField<"u64">; nextLeafIndex: ToField<"u64"> }
|
|
13
|
+
|
|
14
|
+
export type CritbitTreeReified<V extends TypeArgument> = Reified< CritbitTree<V>, CritbitTreeFields<V> >;
|
|
15
|
+
|
|
16
|
+
export class CritbitTree<V extends TypeArgument> implements StructClass { static readonly $typeName = "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::CritbitTree"; static readonly $numTypeParams = 1;
|
|
17
|
+
|
|
18
|
+
readonly $typeName = CritbitTree.$typeName;
|
|
19
|
+
|
|
20
|
+
readonly $fullTypeName: `0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::CritbitTree<${ToTypeStr<V>}>`;
|
|
21
|
+
|
|
22
|
+
readonly $typeArgs: [ToTypeStr<V>];
|
|
23
|
+
|
|
24
|
+
readonly root: ToField<"u64">; readonly internalNodes: ToField<Table<"u64", ToPhantom<InternalNode>>>; readonly leaves: ToField<Table<"u64", ToPhantom<Leaf<V>>>>; readonly minLeafIndex: ToField<"u64">; readonly maxLeafIndex: ToField<"u64">; readonly nextInternalNodeIndex: ToField<"u64">; readonly nextLeafIndex: ToField<"u64">
|
|
25
|
+
|
|
26
|
+
private constructor(typeArgs: [ToTypeStr<V>], fields: CritbitTreeFields<V>, ) { this.$fullTypeName = composeSuiType( CritbitTree.$typeName, ...typeArgs ) as `0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::CritbitTree<${ToTypeStr<V>}>`; this.$typeArgs = typeArgs;
|
|
27
|
+
|
|
28
|
+
this.root = fields.root;; this.internalNodes = fields.internalNodes;; this.leaves = fields.leaves;; this.minLeafIndex = fields.minLeafIndex;; this.maxLeafIndex = fields.maxLeafIndex;; this.nextInternalNodeIndex = fields.nextInternalNodeIndex;; this.nextLeafIndex = fields.nextLeafIndex; }
|
|
29
|
+
|
|
30
|
+
static reified<V extends Reified<TypeArgument, any>>( V: V ): CritbitTreeReified<ToTypeArgument<V>> { return { typeName: CritbitTree.$typeName, fullTypeName: composeSuiType( CritbitTree.$typeName, ...[extractType(V)] ) as `0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::CritbitTree<${ToTypeStr<ToTypeArgument<V>>}>`, typeArgs: [ extractType(V) ] as [ToTypeStr<ToTypeArgument<V>>], reifiedTypeArgs: [V], fromFields: (fields: Record<string, any>) => CritbitTree.fromFields( V, fields, ), fromFieldsWithTypes: (item: FieldsWithTypes) => CritbitTree.fromFieldsWithTypes( V, item, ), fromBcs: (data: Uint8Array) => CritbitTree.fromBcs( V, data, ), bcs: CritbitTree.bcs(toBcs(V)), fromJSONField: (field: any) => CritbitTree.fromJSONField( V, field, ), fromJSON: (json: Record<string, any>) => CritbitTree.fromJSON( V, json, ), fromSuiParsedData: (content: SuiParsedData) => CritbitTree.fromSuiParsedData( V, content, ), fetch: async (client: SuiClient, id: string) => CritbitTree.fetch( client, V, id, ), new: ( fields: CritbitTreeFields<ToTypeArgument<V>>, ) => { return new CritbitTree( [extractType(V)], fields ) }, kind: "StructClassReified", } }
|
|
31
|
+
|
|
32
|
+
static get r() { return CritbitTree.reified }
|
|
33
|
+
|
|
34
|
+
static phantom<V extends Reified<TypeArgument, any>>( V: V ): PhantomReified<ToTypeStr<CritbitTree<ToTypeArgument<V>>>> { return phantom(CritbitTree.reified( V )); } static get p() { return CritbitTree.phantom }
|
|
35
|
+
|
|
36
|
+
static get bcs() { return <V extends BcsType<any>>(V: V) => bcs.struct(`CritbitTree<${V.name}>`, {
|
|
37
|
+
|
|
38
|
+
root: bcs.u64(), internal_nodes: Table.bcs, leaves: Table.bcs, min_leaf_index: bcs.u64(), max_leaf_index: bcs.u64(), next_internal_node_index: bcs.u64(), next_leaf_index: bcs.u64()
|
|
39
|
+
|
|
40
|
+
}) };
|
|
41
|
+
|
|
42
|
+
static fromFields<V extends Reified<TypeArgument, any>>( typeArg: V, fields: Record<string, any> ): CritbitTree<ToTypeArgument<V>> { return CritbitTree.reified( typeArg, ).new( { root: decodeFromFields("u64", fields.root), internalNodes: decodeFromFields(Table.reified(reified.phantom("u64"), reified.phantom(InternalNode.reified())), fields.internal_nodes), leaves: decodeFromFields(Table.reified(reified.phantom("u64"), reified.phantom(Leaf.reified(typeArg))), fields.leaves), minLeafIndex: decodeFromFields("u64", fields.min_leaf_index), maxLeafIndex: decodeFromFields("u64", fields.max_leaf_index), nextInternalNodeIndex: decodeFromFields("u64", fields.next_internal_node_index), nextLeafIndex: decodeFromFields("u64", fields.next_leaf_index) } ) }
|
|
43
|
+
|
|
44
|
+
static fromFieldsWithTypes<V extends Reified<TypeArgument, any>>( typeArg: V, item: FieldsWithTypes ): CritbitTree<ToTypeArgument<V>> { if (!isCritbitTree(item.type)) { throw new Error("not a CritbitTree type");
|
|
45
|
+
|
|
46
|
+
} assertFieldsWithTypesArgsMatch(item, [typeArg]);
|
|
47
|
+
|
|
48
|
+
return CritbitTree.reified( typeArg, ).new( { root: decodeFromFieldsWithTypes("u64", item.fields.root), internalNodes: decodeFromFieldsWithTypes(Table.reified(reified.phantom("u64"), reified.phantom(InternalNode.reified())), item.fields.internal_nodes), leaves: decodeFromFieldsWithTypes(Table.reified(reified.phantom("u64"), reified.phantom(Leaf.reified(typeArg))), item.fields.leaves), minLeafIndex: decodeFromFieldsWithTypes("u64", item.fields.min_leaf_index), maxLeafIndex: decodeFromFieldsWithTypes("u64", item.fields.max_leaf_index), nextInternalNodeIndex: decodeFromFieldsWithTypes("u64", item.fields.next_internal_node_index), nextLeafIndex: decodeFromFieldsWithTypes("u64", item.fields.next_leaf_index) } ) }
|
|
49
|
+
|
|
50
|
+
static fromBcs<V extends Reified<TypeArgument, any>>( typeArg: V, data: Uint8Array ): CritbitTree<ToTypeArgument<V>> { const typeArgs = [typeArg];
|
|
51
|
+
|
|
52
|
+
return CritbitTree.fromFields( typeArg, CritbitTree.bcs( toBcs(typeArgs[0]) ).parse(data) ) }
|
|
53
|
+
|
|
54
|
+
toJSONField() { return {
|
|
55
|
+
|
|
56
|
+
root: this.root.toString(),internalNodes: this.internalNodes.toJSONField(),leaves: this.leaves.toJSONField(),minLeafIndex: this.minLeafIndex.toString(),maxLeafIndex: this.maxLeafIndex.toString(),nextInternalNodeIndex: this.nextInternalNodeIndex.toString(),nextLeafIndex: this.nextLeafIndex.toString(),
|
|
57
|
+
|
|
58
|
+
} }
|
|
59
|
+
|
|
60
|
+
toJSON() { return { $typeName: this.$typeName, $typeArgs: this.$typeArgs, ...this.toJSONField() } }
|
|
61
|
+
|
|
62
|
+
static fromJSONField<V extends Reified<TypeArgument, any>>( typeArg: V, field: any ): CritbitTree<ToTypeArgument<V>> { return CritbitTree.reified( typeArg, ).new( { root: decodeFromJSONField("u64", field.root), internalNodes: decodeFromJSONField(Table.reified(reified.phantom("u64"), reified.phantom(InternalNode.reified())), field.internalNodes), leaves: decodeFromJSONField(Table.reified(reified.phantom("u64"), reified.phantom(Leaf.reified(typeArg))), field.leaves), minLeafIndex: decodeFromJSONField("u64", field.minLeafIndex), maxLeafIndex: decodeFromJSONField("u64", field.maxLeafIndex), nextInternalNodeIndex: decodeFromJSONField("u64", field.nextInternalNodeIndex), nextLeafIndex: decodeFromJSONField("u64", field.nextLeafIndex) } ) }
|
|
63
|
+
|
|
64
|
+
static fromJSON<V extends Reified<TypeArgument, any>>( typeArg: V, json: Record<string, any> ): CritbitTree<ToTypeArgument<V>> { if (json.$typeName !== CritbitTree.$typeName) { throw new Error("not a WithTwoGenerics json object") }; assertReifiedTypeArgsMatch( composeSuiType(CritbitTree.$typeName, extractType(typeArg)), json.$typeArgs, [typeArg], )
|
|
65
|
+
|
|
66
|
+
return CritbitTree.fromJSONField( typeArg, json, ) }
|
|
67
|
+
|
|
68
|
+
static fromSuiParsedData<V extends Reified<TypeArgument, any>>( typeArg: V, content: SuiParsedData ): CritbitTree<ToTypeArgument<V>> { if (content.dataType !== "moveObject") { throw new Error("not an object"); } if (!isCritbitTree(content.type)) { throw new Error(`object at ${(content.fields as any).id} is not a CritbitTree object`); } return CritbitTree.fromFieldsWithTypes( typeArg, content ); }
|
|
69
|
+
|
|
70
|
+
static async fetch<V extends Reified<TypeArgument, any>>( client: SuiClient, typeArg: V, id: string ): Promise<CritbitTree<ToTypeArgument<V>>> { const res = await client.getObject({ id, options: { showBcs: true, }, }); if (res.error) { throw new Error(`error fetching CritbitTree object at id ${id}: ${res.error.code}`); } if (res.data?.bcs?.dataType !== "moveObject" || !isCritbitTree(res.data.bcs.type)) { throw new Error(`object at id ${id} is not a CritbitTree object`); }
|
|
71
|
+
return CritbitTree.fromBcs( typeArg, fromB64(res.data.bcs.bcsBytes) ); }
|
|
72
|
+
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/* ============================== InternalNode =============================== */
|
|
76
|
+
|
|
77
|
+
export function isInternalNode(type: string): boolean { type = compressSuiType(type); return type === "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::InternalNode"; }
|
|
78
|
+
|
|
79
|
+
export interface InternalNodeFields { mask: ToField<"u64">; leftChild: ToField<"u64">; rightChild: ToField<"u64">; parent: ToField<"u64"> }
|
|
80
|
+
|
|
81
|
+
export type InternalNodeReified = Reified< InternalNode, InternalNodeFields >;
|
|
82
|
+
|
|
83
|
+
export class InternalNode implements StructClass { static readonly $typeName = "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::InternalNode"; static readonly $numTypeParams = 0;
|
|
84
|
+
|
|
85
|
+
readonly $typeName = InternalNode.$typeName;
|
|
86
|
+
|
|
87
|
+
readonly $fullTypeName: "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::InternalNode";
|
|
88
|
+
|
|
89
|
+
readonly $typeArgs: [];
|
|
90
|
+
|
|
91
|
+
readonly mask: ToField<"u64">; readonly leftChild: ToField<"u64">; readonly rightChild: ToField<"u64">; readonly parent: ToField<"u64">
|
|
92
|
+
|
|
93
|
+
private constructor(typeArgs: [], fields: InternalNodeFields, ) { this.$fullTypeName = composeSuiType( InternalNode.$typeName, ...typeArgs ) as "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::InternalNode"; this.$typeArgs = typeArgs;
|
|
94
|
+
|
|
95
|
+
this.mask = fields.mask;; this.leftChild = fields.leftChild;; this.rightChild = fields.rightChild;; this.parent = fields.parent; }
|
|
96
|
+
|
|
97
|
+
static reified( ): InternalNodeReified { return { typeName: InternalNode.$typeName, fullTypeName: composeSuiType( InternalNode.$typeName, ...[] ) as "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::InternalNode", typeArgs: [ ] as [], reifiedTypeArgs: [], fromFields: (fields: Record<string, any>) => InternalNode.fromFields( fields, ), fromFieldsWithTypes: (item: FieldsWithTypes) => InternalNode.fromFieldsWithTypes( item, ), fromBcs: (data: Uint8Array) => InternalNode.fromBcs( data, ), bcs: InternalNode.bcs, fromJSONField: (field: any) => InternalNode.fromJSONField( field, ), fromJSON: (json: Record<string, any>) => InternalNode.fromJSON( json, ), fromSuiParsedData: (content: SuiParsedData) => InternalNode.fromSuiParsedData( content, ), fetch: async (client: SuiClient, id: string) => InternalNode.fetch( client, id, ), new: ( fields: InternalNodeFields, ) => { return new InternalNode( [], fields ) }, kind: "StructClassReified", } }
|
|
98
|
+
|
|
99
|
+
static get r() { return InternalNode.reified() }
|
|
100
|
+
|
|
101
|
+
static phantom( ): PhantomReified<ToTypeStr<InternalNode>> { return phantom(InternalNode.reified( )); } static get p() { return InternalNode.phantom() }
|
|
102
|
+
|
|
103
|
+
static get bcs() { return bcs.struct("InternalNode", {
|
|
104
|
+
|
|
105
|
+
mask: bcs.u64(), left_child: bcs.u64(), right_child: bcs.u64(), parent: bcs.u64()
|
|
106
|
+
|
|
107
|
+
}) };
|
|
108
|
+
|
|
109
|
+
static fromFields( fields: Record<string, any> ): InternalNode { return InternalNode.reified( ).new( { mask: decodeFromFields("u64", fields.mask), leftChild: decodeFromFields("u64", fields.left_child), rightChild: decodeFromFields("u64", fields.right_child), parent: decodeFromFields("u64", fields.parent) } ) }
|
|
110
|
+
|
|
111
|
+
static fromFieldsWithTypes( item: FieldsWithTypes ): InternalNode { if (!isInternalNode(item.type)) { throw new Error("not a InternalNode type");
|
|
112
|
+
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return InternalNode.reified( ).new( { mask: decodeFromFieldsWithTypes("u64", item.fields.mask), leftChild: decodeFromFieldsWithTypes("u64", item.fields.left_child), rightChild: decodeFromFieldsWithTypes("u64", item.fields.right_child), parent: decodeFromFieldsWithTypes("u64", item.fields.parent) } ) }
|
|
116
|
+
|
|
117
|
+
static fromBcs( data: Uint8Array ): InternalNode { return InternalNode.fromFields( InternalNode.bcs.parse(data) ) }
|
|
118
|
+
|
|
119
|
+
toJSONField() { return {
|
|
120
|
+
|
|
121
|
+
mask: this.mask.toString(),leftChild: this.leftChild.toString(),rightChild: this.rightChild.toString(),parent: this.parent.toString(),
|
|
122
|
+
|
|
123
|
+
} }
|
|
124
|
+
|
|
125
|
+
toJSON() { return { $typeName: this.$typeName, $typeArgs: this.$typeArgs, ...this.toJSONField() } }
|
|
126
|
+
|
|
127
|
+
static fromJSONField( field: any ): InternalNode { return InternalNode.reified( ).new( { mask: decodeFromJSONField("u64", field.mask), leftChild: decodeFromJSONField("u64", field.leftChild), rightChild: decodeFromJSONField("u64", field.rightChild), parent: decodeFromJSONField("u64", field.parent) } ) }
|
|
128
|
+
|
|
129
|
+
static fromJSON( json: Record<string, any> ): InternalNode { if (json.$typeName !== InternalNode.$typeName) { throw new Error("not a WithTwoGenerics json object") };
|
|
130
|
+
|
|
131
|
+
return InternalNode.fromJSONField( json, ) }
|
|
132
|
+
|
|
133
|
+
static fromSuiParsedData( content: SuiParsedData ): InternalNode { if (content.dataType !== "moveObject") { throw new Error("not an object"); } if (!isInternalNode(content.type)) { throw new Error(`object at ${(content.fields as any).id} is not a InternalNode object`); } return InternalNode.fromFieldsWithTypes( content ); }
|
|
134
|
+
|
|
135
|
+
static async fetch( client: SuiClient, id: string ): Promise<InternalNode> { const res = await client.getObject({ id, options: { showBcs: true, }, }); if (res.error) { throw new Error(`error fetching InternalNode object at id ${id}: ${res.error.code}`); } if (res.data?.bcs?.dataType !== "moveObject" || !isInternalNode(res.data.bcs.type)) { throw new Error(`object at id ${id} is not a InternalNode object`); }
|
|
136
|
+
return InternalNode.fromBcs( fromB64(res.data.bcs.bcsBytes) ); }
|
|
137
|
+
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/* ============================== Leaf =============================== */
|
|
141
|
+
|
|
142
|
+
export function isLeaf(type: string): boolean { type = compressSuiType(type); return type.startsWith("0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::Leaf<"); }
|
|
143
|
+
|
|
144
|
+
export interface LeafFields<V extends TypeArgument> { key: ToField<"u64">; value: ToField<V>; parent: ToField<"u64"> }
|
|
145
|
+
|
|
146
|
+
export type LeafReified<V extends TypeArgument> = Reified< Leaf<V>, LeafFields<V> >;
|
|
147
|
+
|
|
148
|
+
export class Leaf<V extends TypeArgument> implements StructClass { static readonly $typeName = "0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::Leaf"; static readonly $numTypeParams = 1;
|
|
149
|
+
|
|
150
|
+
readonly $typeName = Leaf.$typeName;
|
|
151
|
+
|
|
152
|
+
readonly $fullTypeName: `0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::Leaf<${ToTypeStr<V>}>`;
|
|
153
|
+
|
|
154
|
+
readonly $typeArgs: [ToTypeStr<V>];
|
|
155
|
+
|
|
156
|
+
readonly key: ToField<"u64">; readonly value: ToField<V>; readonly parent: ToField<"u64">
|
|
157
|
+
|
|
158
|
+
private constructor(typeArgs: [ToTypeStr<V>], fields: LeafFields<V>, ) { this.$fullTypeName = composeSuiType( Leaf.$typeName, ...typeArgs ) as `0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::Leaf<${ToTypeStr<V>}>`; this.$typeArgs = typeArgs;
|
|
159
|
+
|
|
160
|
+
this.key = fields.key;; this.value = fields.value;; this.parent = fields.parent; }
|
|
161
|
+
|
|
162
|
+
static reified<V extends Reified<TypeArgument, any>>( V: V ): LeafReified<ToTypeArgument<V>> { return { typeName: Leaf.$typeName, fullTypeName: composeSuiType( Leaf.$typeName, ...[extractType(V)] ) as `0x4213e12a2220f15f1837a76897110d2260786558169bd8d0847f21e9b551f277::critbit::Leaf<${ToTypeStr<ToTypeArgument<V>>}>`, typeArgs: [ extractType(V) ] as [ToTypeStr<ToTypeArgument<V>>], reifiedTypeArgs: [V], fromFields: (fields: Record<string, any>) => Leaf.fromFields( V, fields, ), fromFieldsWithTypes: (item: FieldsWithTypes) => Leaf.fromFieldsWithTypes( V, item, ), fromBcs: (data: Uint8Array) => Leaf.fromBcs( V, data, ), bcs: Leaf.bcs(toBcs(V)), fromJSONField: (field: any) => Leaf.fromJSONField( V, field, ), fromJSON: (json: Record<string, any>) => Leaf.fromJSON( V, json, ), fromSuiParsedData: (content: SuiParsedData) => Leaf.fromSuiParsedData( V, content, ), fetch: async (client: SuiClient, id: string) => Leaf.fetch( client, V, id, ), new: ( fields: LeafFields<ToTypeArgument<V>>, ) => { return new Leaf( [extractType(V)], fields ) }, kind: "StructClassReified", } }
|
|
163
|
+
|
|
164
|
+
static get r() { return Leaf.reified }
|
|
165
|
+
|
|
166
|
+
static phantom<V extends Reified<TypeArgument, any>>( V: V ): PhantomReified<ToTypeStr<Leaf<ToTypeArgument<V>>>> { return phantom(Leaf.reified( V )); } static get p() { return Leaf.phantom }
|
|
167
|
+
|
|
168
|
+
static get bcs() { return <V extends BcsType<any>>(V: V) => bcs.struct(`Leaf<${V.name}>`, {
|
|
169
|
+
|
|
170
|
+
key: bcs.u64(), value: V, parent: bcs.u64()
|
|
171
|
+
|
|
172
|
+
}) };
|
|
173
|
+
|
|
174
|
+
static fromFields<V extends Reified<TypeArgument, any>>( typeArg: V, fields: Record<string, any> ): Leaf<ToTypeArgument<V>> { return Leaf.reified( typeArg, ).new( { key: decodeFromFields("u64", fields.key), value: decodeFromFields(typeArg, fields.value), parent: decodeFromFields("u64", fields.parent) } ) }
|
|
175
|
+
|
|
176
|
+
static fromFieldsWithTypes<V extends Reified<TypeArgument, any>>( typeArg: V, item: FieldsWithTypes ): Leaf<ToTypeArgument<V>> { if (!isLeaf(item.type)) { throw new Error("not a Leaf type");
|
|
177
|
+
|
|
178
|
+
} assertFieldsWithTypesArgsMatch(item, [typeArg]);
|
|
179
|
+
|
|
180
|
+
return Leaf.reified( typeArg, ).new( { key: decodeFromFieldsWithTypes("u64", item.fields.key), value: decodeFromFieldsWithTypes(typeArg, item.fields.value), parent: decodeFromFieldsWithTypes("u64", item.fields.parent) } ) }
|
|
181
|
+
|
|
182
|
+
static fromBcs<V extends Reified<TypeArgument, any>>( typeArg: V, data: Uint8Array ): Leaf<ToTypeArgument<V>> { const typeArgs = [typeArg];
|
|
183
|
+
|
|
184
|
+
return Leaf.fromFields( typeArg, Leaf.bcs( toBcs(typeArgs[0]) ).parse(data) ) }
|
|
185
|
+
|
|
186
|
+
toJSONField() { return {
|
|
187
|
+
|
|
188
|
+
key: this.key.toString(),value: fieldToJSON<V>(this.$typeArgs[0], this.value),parent: this.parent.toString(),
|
|
189
|
+
|
|
190
|
+
} }
|
|
191
|
+
|
|
192
|
+
toJSON() { return { $typeName: this.$typeName, $typeArgs: this.$typeArgs, ...this.toJSONField() } }
|
|
193
|
+
|
|
194
|
+
static fromJSONField<V extends Reified<TypeArgument, any>>( typeArg: V, field: any ): Leaf<ToTypeArgument<V>> { return Leaf.reified( typeArg, ).new( { key: decodeFromJSONField("u64", field.key), value: decodeFromJSONField(typeArg, field.value), parent: decodeFromJSONField("u64", field.parent) } ) }
|
|
195
|
+
|
|
196
|
+
static fromJSON<V extends Reified<TypeArgument, any>>( typeArg: V, json: Record<string, any> ): Leaf<ToTypeArgument<V>> { if (json.$typeName !== Leaf.$typeName) { throw new Error("not a WithTwoGenerics json object") }; assertReifiedTypeArgsMatch( composeSuiType(Leaf.$typeName, extractType(typeArg)), json.$typeArgs, [typeArg], )
|
|
197
|
+
|
|
198
|
+
return Leaf.fromJSONField( typeArg, json, ) }
|
|
199
|
+
|
|
200
|
+
static fromSuiParsedData<V extends Reified<TypeArgument, any>>( typeArg: V, content: SuiParsedData ): Leaf<ToTypeArgument<V>> { if (content.dataType !== "moveObject") { throw new Error("not an object"); } if (!isLeaf(content.type)) { throw new Error(`object at ${(content.fields as any).id} is not a Leaf object`); } return Leaf.fromFieldsWithTypes( typeArg, content ); }
|
|
201
|
+
|
|
202
|
+
static async fetch<V extends Reified<TypeArgument, any>>( client: SuiClient, typeArg: V, id: string ): Promise<Leaf<ToTypeArgument<V>>> { const res = await client.getObject({ id, options: { showBcs: true, }, }); if (res.error) { throw new Error(`error fetching Leaf object at id ${id}: ${res.error.code}`); } if (res.data?.bcs?.dataType !== "moveObject" || !isLeaf(res.data.bcs.type)) { throw new Error(`object at id ${id} is not a Leaf object`); }
|
|
203
|
+
return Leaf.fromBcs( typeArg, fromB64(res.data.bcs.bcsBytes) ); }
|
|
204
|
+
|
|
205
|
+
}
|