{"version":3,"file":"constants.mjs","names":["rules"],"sources":["../src/constants.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SuiClientTypes } from '@mysten/sui/client';\nimport {\n\tresolveFloorPriceRule,\n\tresolveKioskLockRule,\n\tresolvePersonalKioskRule,\n\tresolveRoyaltyRule,\n} from './tx/rules/resolve.js';\nimport type { ObjectArgument, RuleResolvingParams } from './types/index.js';\n\n/**\n * The base rule package ids that can be extended\n */\nexport type BaseRulePackageIds = {\n\troyaltyRulePackageId?: string;\n\tkioskLockRulePackageId?: string;\n\tpersonalKioskRulePackageId?: string;\n\tfloorPriceRulePackageId?: string;\n};\n\n/**\n * The Transfer Policy rule.\n */\nexport type TransferPolicyRule = {\n\trule: string;\n\tpackageId: string;\n\tresolveRuleFunction: (\n\t\trule: RuleResolvingParams,\n\t) => ObjectArgument | void | Promise<ObjectArgument | void>;\n\thasLockingRule?: boolean;\n};\n\nexport const ROYALTY_RULE_ADDRESS: Partial<Record<SuiClientTypes.Network, string>> = {\n\t['testnet']: 'bd8fc1947cf119350184107a3087e2dc27efefa0dd82e25a1f699069fe81a585',\n\t['mainnet']: '0x434b5bd8f6a7b05fede0ff46c6e511d71ea326ed38056e3bcd681d2d7c2a7879',\n};\n\nexport const KIOSK_LOCK_RULE_ADDRESS: Partial<Record<SuiClientTypes.Network, string>> = {\n\t['testnet']: 'bd8fc1947cf119350184107a3087e2dc27efefa0dd82e25a1f699069fe81a585',\n\t['mainnet']: '0x434b5bd8f6a7b05fede0ff46c6e511d71ea326ed38056e3bcd681d2d7c2a7879',\n};\n\nexport const FLOOR_PRICE_RULE_ADDRESS: Partial<Record<SuiClientTypes.Network, string>> = {\n\t['testnet']: '0x06f6bdd3f2e2e759d8a4b9c252f379f7a05e72dfe4c0b9311cdac27b8eb791b1',\n\t['mainnet']: '0x34cc6762780f4f6f153c924c0680cfe2a1fb4601e7d33cc28a92297b62de1e0e',\n};\n\nexport const PERSONAL_KIOSK_RULE_ADDRESS: Partial<Record<SuiClientTypes.Network, string>> = {\n\t['testnet']: '0x06f6bdd3f2e2e759d8a4b9c252f379f7a05e72dfe4c0b9311cdac27b8eb791b1',\n\t['mainnet']: '0x0cb4bcc0560340eb1a1b929cabe56b33fc6449820ec8c1980d69bb98b649b802',\n};\n\n/**\n * Constructs a list of rule resolvers based on the params.\n */\nexport function getBaseRules({\n\troyaltyRulePackageId,\n\tkioskLockRulePackageId,\n\tpersonalKioskRulePackageId,\n\tfloorPriceRulePackageId,\n}: BaseRulePackageIds): TransferPolicyRule[] {\n\tconst rules: TransferPolicyRule[] = [];\n\n\tif (royaltyRulePackageId) {\n\t\trules.push({\n\t\t\trule: `${royaltyRulePackageId}::royalty_rule::Rule`,\n\t\t\tpackageId: royaltyRulePackageId,\n\t\t\tresolveRuleFunction: resolveRoyaltyRule,\n\t\t});\n\t}\n\n\tif (kioskLockRulePackageId) {\n\t\trules.push({\n\t\t\trule: `${kioskLockRulePackageId}::kiosk_lock_rule::Rule`,\n\t\t\tpackageId: kioskLockRulePackageId,\n\t\t\tresolveRuleFunction: resolveKioskLockRule,\n\t\t\thasLockingRule: true,\n\t\t});\n\t}\n\n\tif (personalKioskRulePackageId) {\n\t\trules.push({\n\t\t\trule: `${personalKioskRulePackageId}::personal_kiosk_rule::Rule`,\n\t\t\tpackageId: personalKioskRulePackageId,\n\t\t\tresolveRuleFunction: resolvePersonalKioskRule,\n\t\t});\n\t}\n\n\tif (floorPriceRulePackageId) {\n\t\trules.push({\n\t\t\trule: `${floorPriceRulePackageId}::floor_price_rule::Rule`,\n\t\t\tpackageId: floorPriceRulePackageId,\n\t\t\tresolveRuleFunction: resolveFloorPriceRule,\n\t\t});\n\t}\n\n\treturn rules;\n}\n\n// A list of testnet's base rules.\nexport const testnetRules: TransferPolicyRule[] = getBaseRules({\n\troyaltyRulePackageId: ROYALTY_RULE_ADDRESS['testnet'],\n\tkioskLockRulePackageId: KIOSK_LOCK_RULE_ADDRESS['testnet'],\n\tpersonalKioskRulePackageId: PERSONAL_KIOSK_RULE_ADDRESS['testnet'],\n\tfloorPriceRulePackageId: FLOOR_PRICE_RULE_ADDRESS['testnet'],\n});\n\n// A list of mainnet's base rules.\nexport const mainnetRules: TransferPolicyRule[] = getBaseRules({\n\troyaltyRulePackageId: ROYALTY_RULE_ADDRESS['mainnet'],\n\tkioskLockRulePackageId: KIOSK_LOCK_RULE_ADDRESS['mainnet'],\n});\n\nexport const rules: TransferPolicyRule[] = [...testnetRules, ...mainnetRules];\n"],"mappings":";;;AAkCA,MAAa,uBAAwE;EACnF,YAAY;EACZ,YAAY;CACb;AAED,MAAa,0BAA2E;EACtF,YAAY;EACZ,YAAY;CACb;AAED,MAAa,2BAA4E;EACvF,YAAY;EACZ,YAAY;CACb;AAED,MAAa,8BAA+E;EAC1F,YAAY;EACZ,YAAY;CACb;;;;AAKD,SAAgB,aAAa,EAC5B,sBACA,wBACA,4BACA,2BAC4C;CAC5C,MAAMA,UAA8B,EAAE;AAEtC,KAAI,qBACH,SAAM,KAAK;EACV,MAAM,GAAG,qBAAqB;EAC9B,WAAW;EACX,qBAAqB;EACrB,CAAC;AAGH,KAAI,uBACH,SAAM,KAAK;EACV,MAAM,GAAG,uBAAuB;EAChC,WAAW;EACX,qBAAqB;EACrB,gBAAgB;EAChB,CAAC;AAGH,KAAI,2BACH,SAAM,KAAK;EACV,MAAM,GAAG,2BAA2B;EACpC,WAAW;EACX,qBAAqB;EACrB,CAAC;AAGH,KAAI,wBACH,SAAM,KAAK;EACV,MAAM,GAAG,wBAAwB;EACjC,WAAW;EACX,qBAAqB;EACrB,CAAC;AAGH,QAAOA;;AAIR,MAAa,eAAqC,aAAa;CAC9D,sBAAsB,qBAAqB;CAC3C,wBAAwB,wBAAwB;CAChD,4BAA4B,4BAA4B;CACxD,yBAAyB,yBAAyB;CAClD,CAAC;AAGF,MAAa,eAAqC,aAAa;CAC9D,sBAAsB,qBAAqB;CAC3C,wBAAwB,wBAAwB;CAChD,CAAC;AAEF,MAAa,QAA8B,CAAC,GAAG,cAAc,GAAG,aAAa"}