@silvana-one/abi 0.1.21 → 0.1.24

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/src/nft/build.ts CHANGED
@@ -30,6 +30,8 @@ import {
30
30
  AdvancedCollection,
31
31
  NFTAdmin,
32
32
  NFTAdvancedAdmin,
33
+ Offer,
34
+ AdvancedOffer,
33
35
  Metadata,
34
36
  pinMetadata,
35
37
  fieldFromString,
@@ -391,17 +393,14 @@ export async function buildNftTransaction(params: {
391
393
  }
392
394
  const nftAddress = PublicKey.fromBase58(args.nftAddress);
393
395
 
394
- // const offerAddress =
395
- // "offerAddress" in args && args.offerAddress
396
- // ? PublicKey.fromBase58(args.offerAddress)
397
- // : undefined;
398
- // if (
399
- // !offerAddress &&
400
- // (txType === "token:offer:create" ||
401
- // txType === "token:offer:buy" ||
402
- // txType === "token:offer:withdraw")
403
- // )
404
- // throw new Error("Offer address is required");
396
+ let offerAddress =
397
+ "nftSellParams" in args &&
398
+ args.nftSellParams &&
399
+ args.nftSellParams.offerAddress
400
+ ? PublicKey.fromBase58(args.nftSellParams.offerAddress)
401
+ : undefined;
402
+ if (!offerAddress && txType === "nft:sell")
403
+ throw new Error("Offer address is required");
405
404
 
406
405
  // const bidAddress =
407
406
  // "bidAddress" in args && args.bidAddress
@@ -479,6 +478,7 @@ export async function buildNftTransaction(params: {
479
478
  nftName,
480
479
  storage,
481
480
  metadataRoot,
481
+ approved,
482
482
  } = await getNftSymbolAndAdmin({
483
483
  txType,
484
484
  collectionAddress,
@@ -490,6 +490,19 @@ export async function buildNftTransaction(params: {
490
490
  throw new Error("storage is required, but not provided");
491
491
  if (metadataRoot === undefined) throw new Error("metadataRoot is required");
492
492
  if (nftName === undefined) throw new Error("nftName is required");
493
+ if (approved === undefined) throw new Error("approved is required");
494
+ if (txType === "nft:buy" && approved.equals(PublicKey.empty()))
495
+ throw new Error("approved is required to be non-empty for nft:buy");
496
+ if (
497
+ txType === "nft:buy" &&
498
+ offerAddress !== undefined &&
499
+ !offerAddress.equals(approved).toBoolean()
500
+ )
501
+ throw new Error(
502
+ "offerAddress is required to be the same as approved for nft:buy"
503
+ );
504
+ if (txType === "nft:buy" && offerAddress === undefined)
505
+ offerAddress = approved;
493
506
 
494
507
  const memo = args.memo ?? `${txType.split(":")[1]} ${symbol} ${nftName}`;
495
508
  const fee = 100_000_000;
@@ -530,6 +543,7 @@ export async function buildNftTransaction(params: {
530
543
  // : Whitelist.empty();
531
544
 
532
545
  const zkCollection = new collectionContract(collectionAddress);
546
+
533
547
  const tokenId = zkCollection.deriveTokenId();
534
548
 
535
549
  // if (
@@ -619,10 +633,20 @@ export async function buildNftTransaction(params: {
619
633
  !vk.NFTAdmin.data ||
620
634
  !vk.NFTAdvancedAdmin ||
621
635
  !vk.NFTAdvancedAdmin.hash ||
622
- !vk.NFTAdvancedAdmin.data
636
+ !vk.NFTAdvancedAdmin.data ||
637
+ !vk.NonFungibleTokenOfferContract ||
638
+ !vk.NonFungibleTokenOfferContract.hash ||
639
+ !vk.NonFungibleTokenOfferContract.data ||
640
+ !vk.NonFungibleTokenAdvancedOfferContract ||
641
+ !vk.NonFungibleTokenAdvancedOfferContract.hash ||
642
+ !vk.NonFungibleTokenAdvancedOfferContract.data
623
643
  )
624
644
  throw new Error("Cannot get verification key from vk");
625
645
 
646
+ if (txType === "nft:sell") {
647
+ verificationKeyHashes.push(vk.NonFungibleTokenOfferContract.hash);
648
+ }
649
+
626
650
  // const offerVerificationKey = FungibleTokenOfferContract._verificationKey ?? {
627
651
  // hash: Field(vk.FungibleTokenOfferContract.hash),
628
652
  // data: vk.FungibleTokenOfferContract.data,
@@ -750,7 +774,8 @@ export async function buildNftTransaction(params: {
750
774
  // break;
751
775
  // }
752
776
 
753
- const accountCreationFee = 0;
777
+ const accountCreationFee = txType === "nft:sell" ? 1_000_000_000 : 0;
778
+ const zkOffer = offerAddress ? new Offer(offerAddress) : undefined;
754
779
 
755
780
  const tx = await Mina.transaction({ sender, fee, memo, nonce }, async () => {
756
781
  const feeAccountUpdate = AccountUpdate.createSigned(sender);
@@ -801,6 +826,31 @@ export async function buildNftTransaction(params: {
801
826
  await zkCollection.approveAddress(nftAddress, to);
802
827
  break;
803
828
 
829
+ case "nft:sell":
830
+ if (!price) throw new Error("Price is required for nft:sell");
831
+ if (!offerAddress)
832
+ throw new Error("Offer address is required for nft:sell");
833
+ if (zkOffer === undefined)
834
+ throw new Error("Offer contract is required for nft:sell");
835
+
836
+ await zkCollection.approveAddress(nftAddress, offerAddress);
837
+ await zkOffer.deploy({
838
+ collection: zkCollection.address,
839
+ nft: nftAddress,
840
+ owner: sender,
841
+ price,
842
+ });
843
+ break;
844
+
845
+ case "nft:buy":
846
+ if (!offerAddress)
847
+ throw new Error("Offer address is required for nft:buy");
848
+ if (zkOffer === undefined)
849
+ throw new Error("Offer contract is required for nft:buy");
850
+ if (!buyer) throw new Error("Buyer is required for nft:buy");
851
+ await zkOffer.buy(buyer);
852
+ break;
853
+
804
854
  default:
805
855
  throw new Error(`Unknown transaction type: ${txType}`);
806
856
  }
@@ -1296,6 +1346,7 @@ export async function getNftSymbolAndAdmin(params: {
1296
1346
  verificationKeyHashes: string[];
1297
1347
  nftName?: string;
1298
1348
  storage?: string;
1349
+ approved?: PublicKey;
1299
1350
  metadataRoot?: string;
1300
1351
  }> {
1301
1352
  const { txType, collectionAddress, chain, nftAddress } = params;
@@ -1305,6 +1356,7 @@ export async function getNftSymbolAndAdmin(params: {
1305
1356
  let nftName: string | undefined = undefined;
1306
1357
  let storage: string | undefined = undefined;
1307
1358
  let metadataRoot: string | undefined = undefined;
1359
+ let approved: PublicKey | undefined = undefined;
1308
1360
  // if (bidAddress) {
1309
1361
  // verificationKeyHashes.push(vk.FungibleTokenBidContract.hash);
1310
1362
  // }
@@ -1341,6 +1393,8 @@ export async function getNftSymbolAndAdmin(params: {
1341
1393
  nftName = fieldToString(nft.name.get());
1342
1394
  storage = nft.storage.get().toString();
1343
1395
  metadataRoot = nft.metadata.get().toJSON();
1396
+ const data = NFTData.unpack(nft.packedData.get());
1397
+ approved = data.approved;
1344
1398
  }
1345
1399
 
1346
1400
  const account = Mina.getAccount(collectionAddress);
package/src/vk/devnet.ts CHANGED
@@ -4,6 +4,11 @@ import { ChainVerificationKeysList } from "./types.js";
4
4
  export const devnet: ChainVerificationKeysList = {
5
5
  "o1js": "2.2.0",
6
6
  "vk": {
7
+ "BulletinBoard": {
8
+ "hash": "12594663453915743298021680698349746683643416764635959497597295246302960581653",
9
+ "data": "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",
10
+ "type": "user"
11
+ },
7
12
  "NFT": {
8
13
  "hash": "11840382732064931640435917684245815329181717734233274982467687213333743677377",
9
14
  "data": "AADUTaZ5kJK+C2TL7P/tc4MlgEq5zWOLFDtgDU/u9ry3Es1Ek79TcLqIWg8s6TJJcXzM0D/6xz1y8FQn2tGjjcspfNtNRAmG3FdldAatVpnkTwS6Otpm88gl7lOPX8bRJjhHfEtdvEsQ0OudcDzB5iCqu268zqkBvXrXT3xaNN+sIIqLTtxltMz4RS/2layxzL6mg1J+kkTsNIJsg6MufeMI6Xn5pAYOaWFqgo0N0WZsnF3EYcYq1LcDucyyFS2RqRninioewrlEDzjY8y6rmf9+GibQasJCE+mkbfB4wCOuFMiSrRIN/73BODz9siBxs/bU/p7xffJsOL8JvitK7ngRyG3PfGGdW22njv9MYxNhb/YhKnPA0qPTOQjxg1a/Pg8NyjB9RM7eypPJNLFaWFzNM4JRxjI7wGVVOfE0D7DUAL32SzQ1Jmr4mILqDhnDREu2ETq0Lb+c1cxPgb4x1nYbWcSgdAOtKJBvXHkWs7JlJdL1q9yiRrzYb1kPMPNGACnSB3N3Omm//FhxitOOM4yucxZyKpKst/otZu51/gGBDW5tIwKYpfl5ETSNvDFY+9rLUHv+LxSz+yq6cUFKExI6AHlh4NOJ48RYK+GMvvI1cc3P2WsPr3WFV0H/KMIOKjg/GvoOXQ632/hE1us30Nsm9BgRswE7Zrx8zDbjBdDspQWavhgVmpC5Q7SrwYYPkqb/HBWsxMcdrB842bKWsszzPYQxR6cfCwjXzq9Txe7fh1bzOKY6WO7ysYpefFM+yY85IlYCzX1/97FEaPGF4lBMe2ONgwPMq3VJ6Yxzfnor4zPMyH1pW2dm2QmV0Ep2NYO7fVGPn83abwq34GMgZmriFh3M7XzlYX54q3CeG861Z+HPZHukv+oVlUyWtWGk4E4PNlm61kXaLF7ECDy2+s73Ris1HbVSbbCOMkAok4Ytwi0FGwrSFSvRbb7s5Mbnfg6zvkKYwbNMjff5OlJPUcK5GMaYp2Ii2+7t+j3Wx8wSwdqlat61zS/PuZtaxiT0DL8+0mh8S8zZnCUC/Sda2LeJW2brN9WXg8adeZ5d7eNx2yEeQws2CziWKiC1t0Z2hoGvnjzpZH+pq2zfaEk+JnQEHR+EpRqK17Vyq98iBsGM9riQLCa8SO2wsOnYS0zS8CIP6hwFKbTs7Ueq7fnmRsuHpuwI/BW7ilCHLoJ/D9fJ4h+DHeZijuM3U31QTU555rWwJ48EWT4y8Wmh84sEIrEUFDA9GS8I+Rgl5eE6QsQm09cJ2/FTzuIf2ps4+WcWf20huAyxrUOJxM1alZvTDTcAY9GPkPnFqQ46Uuch5x0k1Q1sxkgplNx2+uE6xGFUloYB5DKDdApgafJbVZ5YBrghBstiDkOVkOPTsRWM9BbJB5A4Ult8q4V+rNyRmqyyzOMhYEW2kj8yWr5CImCBZW0QPHzBXr/xZCcUH2VBZMKMqCly/9VkHR5LlMGgG5UlibSkoZvI2EOl1pFPW7F9dZ6JM18zW3VHNNM4W1drrTxbta0wX2Hp6lmtmOPOxjvYSrQiLBSFvouZ29tALODGK+21jErmEUoMJsRiRS6/cIkErD1tSO4qe86XPXYQ5niN34QsGWawOmVJIXoobD9vEvJHGpylpTg5i4HXBZu31nN/bezAQ0bp0k5k2iI4jo91gFoPItUXpBk2rLNZHMUhZOKT81yhJLnE5ihfrTQLgplzqRo7Dc7lQdohdyvzCi8Bxx/beoojY0ixWBVAw5bWK9/5KjImxG/2c38hBZ+2QYS/el2BEMe8mBUJqQ6bn/wVKngn6KsXEuIHf4Fs4JRA3xbWwP/9jrxFzYJ9pOW4ehETRBneHurW/1Myw/sOAebVzbhcEMVYeg2x4S2bgFHRteOBKgAkwfQFD/kvT+Cj6cYKcFgAQchhccMvUYC7IHdFFJ1vBRbWpWKwrXMrpXhP9R0/jhiIDG9iEYdRcW2Gc8SoxEMYa4Yp6VK1DaZ8X4YG1x6tVj/KLG+MoA7S9SoHhnNacyJJboJiczKR2kWcZswBrCughfCRlonVt+xj7zQeVyyaKql/9PHQKj49dpZYAeMtkq3k1P6Q/ivGrXXJ3y2ktO0usnVat5iQ7Q4Gi2Dvbpvm72q0bAeZDvlH4QTmFzJ0wApj1zXt1XK2z1nA9RSH7f6sI5JskSLQlnXfdUEW52vnOTGE4uZK2P4g5YlAiAVddmI0zGXoamMWlv9MaDFHKlcJtA9IZZZeC+cLzWhE177Y6VXumacpK7i70LwRR9ghnykqf5SuYTzlAVLaufgsR0LDwNStGwrF6JtPMsoD9DVNKrpQ+tNNUfYovOM1iwk2BXvz9BydiqZzFhmfIYXSkScpVvuThbsPxBZ1LqfCaX4f5Rz28GZILf0d9xPjsWFSCRk=",
@@ -15,8 +20,13 @@ export const devnet: ChainVerificationKeysList = {
15
20
  "type": "collection"
16
21
  },
17
22
  "NonFungibleTokenOfferContract": {
18
- "hash": "8547452427762838584951648728722457733553962093547901731683261758052034563177",
19
- "data": "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",
23
+ "hash": "18917365504330505387701568460843296344128168488195211914259147712337585248717",
24
+ "data": "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",
25
+ "type": "user"
26
+ },
27
+ "NonFungibleTokenAdvancedOfferContract": {
28
+ "hash": "18917365504330505387701568460843296344128168488195211914259147712337585248717",
29
+ "data": "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",
20
30
  "type": "user"
21
31
  },
22
32
  "NFTAdmin": {
package/src/vk/mainnet.ts CHANGED
@@ -4,6 +4,11 @@ import { ChainVerificationKeysList } from "./types.js";
4
4
  export const mainnet: ChainVerificationKeysList = {
5
5
  "o1js": "2.2.0",
6
6
  "vk": {
7
+ "BulletinBoard": {
8
+ "hash": "27010434899748042681626301334097368045102790373532959189407887475941337066939",
9
+ "data": "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",
10
+ "type": "user"
11
+ },
7
12
  "NFT": {
8
13
  "hash": "11510318025893859422482952918693907155880273225165466507725691048640041393360",
9
14
  "data": "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",
@@ -15,8 +20,13 @@ export const mainnet: ChainVerificationKeysList = {
15
20
  "type": "collection"
16
21
  },
17
22
  "NonFungibleTokenOfferContract": {
18
- "hash": "6814366054303460006786227738424585404619502154485123864765817193634847999364",
19
- "data": "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",
23
+ "hash": "14611166596969119169216874056250569253208157789910733680694159458273137815947",
24
+ "data": "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",
25
+ "type": "user"
26
+ },
27
+ "NonFungibleTokenAdvancedOfferContract": {
28
+ "hash": "14611166596969119169216874056250569253208157789910733680694159458273137815947",
29
+ "data": "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",
20
30
  "type": "user"
21
31
  },
22
32
  "NFTAdmin": {