Skip to content

Commit 2af724d

Browse files
thibault-martinezKeitoTadashimarc2332
authored
feat: upgrade devnet iota-names and subnames packages (#831)
* feat: upgrade devnet `iota-names` and `subnames` packages * upgrade devnet.json * add versioned packages to devnet.json * fix envs script * fix PackageInfo * update testnet.json * fix tests? * more v1 * one more * feat(sdk,dapp): Sync sdk with smart contract versions (#848) * feat(dapp): sync sdk with smart contract versions * revert * sync sdk with new constant versions * sync dapp with new constants * sync dapp * sync dapp * rethink * fix some bits * simplify * fixes * bump actions/checkout * fixes * adapt tests * cast * adapt inject script * remove metadata * fixes * fix * revert invalidate queries * fix inject localnet config sript * chore: Update devnet deploy * clean up * clean up * unhardcode type arg * docs: Update sdk.mdx * chore: Unify `resolveRead` and `resolveWrite` into `getPackage` * !== * chore: Change the default to `latest` * fix: Use v1 in useAuctionHouse * chore: Missing v1s * chore: braces --------- Co-authored-by: marc2332 <[email protected]> * fix: Add missing `getPackage` calls in dapp tests --------- Co-authored-by: Keito <[email protected]> Co-authored-by: marc2332 <[email protected]>
1 parent 140b734 commit 2af724d

31 files changed

+402
-301
lines changed

.changeset/fifty-candies-refuse.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@iota/iota-names-sdk': minor
3+
---
4+
5+
Proper multi version and network support.

dapp/src/auctions/hooks/useAuctionBid.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,19 @@ export function useAuctionBid({ name, bidNanos }: UseActionBidParams) {
4545
],
4646
queryFn: async () => {
4747
if (!auctionHouse) throw new Error('Auction house not loaded');
48+
const auctionPackageId = iotaNamesClient.getPackage('auctionPackageId');
49+
const iotaNamesObjectId = iotaNamesClient.getPackage('iotaNamesObjectId');
4850
const transaction = !isAuctionPresent
4951
? buildCreateAuctionTransaction(
50-
iotaNamesClient.config.auctionPackageId,
51-
iotaNamesClient.config.iotaNamesObjectId,
52+
auctionPackageId,
53+
iotaNamesObjectId,
5254
auctionHouse.auctionHouseId,
5355
address,
5456
bidNanos,
5557
name,
5658
)
5759
: buildPlaceBidTransaction(
58-
iotaNamesClient.config.auctionPackageId,
60+
auctionPackageId,
5961
auctionHouse.auctionHouseId,
6062
address,
6163
bidNanos,

dapp/src/auctions/hooks/useAuctionHouse.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ interface AuctionHouseData {
1919
export function useAuctionHouse(): UseQueryResult<AuctionHouseData | null, Error> {
2020
const { iotaNamesClient } = useIotaNamesClient();
2121

22-
const auctionPackageId = iotaNamesClient.config.auctionPackageId;
22+
const auctionPackageId = iotaNamesClient.getPackage('auctionPackageId', 'v1');
2323

2424
return useQuery({
2525
queryKey: ['auctionHouse', auctionPackageId],

dapp/src/auctions/hooks/useAuctions.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ export function useAuctions({
141141
const userParticipationSet = new Set(userAuctions.names);
142142

143143
const { auctionsTableObjectId } = auctionHouseData || {};
144-
const { packageId } = iotaNamesClient.config;
144+
const packageId = iotaNamesClient.getPackage('packageId', 'v1');
145145

146146
// Then, fetch metadata for each auction
147147
const combinedResult = useQueries({

dapp/src/auctions/hooks/useClaimAuctionTransaction.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ export function useClaimAuctionTransaction(
2828
throw new Error('Auction house not available');
2929
}
3030

31+
const auctionPackageId = iotaNamesClient.getPackage('auctionPackageId');
32+
3133
const transaction = buildClaimNameTransaction(
32-
iotaNamesClient.config.auctionPackageId,
34+
auctionPackageId,
3335
auctionHouseData.auctionHouseId,
3436
address,
3537
name,

dapp/src/auctions/hooks/useGetAuctionMetadata.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export function useGetAuctionMetadata(name: string) {
1313
const { data: auctionHouseData } = useAuctionHouse();
1414

1515
const { auctionsTableObjectId } = auctionHouseData || {};
16-
const { packageId } = iotaNamesClient.config;
16+
const packageId = iotaNamesClient.getPackage('packageId', 'v1');
1717

1818
const queryConfig = createAuctionMetadataQuery({
1919
name,

dapp/src/hooks/useGetVisualAssets.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import { getNameRegistrationType, getSubnameRegistrationType } from '@iota/iota-names-sdk';
55
import { type IotaObjectData } from '@iota/iota-sdk/client';
6+
import { IOTA_TYPE_ARG } from '@iota/iota-sdk/utils';
67

78
import { useIotaNamesClient } from '@/contexts';
89
import { isKioskOwnerToken } from '@/lib/utils/kiosk';
@@ -13,15 +14,15 @@ import { useKioskClient } from './useKioskClient';
1314
const FILTER_NONE_STRUCT_TYPES = [
1415
'0x2::coin::Coin',
1516
'0x3::staking_pool::StakedIota',
16-
'0x2::iota::IOTA',
17+
IOTA_TYPE_ARG,
1718
'0x3::timelocked_staking::TimelockedStakedIota',
1819
'0x2::timelock::TimeLock<0x2::balance::Balance<0x2::iota::IOTA>>',
1920
];
2021

2122
export function useGetVisualAssets(address: string) {
2223
const kioskClient = useKioskClient();
2324
const { iotaNamesClient } = useIotaNamesClient();
24-
const packageId = iotaNamesClient.config.packageId;
25+
const packageId = iotaNamesClient.getPackage('packageId', 'v1');
2526

2627
const iotaNamesStructsToRemove = [
2728
getNameRegistrationType(packageId),

dapp/src/hooks/useNamesPurchaseMode.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,15 @@ import { queryKey } from './queryKey';
1111
export function useNamesPurchaseMode() {
1212
const { iotaNamesClient } = useIotaNamesClient();
1313
const iotaClient = useIotaClient();
14+
const packageId = iotaNamesClient.getPackage('packageId', 'v1');
15+
const paymentsPackageId = iotaNamesClient.getPackage('paymentsPackageId', 'v1');
16+
const auctionPackageId = iotaNamesClient.getPackage('auctionPackageId', 'v1');
17+
const iotaNamesObjectId = iotaNamesClient.getPackage('iotaNamesObjectId', 'v1');
1418

15-
const authKeyType = `${iotaNamesClient.config.packageId}::iota_names::AuthKey`;
19+
const authKeyType = `${packageId}::iota_names::AuthKey`;
1620

17-
const paymentType = `${authKeyType}<${iotaNamesClient.config.paymentsPackageId}::payments::PaymentsAuth>`;
18-
const auctionType = `${authKeyType}<${iotaNamesClient.config.auctionPackageId}::auction::AuctionAuth>`;
21+
const paymentType = `${authKeyType}<${paymentsPackageId}::payments::PaymentsAuth>`;
22+
const auctionType = `${authKeyType}<${auctionPackageId}::auction::AuctionAuth>`;
1923

2024
return useQuery({
2125
// eslint-disable-next-line @tanstack/query/exhaustive-deps
@@ -26,7 +30,7 @@ export function useNamesPurchaseMode() {
2630
}
2731

2832
const { data: dynamicFields } = await iotaClient.getDynamicFields({
29-
parentId: iotaNamesClient.config.iotaNamesObjectId,
33+
parentId: iotaNamesObjectId,
3034
});
3135

3236
const fieldTypes = dynamicFields.map((field) => field.name.type);

dapp/src/hooks/useRegistrationNfts.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ export function useRegistrationNfts(type: RegistrationNftType = 'name') {
1818
const { iotaNamesClient } = useIotaNamesClient();
1919
const account = useCurrentAccount();
2020
const address = account?.address ?? '';
21-
const packageId = iotaNamesClient.config.packageId;
21+
const packageId = iotaNamesClient.getPackage('packageId', 'v1');
22+
2223
const filter = (() => {
2324
switch (type) {
2425
case 'name':

dapp/tests/setup/toggleSmartContract.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ import { expect } from '@playwright/test';
66
import { getAuthorizedSmartContractTypes, iotaNamesClient, runCommand } from './utils';
77

88
const envs = {
9-
IOTA_NAMES_PACKAGE_ADDRESS: iotaNamesClient.config.packageId,
10-
IOTA_NAMES_OBJECT_ID: iotaNamesClient.config.iotaNamesObjectId,
11-
ADMIN_CAP: iotaNamesClient.config.adminCap,
12-
IOTA_NAMES_PAYMENTS_PACKAGE_ADDRESS: iotaNamesClient.config.paymentsPackageId,
13-
ADMIN_ADDRESS: iotaNamesClient.config.adminAddress,
14-
IOTA_NAMES_AUCTIONS_PACKAGE_ADDRESS: iotaNamesClient.config.auctionPackageId,
9+
IOTA_NAMES_PACKAGE_ADDRESS: iotaNamesClient.getPackage('packageId'),
10+
IOTA_NAMES_OBJECT_ID: iotaNamesClient.getPackage('iotaNamesObjectId'),
11+
ADMIN_CAP: iotaNamesClient.getPackage('adminCap'),
12+
IOTA_NAMES_PAYMENTS_PACKAGE_ADDRESS: iotaNamesClient.getPackage('paymentsPackageId'),
13+
ADMIN_ADDRESS: iotaNamesClient.getPackage('adminAddress'),
14+
IOTA_NAMES_AUCTIONS_PACKAGE_ADDRESS: iotaNamesClient.getPackage('auctionPackageId'),
1515
};
1616

1717
function getUpdateAuthCommand(mode: 'enable' | 'disable', type: 'payment' | 'auction') {

0 commit comments

Comments
 (0)