@clarigen/test 4.1.3 → 4.1.4
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/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -5
- package/dist/index.d.mts +4 -6
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let e=require(`@clarigen/core`),t=require(
|
|
1
|
+
let e=require(`@clarigen/core`),t=require(`yaml`);function n(t,n,r){let i=(0,e.cvToValue)(t,!0);if(!(0,e.isResponse)(i)&&n!==void 0)throw Error("Expected response when calling function, but not a response. Try using just `rov`");if((0,e.isResponse)(i)&&n!==void 0){let t=i,a=t.value;if(n&&!t.isOk){let t=``;if(r){let n=Object.entries((0,e.extractErrors)(r)).find(([e,t])=>t===a);n&&(t=` (${n[0]})`)}throw Error(`Tx result failed. Expected OK, received ERR ${String(a)}${t}.`)}if(n===!1&&t.isOk)throw Error(`Tx result failed. Expected ERR, received OK ${String(a)}.`);return a}return i}function r(t,n){let r=n===e.CoreNodeEventType.ContractEvent?`print_event`:n;return t.filter(e=>e.event===r)}function i({contractId:n,sender:r,args:i,functionName:a}){if(process.env.LOG_TX_CALLS){let o={"contract-call":{"contract-id":n,"expected-sender":r,parameters:i.map(t=>(0,e.cvToString)(t,`hex`)),method:a,cost:`10000000`}};console.log(`------------ DEPLOYMENT TX ------------`),console.log((0,t.stringify)(o,{indent:2})),console.log(`------------ END DEPLOYMENT TX ------------`)}}function a(e,t){let r=c(e,t),i=n(r.result,!0,e.contractAbi);return{...r,events:r.events,value:i}}function o(e,t){let r=c(e,t),i=n(r.result,!1,e.contractAbi);return{...r,events:r.events,value:i}}function s(e,t){let r=c(e,t),i=n(r.result,void 0,e.contractAbi);return{...r,events:r.events,value:i}}function c(e,t){let n=e.functionArgs,r=`${e.contractAddress}.${e.contractName}`,a;return a=e.function.access===`private`?simnet.callPrivateFn(r,e.function.name,n,t):simnet.callPublicFn(r,e.function.name,n,t),i({contractId:r,sender:t,args:n,functionName:e.function.name}),a}function l(e,t){let r=e.functionArgs,i=`${e.contractAddress}.${e.contractName}`,a=simnet.callReadOnlyFn(i,e.function.name,r,t??e.contractAddress),o=n(a.result,void 0,e.contractAbi);return{...a,events:a.events,value:o}}function u(e,t){return l(e,t).value}function d(e,t){let r=e.functionArgs,i=`${e.contractAddress}.${e.contractName}`,a=simnet.callReadOnlyFn(i,e.function.name,r,t??e.contractAddress),o=n(a.result,!0,e.contractAbi);return{...a,events:a.events,value:o}}function f(e,t){return d(e,t).value}function p(e,t){let r=e.functionArgs,i=`${e.contractAddress}.${e.contractName}`,a=simnet.callReadOnlyFn(i,e.function.name,r,t??e.contractAddress),o=n(a.result,!1,e.contractAbi);return{...a,events:a.events,value:o}}function m(e,t){return p(e,t).value}function h(t,n,r){let i=(0,e.mapFactory)(n,r);return(0,e.cvToValue)(simnet.getMapEntry(t,i.map.name,i.keyCV))}function g(t,n){return(0,e.cvToValue)(simnet.getDataVar(t,n.name))}const _={txOk:a,txErr:o,tx:s,ro:l,roOk:d,roErr:p,rov:u,rovOk:f,rovErr:m};async function v(e,t){await simnet.initSession(e??process.cwd(),t??`./Clarinet.toml`)}function y(t){if(!(0,e.isResponse)(t))throw Error(`Expected response, but got something else`);if(!t.isOk)throw Error(`Expected response to be OK, but got ERR ${t.value}`)}function b(t){if(!(0,e.isResponse)(t))throw Error(`Expected response, but got something else`);if(t.isOk)throw Error(`Expected response to be ERR, but got OK`)}exports.assertErr=b,exports.assertOk=y,exports.chain=_,exports.filterEvents=r,exports.makeNewSession=v,exports.mapGet=h,exports.ro=l,exports.roErr=p,exports.roOk=d,exports.rov=u,exports.rovErr=m,exports.rovOk=f,exports.tx=s,exports.txErr=o,exports.txOk=a,exports.validateResponse=n,exports.varGet=g;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","names":["CoreNodeEventType","contractCallTx: ContractCallTransaction","tx","receipt: ParsedTransactionResult"],"sources":["../src/utils.ts","../src/events.ts","../src/index.ts"],"sourcesContent":["import { type Response, cvToValue, isResponse } from '@clarigen/core';\nimport {\n type ClarityValue as HiroClarityValue,\n deserializeCV as deserializeCVHiro,\n serializeCV as serializeCVHiro,\n} from '@stacks/transactions';\nimport {\n type ClarityValue as MSClarityValue,\n serializeCV as serializeCVMS,\n deserializeCV as deserializeCVMS,\n} from '@stacks/transactions';\n\nexport function cvConvertMS(value: MSClarityValue): HiroClarityValue {\n return deserializeCVHiro(serializeCVMS(value));\n}\n\nexport function cvConvertHiro(value: HiroClarityValue): MSClarityValue {\n return deserializeCVMS(serializeCVHiro(value));\n}\n\nexport function validateResponse<T>(\n result: HiroClarityValue,\n expectOk?: boolean\n): T {\n const value = cvToValue<Response<T, T> | T>(cvConvertHiro(result), true);\n\n if (!isResponse(value) && typeof expectOk !== 'undefined') {\n throw new Error(\n 'Expected response when calling function, but not a response. Try using just `rov`'\n );\n }\n\n if (isResponse(value) && typeof expectOk !== 'undefined') {\n const response = value;\n const inner = response.value;\n if (expectOk && !response.isOk) {\n throw new Error(\n `Tx result failed. Expected OK, received ERR ${String(inner)}.`\n );\n }\n if (expectOk === false && response.isOk) {\n throw new Error(\n `Tx result failed. Expected ERR, received OK ${String(inner)}.`\n );\n }\n return inner;\n }\n return value as T;\n}\n","import {\n CoreNodeEventType,\n type SmartContractEvent as _SmartContractEvent,\n type StxTransferEvent as _StxTransferEvent,\n type StxBurnEvent as _StxBurnEvent,\n type StxMintEvent as _StxMintEvent,\n type StxLockEvent as _StxLockEvent,\n type FtBurnEvent as _FtBurnEvent,\n type FtMintEvent as _FtMintEvent,\n type FtTransferEvent as _FtTransferEvent,\n type NftBurnEvent as _NftBurnEvent,\n type NftMintEvent as _NftMintEvent,\n type NftTransferEvent as _NftTransferEvent,\n} from '@clarigen/core';\nimport type { ClarityValue } from '@stacks/transactions';\n\nexport type SmartContractEvent = {\n event: _SmartContractEvent['type'];\n data: Omit<_SmartContractEvent['contract_event'], 'value'> & {\n value: ClarityValue;\n };\n};\n\nexport type StxTransferEvent = {\n event: _StxTransferEvent['type'];\n data: _StxTransferEvent['stx_transfer_event'];\n};\n\nexport type StxBurnEvent = {\n event: _StxBurnEvent['type'];\n data: _StxBurnEvent['stx_burn_event'];\n};\n\nexport type StxLockEvent = {\n event: _StxLockEvent['type'];\n data: _StxLockEvent['stx_lock_event'];\n};\n\nexport type StxMintEvent = {\n event: _StxMintEvent['type'];\n data: _StxMintEvent['stx_mint_event'];\n};\n\nexport type FtBurnEvent = {\n event: _FtBurnEvent['type'];\n data: _FtBurnEvent['ft_burn_event'];\n};\n\nexport type FtMintEvent = {\n event: _FtMintEvent['type'];\n data: _FtMintEvent['ft_mint_event'];\n};\n\nexport type FtTransferEvent = {\n event: _FtTransferEvent['type'];\n data: _FtTransferEvent['ft_transfer_event'];\n};\n\nexport type NftBurnEvent = {\n event: _NftBurnEvent['type'];\n data: _NftBurnEvent['nft_burn_event'];\n};\n\nexport type NftMintEvent = {\n event: _NftMintEvent['type'];\n data: _NftMintEvent['nft_mint_event'];\n};\n\nexport type NftTransferEvent = {\n event: _NftTransferEvent['type'];\n data: _NftTransferEvent['nft_transfer_event'];\n};\n\nexport type CoreNodeEvent =\n | SmartContractEvent\n | StxTransferEvent\n | StxMintEvent\n | StxBurnEvent\n | StxLockEvent\n | FtTransferEvent\n | FtMintEvent\n | FtBurnEvent\n | NftTransferEvent\n | NftMintEvent\n | NftBurnEvent;\n\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.ContractEvent\n): SmartContractEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxTransferEvent\n): StxTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxMintEvent\n): StxMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxBurnEvent\n): StxBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxLockEvent\n): StxLockEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftTransferEvent\n): NftTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftMintEvent\n): NftMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftBurnEvent\n): NftBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtTransferEvent\n): FtTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtMintEvent\n): FtMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtBurnEvent\n): FtBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType\n): CoreNodeEvent[] {\n const typeString =\n type === CoreNodeEventType.ContractEvent ? 'print_event' : type;\n return events.filter((event) => event.event === typeString);\n}\n","/** biome-ignore-all lint/style/useTrimStartEnd: suppressed */\nimport {\n type ContractCallTyped,\n type ErrType,\n type OkType,\n type TypedAbiMap,\n type TypedAbiVariable,\n type UnknownArgs,\n cvToValue,\n mapFactory,\n type Response,\n cvToString,\n type ResponseOk,\n type ResponseErr,\n isResponse,\n} from '@clarigen/core';\nimport type { ContractCallTransaction } from '@clarigen/core/deployment';\nimport type { ParsedTransactionResult } from '@stacks/clarinet-sdk';\nimport { cvConvertHiro, cvConvertMS, validateResponse } from './utils';\nimport type { CoreNodeEvent } from './events';\nimport { stringify } from 'yaml';\nimport type { ClarityValue } from '@stacks/transactions';\n// biome-ignore lint/performance/noBarrelFile: ignored using `--suppress`\nexport * from './events';\nexport * from './utils';\n\nexport type TransactionResult<R> = Omit<ParsedTransactionResult, 'events'> & {\n value: R;\n events: CoreNodeEvent[];\n};\n\nexport type AnyResponse = Response<unknown, unknown>;\n\nfunction logTxCall({\n contractId,\n sender,\n args,\n functionName,\n}: {\n contractId: string;\n sender: string;\n args: ClarityValue[];\n functionName: string;\n}) {\n if (process.env.LOG_TX_CALLS) {\n const contractCallTx: ContractCallTransaction = {\n 'contract-call': {\n 'contract-id': contractId,\n 'expected-sender': sender,\n parameters: args.map((arg) => cvToString(arg, 'hex')),\n method: functionName,\n cost: '10000000',\n },\n };\n console.log('------------ DEPLOYMENT TX ------------');\n console.log(stringify(contractCallTx, { indent: 2 }));\n console.log('------------ END DEPLOYMENT TX ------------');\n }\n}\n\nexport function txOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<OkType<R>> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<OkType<R>>(receipt.result, true);\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nexport function txErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<ErrType<R>> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<ErrType<R>>(receipt.result, false);\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nexport function tx<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<R> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<R>(receipt.result);\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nfunction getTxReceipt<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): ParsedTransactionResult {\n const args = tx.functionArgs;\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n let receipt: ParsedTransactionResult;\n if (tx.function.access === 'private') {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n receipt = simnet.callPrivateFn(contractId, tx.function.name, args, sender);\n } else {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n receipt = simnet.callPublicFn(contractId, tx.function.name, args, sender);\n }\n logTxCall({ contractId, sender, args, functionName: tx.function.name });\n return receipt;\n}\n\nexport function ro<A extends UnknownArgs, R>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<R> {\n const args = tx.functionArgs.map(cvConvertMS);\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<R>(receipt.result);\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rov<A extends UnknownArgs, R>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): R {\n return ro(tx, sender).value;\n}\n\nexport function roOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<OkType<R>> {\n const args = tx.functionArgs.map(cvConvertMS);\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<OkType<R>>(receipt.result, true);\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rovOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): OkType<R> {\n return roOk(tx, sender).value;\n}\n\nexport function roErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<ErrType<R>> {\n const args = tx.functionArgs.map(cvConvertMS);\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<ErrType<R>>(receipt.result, false);\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rovErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): ErrType<R> {\n return roErr(tx, sender).value;\n}\n\nexport function mapGet<Key, Val>(\n contractId: string,\n map: TypedAbiMap<Key, Val>,\n key: Key\n) {\n const payload = mapFactory(map, key);\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const result = simnet.getMapEntry(\n contractId,\n payload.map.name,\n cvConvertMS(payload.keyCV)\n );\n return cvToValue<Val | null>(cvConvertHiro(result));\n}\n\nexport function varGet<T>(contractId: string, variable: TypedAbiVariable<T>) {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const result = simnet.getDataVar(contractId, variable.name);\n return cvToValue<T>(cvConvertHiro(result));\n}\n\n// Helper export for previous Deno-based tests\nexport const chain = {\n txOk,\n txErr,\n tx,\n ro,\n roOk,\n roErr,\n rov,\n rovOk,\n rovErr,\n};\n\nexport async function makeNewSession(cwd?: string, manifestPath?: string) {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n await simnet.initSession(\n cwd ?? process.cwd(),\n manifestPath ?? './Clarinet.toml'\n );\n}\n\nexport function assertOk<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(\n response: T | unknown\n): asserts response is ResponseOk<O, E> {\n if (!isResponse(response)) {\n throw new Error('Expected response, but got something else');\n }\n if (!response.isOk) {\n throw new Error(\n `Expected response to be OK, but got ERR ${response.value}`\n );\n }\n}\n\nexport function assertErr<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(\n response: T | unknown\n): asserts response is ResponseErr<O, E> {\n if (!isResponse(response)) {\n throw new Error('Expected response, but got something else');\n }\n if (response.isOk) {\n throw new Error('Expected response to be ERR, but got OK');\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","names":["CoreNodeEventType","contractCallTx: ContractCallTransaction","tx","receipt: ParsedTransactionResult"],"sources":["../src/utils.ts","../src/events.ts","../src/index.ts"],"sourcesContent":["import {\n type Response,\n type TypedAbi,\n cvToValue,\n extractErrors,\n isResponse,\n} from '@clarigen/core';\nimport type { ClarityValue } from '@stacks/transactions';\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: allowed\nexport function validateResponse<T>(\n result: ClarityValue,\n expectOk?: boolean,\n contractAbi?: TypedAbi\n): T {\n const value = cvToValue<Response<T, T> | T>(result, true);\n\n if (!isResponse(value) && typeof expectOk !== 'undefined') {\n throw new Error(\n 'Expected response when calling function, but not a response. Try using just `rov`'\n );\n }\n\n if (isResponse(value) && typeof expectOk !== 'undefined') {\n const response = value;\n const inner = response.value;\n if (expectOk && !response.isOk) {\n // try and find a matching error code\n let errorCode = '';\n if (contractAbi) {\n const match = Object.entries(extractErrors(contractAbi)).find(\n ([_key, code]) => code === inner\n );\n if (match) {\n errorCode = ` (${match[0]})`;\n }\n }\n throw new Error(\n `Tx result failed. Expected OK, received ERR ${String(inner)}${errorCode}.`\n );\n }\n if (expectOk === false && response.isOk) {\n throw new Error(\n `Tx result failed. Expected ERR, received OK ${String(inner)}.`\n );\n }\n return inner;\n }\n return value as T;\n}\n","import {\n CoreNodeEventType,\n type SmartContractEvent as _SmartContractEvent,\n type StxTransferEvent as _StxTransferEvent,\n type StxBurnEvent as _StxBurnEvent,\n type StxMintEvent as _StxMintEvent,\n type StxLockEvent as _StxLockEvent,\n type FtBurnEvent as _FtBurnEvent,\n type FtMintEvent as _FtMintEvent,\n type FtTransferEvent as _FtTransferEvent,\n type NftBurnEvent as _NftBurnEvent,\n type NftMintEvent as _NftMintEvent,\n type NftTransferEvent as _NftTransferEvent,\n} from '@clarigen/core';\nimport type { ClarityValue } from '@stacks/transactions';\n\nexport type SmartContractEvent = {\n event: _SmartContractEvent['type'];\n data: Omit<_SmartContractEvent['contract_event'], 'value'> & {\n value: ClarityValue;\n };\n};\n\nexport type StxTransferEvent = {\n event: _StxTransferEvent['type'];\n data: _StxTransferEvent['stx_transfer_event'];\n};\n\nexport type StxBurnEvent = {\n event: _StxBurnEvent['type'];\n data: _StxBurnEvent['stx_burn_event'];\n};\n\nexport type StxLockEvent = {\n event: _StxLockEvent['type'];\n data: _StxLockEvent['stx_lock_event'];\n};\n\nexport type StxMintEvent = {\n event: _StxMintEvent['type'];\n data: _StxMintEvent['stx_mint_event'];\n};\n\nexport type FtBurnEvent = {\n event: _FtBurnEvent['type'];\n data: _FtBurnEvent['ft_burn_event'];\n};\n\nexport type FtMintEvent = {\n event: _FtMintEvent['type'];\n data: _FtMintEvent['ft_mint_event'];\n};\n\nexport type FtTransferEvent = {\n event: _FtTransferEvent['type'];\n data: _FtTransferEvent['ft_transfer_event'];\n};\n\nexport type NftBurnEvent = {\n event: _NftBurnEvent['type'];\n data: _NftBurnEvent['nft_burn_event'];\n};\n\nexport type NftMintEvent = {\n event: _NftMintEvent['type'];\n data: _NftMintEvent['nft_mint_event'];\n};\n\nexport type NftTransferEvent = {\n event: _NftTransferEvent['type'];\n data: _NftTransferEvent['nft_transfer_event'];\n};\n\nexport type CoreNodeEvent =\n | SmartContractEvent\n | StxTransferEvent\n | StxMintEvent\n | StxBurnEvent\n | StxLockEvent\n | FtTransferEvent\n | FtMintEvent\n | FtBurnEvent\n | NftTransferEvent\n | NftMintEvent\n | NftBurnEvent;\n\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.ContractEvent\n): SmartContractEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxTransferEvent\n): StxTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxMintEvent\n): StxMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxBurnEvent\n): StxBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxLockEvent\n): StxLockEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftTransferEvent\n): NftTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftMintEvent\n): NftMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftBurnEvent\n): NftBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtTransferEvent\n): FtTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtMintEvent\n): FtMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtBurnEvent\n): FtBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType\n): CoreNodeEvent[] {\n const typeString =\n type === CoreNodeEventType.ContractEvent ? 'print_event' : type;\n return events.filter((event) => event.event === typeString);\n}\n","/** biome-ignore-all lint/style/useTrimStartEnd: suppressed */\nimport {\n type ContractCallTyped,\n type ErrType,\n type OkType,\n type TypedAbiMap,\n type TypedAbiVariable,\n type UnknownArgs,\n cvToValue,\n mapFactory,\n type Response,\n cvToString,\n type ResponseOk,\n type ResponseErr,\n isResponse,\n} from '@clarigen/core';\nimport type { ContractCallTransaction } from '@clarigen/core/deployment';\nimport type { ParsedTransactionResult } from '@stacks/clarinet-sdk';\nimport { validateResponse } from './utils';\nimport type { CoreNodeEvent } from './events';\nimport { stringify } from 'yaml';\nimport type { ClarityValue } from '@stacks/transactions';\n// biome-ignore lint/performance/noBarrelFile: ignored using `--suppress`\nexport * from './events';\nexport * from './utils';\n\nexport type TransactionResult<R> = Omit<ParsedTransactionResult, 'events'> & {\n value: R;\n events: CoreNodeEvent[];\n};\n\nexport type AnyResponse = Response<unknown, unknown>;\n\nfunction logTxCall({\n contractId,\n sender,\n args,\n functionName,\n}: {\n contractId: string;\n sender: string;\n args: ClarityValue[];\n functionName: string;\n}) {\n if (process.env.LOG_TX_CALLS) {\n const contractCallTx: ContractCallTransaction = {\n 'contract-call': {\n 'contract-id': contractId,\n 'expected-sender': sender,\n parameters: args.map((arg) => cvToString(arg, 'hex')),\n method: functionName,\n cost: '10000000',\n },\n };\n console.log('------------ DEPLOYMENT TX ------------');\n console.log(stringify(contractCallTx, { indent: 2 }));\n console.log('------------ END DEPLOYMENT TX ------------');\n }\n}\n\nexport function txOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<OkType<R>> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<OkType<R>>(\n receipt.result,\n true,\n tx.contractAbi\n );\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nexport function txErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<ErrType<R>> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<ErrType<R>>(\n receipt.result,\n false,\n tx.contractAbi\n );\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nexport function tx<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<R> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<R>(receipt.result, undefined, tx.contractAbi);\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nfunction getTxReceipt<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): ParsedTransactionResult {\n const args = tx.functionArgs;\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n let receipt: ParsedTransactionResult;\n if (tx.function.access === 'private') {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n receipt = simnet.callPrivateFn(contractId, tx.function.name, args, sender);\n } else {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n receipt = simnet.callPublicFn(contractId, tx.function.name, args, sender);\n }\n logTxCall({ contractId, sender, args, functionName: tx.function.name });\n return receipt;\n}\n\nexport function ro<A extends UnknownArgs, R>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<R> {\n const args = tx.functionArgs;\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<R>(receipt.result, undefined, tx.contractAbi);\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rov<A extends UnknownArgs, R>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): R {\n return ro(tx, sender).value;\n}\n\nexport function roOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<OkType<R>> {\n const args = tx.functionArgs;\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<OkType<R>>(\n receipt.result,\n true,\n tx.contractAbi\n );\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rovOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): OkType<R> {\n return roOk(tx, sender).value;\n}\n\nexport function roErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<ErrType<R>> {\n const args = tx.functionArgs;\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<ErrType<R>>(\n receipt.result,\n false,\n tx.contractAbi\n );\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rovErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): ErrType<R> {\n return roErr(tx, sender).value;\n}\n\nexport function mapGet<Key, Val>(\n contractId: string,\n map: TypedAbiMap<Key, Val>,\n key: Key\n) {\n const payload = mapFactory(map, key);\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const result = simnet.getMapEntry(\n contractId,\n payload.map.name,\n payload.keyCV\n );\n return cvToValue<Val | null>(result);\n}\n\nexport function varGet<T>(contractId: string, variable: TypedAbiVariable<T>) {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const result = simnet.getDataVar(contractId, variable.name);\n return cvToValue<T>(result);\n}\n\n// Helper export for previous Deno-based tests\nexport const chain = {\n txOk,\n txErr,\n tx,\n ro,\n roOk,\n roErr,\n rov,\n rovOk,\n rovErr,\n};\n\nexport async function makeNewSession(cwd?: string, manifestPath?: string) {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n await simnet.initSession(\n cwd ?? process.cwd(),\n manifestPath ?? './Clarinet.toml'\n );\n}\n\nexport function assertOk<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(\n response: T | unknown\n): asserts response is ResponseOk<O, E> {\n if (!isResponse(response)) {\n throw new Error('Expected response, but got something else');\n }\n if (!response.isOk) {\n throw new Error(\n `Expected response to be OK, but got ERR ${response.value}`\n );\n }\n}\n\nexport function assertErr<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(\n response: T | unknown\n): asserts response is ResponseErr<O, E> {\n if (!isResponse(response)) {\n throw new Error('Expected response, but got something else');\n }\n if (response.isOk) {\n throw new Error('Expected response to be ERR, but got OK');\n }\n}\n"],"mappings":"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"}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContractCallTyped, CoreNodeEventType, ErrType, FtBurnEvent as FtBurnEvent$1, FtMintEvent as FtMintEvent$1, FtTransferEvent as FtTransferEvent$1, NftBurnEvent as NftBurnEvent$1, NftMintEvent as NftMintEvent$1, NftTransferEvent as NftTransferEvent$1, OkType, Response, ResponseErr, ResponseOk, SmartContractEvent as SmartContractEvent$1, StxBurnEvent as StxBurnEvent$1, StxLockEvent as StxLockEvent$1, StxMintEvent as StxMintEvent$1, StxTransferEvent as StxTransferEvent$1, TypedAbiMap, TypedAbiVariable, UnknownArgs } from "@clarigen/core";
|
|
1
|
+
import { ContractCallTyped, CoreNodeEventType, ErrType, FtBurnEvent as FtBurnEvent$1, FtMintEvent as FtMintEvent$1, FtTransferEvent as FtTransferEvent$1, NftBurnEvent as NftBurnEvent$1, NftMintEvent as NftMintEvent$1, NftTransferEvent as NftTransferEvent$1, OkType, Response, ResponseErr, ResponseOk, SmartContractEvent as SmartContractEvent$1, StxBurnEvent as StxBurnEvent$1, StxLockEvent as StxLockEvent$1, StxMintEvent as StxMintEvent$1, StxTransferEvent as StxTransferEvent$1, TypedAbi, TypedAbiMap, TypedAbiVariable, UnknownArgs } from "@clarigen/core";
|
|
2
2
|
import { ParsedTransactionResult } from "@stacks/clarinet-sdk";
|
|
3
3
|
import { ClarityValue } from "@stacks/transactions";
|
|
4
4
|
|
|
@@ -63,9 +63,7 @@ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.F
|
|
|
63
63
|
declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtBurnEvent): FtBurnEvent[];
|
|
64
64
|
//#endregion
|
|
65
65
|
//#region src/utils.d.ts
|
|
66
|
-
declare function
|
|
67
|
-
declare function cvConvertHiro(value: ClarityValue): ClarityValue;
|
|
68
|
-
declare function validateResponse<T>(result: ClarityValue, expectOk?: boolean): T;
|
|
66
|
+
declare function validateResponse<T>(result: ClarityValue, expectOk?: boolean, contractAbi?: TypedAbi): T;
|
|
69
67
|
//#endregion
|
|
70
68
|
//#region src/index.d.ts
|
|
71
69
|
type TransactionResult<R> = Omit<ParsedTransactionResult, 'events'> & {
|
|
@@ -99,5 +97,5 @@ declare function makeNewSession(cwd?: string, manifestPath?: string): Promise<vo
|
|
|
99
97
|
declare function assertOk<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(response: T | unknown): asserts response is ResponseOk<O, E>;
|
|
100
98
|
declare function assertErr<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(response: T | unknown): asserts response is ResponseErr<O, E>;
|
|
101
99
|
//#endregion
|
|
102
|
-
export { AnyResponse, CoreNodeEvent, FtBurnEvent, FtMintEvent, FtTransferEvent, NftBurnEvent, NftMintEvent, NftTransferEvent, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TransactionResult, assertErr, assertOk, chain,
|
|
100
|
+
export { AnyResponse, CoreNodeEvent, FtBurnEvent, FtMintEvent, FtTransferEvent, NftBurnEvent, NftMintEvent, NftTransferEvent, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TransactionResult, assertErr, assertOk, chain, filterEvents, makeNewSession, mapGet, ro, roErr, roOk, rov, rovErr, rovOk, tx, txErr, txOk, validateResponse, varGet };
|
|
103
101
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ContractCallTyped, CoreNodeEventType, ErrType, FtBurnEvent as FtBurnEvent$1, FtMintEvent as FtMintEvent$1, FtTransferEvent as FtTransferEvent$1, NftBurnEvent as NftBurnEvent$1, NftMintEvent as NftMintEvent$1, NftTransferEvent as NftTransferEvent$1, OkType, Response, ResponseErr, ResponseOk, SmartContractEvent as SmartContractEvent$1, StxBurnEvent as StxBurnEvent$1, StxLockEvent as StxLockEvent$1, StxMintEvent as StxMintEvent$1, StxTransferEvent as StxTransferEvent$1, TypedAbiMap, TypedAbiVariable, UnknownArgs } from "@clarigen/core";
|
|
2
|
-
import { ClarityValue } from "@stacks/transactions";
|
|
1
|
+
import { ContractCallTyped, CoreNodeEventType, ErrType, FtBurnEvent as FtBurnEvent$1, FtMintEvent as FtMintEvent$1, FtTransferEvent as FtTransferEvent$1, NftBurnEvent as NftBurnEvent$1, NftMintEvent as NftMintEvent$1, NftTransferEvent as NftTransferEvent$1, OkType, Response, ResponseErr, ResponseOk, SmartContractEvent as SmartContractEvent$1, StxBurnEvent as StxBurnEvent$1, StxLockEvent as StxLockEvent$1, StxMintEvent as StxMintEvent$1, StxTransferEvent as StxTransferEvent$1, TypedAbi, TypedAbiMap, TypedAbiVariable, UnknownArgs } from "@clarigen/core";
|
|
3
2
|
import { ParsedTransactionResult } from "@stacks/clarinet-sdk";
|
|
3
|
+
import { ClarityValue } from "@stacks/transactions";
|
|
4
4
|
|
|
5
5
|
//#region src/events.d.ts
|
|
6
6
|
type SmartContractEvent = {
|
|
@@ -63,9 +63,7 @@ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.F
|
|
|
63
63
|
declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtBurnEvent): FtBurnEvent[];
|
|
64
64
|
//#endregion
|
|
65
65
|
//#region src/utils.d.ts
|
|
66
|
-
declare function
|
|
67
|
-
declare function cvConvertHiro(value: ClarityValue): ClarityValue;
|
|
68
|
-
declare function validateResponse<T>(result: ClarityValue, expectOk?: boolean): T;
|
|
66
|
+
declare function validateResponse<T>(result: ClarityValue, expectOk?: boolean, contractAbi?: TypedAbi): T;
|
|
69
67
|
//#endregion
|
|
70
68
|
//#region src/index.d.ts
|
|
71
69
|
type TransactionResult<R> = Omit<ParsedTransactionResult, 'events'> & {
|
|
@@ -99,5 +97,5 @@ declare function makeNewSession(cwd?: string, manifestPath?: string): Promise<vo
|
|
|
99
97
|
declare function assertOk<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(response: T | unknown): asserts response is ResponseOk<O, E>;
|
|
100
98
|
declare function assertErr<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(response: T | unknown): asserts response is ResponseErr<O, E>;
|
|
101
99
|
//#endregion
|
|
102
|
-
export { AnyResponse, CoreNodeEvent, FtBurnEvent, FtMintEvent, FtTransferEvent, NftBurnEvent, NftMintEvent, NftTransferEvent, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TransactionResult, assertErr, assertOk, chain,
|
|
100
|
+
export { AnyResponse, CoreNodeEvent, FtBurnEvent, FtMintEvent, FtTransferEvent, NftBurnEvent, NftMintEvent, NftTransferEvent, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TransactionResult, assertErr, assertOk, chain, filterEvents, makeNewSession, mapGet, ro, roErr, roOk, rov, rovErr, rovOk, tx, txErr, txOk, validateResponse, varGet };
|
|
103
101
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{CoreNodeEventType as e,cvToString as t,cvToValue as n,
|
|
1
|
+
import{CoreNodeEventType as e,cvToString as t,cvToValue as n,extractErrors as r,isResponse as i,mapFactory as a}from"@clarigen/core";import{stringify as o}from"yaml";function s(e,t,a){let o=n(e,!0);if(!i(o)&&t!==void 0)throw Error("Expected response when calling function, but not a response. Try using just `rov`");if(i(o)&&t!==void 0){let e=o,n=e.value;if(t&&!e.isOk){let e=``;if(a){let t=Object.entries(r(a)).find(([e,t])=>t===n);t&&(e=` (${t[0]})`)}throw Error(`Tx result failed. Expected OK, received ERR ${String(n)}${e}.`)}if(t===!1&&e.isOk)throw Error(`Tx result failed. Expected ERR, received OK ${String(n)}.`);return n}return o}function c(t,n){let r=n===e.ContractEvent?`print_event`:n;return t.filter(e=>e.event===r)}function l({contractId:e,sender:n,args:r,functionName:i}){if(process.env.LOG_TX_CALLS){let a={"contract-call":{"contract-id":e,"expected-sender":n,parameters:r.map(e=>t(e,`hex`)),method:i,cost:`10000000`}};console.log(`------------ DEPLOYMENT TX ------------`),console.log(o(a,{indent:2})),console.log(`------------ END DEPLOYMENT TX ------------`)}}function u(e,t){let n=p(e,t),r=s(n.result,!0,e.contractAbi);return{...n,events:n.events,value:r}}function d(e,t){let n=p(e,t),r=s(n.result,!1,e.contractAbi);return{...n,events:n.events,value:r}}function f(e,t){let n=p(e,t),r=s(n.result,void 0,e.contractAbi);return{...n,events:n.events,value:r}}function p(e,t){let n=e.functionArgs,r=`${e.contractAddress}.${e.contractName}`,i;return i=e.function.access===`private`?simnet.callPrivateFn(r,e.function.name,n,t):simnet.callPublicFn(r,e.function.name,n,t),l({contractId:r,sender:t,args:n,functionName:e.function.name}),i}function m(e,t){let n=e.functionArgs,r=`${e.contractAddress}.${e.contractName}`,i=simnet.callReadOnlyFn(r,e.function.name,n,t??e.contractAddress),a=s(i.result,void 0,e.contractAbi);return{...i,events:i.events,value:a}}function h(e,t){return m(e,t).value}function g(e,t){let n=e.functionArgs,r=`${e.contractAddress}.${e.contractName}`,i=simnet.callReadOnlyFn(r,e.function.name,n,t??e.contractAddress),a=s(i.result,!0,e.contractAbi);return{...i,events:i.events,value:a}}function _(e,t){return g(e,t).value}function v(e,t){let n=e.functionArgs,r=`${e.contractAddress}.${e.contractName}`,i=simnet.callReadOnlyFn(r,e.function.name,n,t??e.contractAddress),a=s(i.result,!1,e.contractAbi);return{...i,events:i.events,value:a}}function y(e,t){return v(e,t).value}function b(e,t,r){let i=a(t,r);return n(simnet.getMapEntry(e,i.map.name,i.keyCV))}function x(e,t){return n(simnet.getDataVar(e,t.name))}const S={txOk:u,txErr:d,tx:f,ro:m,roOk:g,roErr:v,rov:h,rovOk:_,rovErr:y};async function C(e,t){await simnet.initSession(e??process.cwd(),t??`./Clarinet.toml`)}function w(e){if(!i(e))throw Error(`Expected response, but got something else`);if(!e.isOk)throw Error(`Expected response to be OK, but got ERR ${e.value}`)}function T(e){if(!i(e))throw Error(`Expected response, but got something else`);if(e.isOk)throw Error(`Expected response to be ERR, but got OK`)}export{T as assertErr,w as assertOk,S as chain,c as filterEvents,C as makeNewSession,b as mapGet,m as ro,v as roErr,g as roOk,h as rov,y as rovErr,_ as rovOk,f as tx,d as txErr,u as txOk,s as validateResponse,x as varGet};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["deserializeCVHiro","serializeCVMS","deserializeCVMS","serializeCVHiro","contractCallTx: ContractCallTransaction","tx","receipt: ParsedTransactionResult"],"sources":["../src/utils.ts","../src/events.ts","../src/index.ts"],"sourcesContent":["import { type Response, cvToValue, isResponse } from '@clarigen/core';\nimport {\n type ClarityValue as HiroClarityValue,\n deserializeCV as deserializeCVHiro,\n serializeCV as serializeCVHiro,\n} from '@stacks/transactions';\nimport {\n type ClarityValue as MSClarityValue,\n serializeCV as serializeCVMS,\n deserializeCV as deserializeCVMS,\n} from '@stacks/transactions';\n\nexport function cvConvertMS(value: MSClarityValue): HiroClarityValue {\n return deserializeCVHiro(serializeCVMS(value));\n}\n\nexport function cvConvertHiro(value: HiroClarityValue): MSClarityValue {\n return deserializeCVMS(serializeCVHiro(value));\n}\n\nexport function validateResponse<T>(\n result: HiroClarityValue,\n expectOk?: boolean\n): T {\n const value = cvToValue<Response<T, T> | T>(cvConvertHiro(result), true);\n\n if (!isResponse(value) && typeof expectOk !== 'undefined') {\n throw new Error(\n 'Expected response when calling function, but not a response. Try using just `rov`'\n );\n }\n\n if (isResponse(value) && typeof expectOk !== 'undefined') {\n const response = value;\n const inner = response.value;\n if (expectOk && !response.isOk) {\n throw new Error(\n `Tx result failed. Expected OK, received ERR ${String(inner)}.`\n );\n }\n if (expectOk === false && response.isOk) {\n throw new Error(\n `Tx result failed. Expected ERR, received OK ${String(inner)}.`\n );\n }\n return inner;\n }\n return value as T;\n}\n","import {\n CoreNodeEventType,\n type SmartContractEvent as _SmartContractEvent,\n type StxTransferEvent as _StxTransferEvent,\n type StxBurnEvent as _StxBurnEvent,\n type StxMintEvent as _StxMintEvent,\n type StxLockEvent as _StxLockEvent,\n type FtBurnEvent as _FtBurnEvent,\n type FtMintEvent as _FtMintEvent,\n type FtTransferEvent as _FtTransferEvent,\n type NftBurnEvent as _NftBurnEvent,\n type NftMintEvent as _NftMintEvent,\n type NftTransferEvent as _NftTransferEvent,\n} from '@clarigen/core';\nimport type { ClarityValue } from '@stacks/transactions';\n\nexport type SmartContractEvent = {\n event: _SmartContractEvent['type'];\n data: Omit<_SmartContractEvent['contract_event'], 'value'> & {\n value: ClarityValue;\n };\n};\n\nexport type StxTransferEvent = {\n event: _StxTransferEvent['type'];\n data: _StxTransferEvent['stx_transfer_event'];\n};\n\nexport type StxBurnEvent = {\n event: _StxBurnEvent['type'];\n data: _StxBurnEvent['stx_burn_event'];\n};\n\nexport type StxLockEvent = {\n event: _StxLockEvent['type'];\n data: _StxLockEvent['stx_lock_event'];\n};\n\nexport type StxMintEvent = {\n event: _StxMintEvent['type'];\n data: _StxMintEvent['stx_mint_event'];\n};\n\nexport type FtBurnEvent = {\n event: _FtBurnEvent['type'];\n data: _FtBurnEvent['ft_burn_event'];\n};\n\nexport type FtMintEvent = {\n event: _FtMintEvent['type'];\n data: _FtMintEvent['ft_mint_event'];\n};\n\nexport type FtTransferEvent = {\n event: _FtTransferEvent['type'];\n data: _FtTransferEvent['ft_transfer_event'];\n};\n\nexport type NftBurnEvent = {\n event: _NftBurnEvent['type'];\n data: _NftBurnEvent['nft_burn_event'];\n};\n\nexport type NftMintEvent = {\n event: _NftMintEvent['type'];\n data: _NftMintEvent['nft_mint_event'];\n};\n\nexport type NftTransferEvent = {\n event: _NftTransferEvent['type'];\n data: _NftTransferEvent['nft_transfer_event'];\n};\n\nexport type CoreNodeEvent =\n | SmartContractEvent\n | StxTransferEvent\n | StxMintEvent\n | StxBurnEvent\n | StxLockEvent\n | FtTransferEvent\n | FtMintEvent\n | FtBurnEvent\n | NftTransferEvent\n | NftMintEvent\n | NftBurnEvent;\n\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.ContractEvent\n): SmartContractEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxTransferEvent\n): StxTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxMintEvent\n): StxMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxBurnEvent\n): StxBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxLockEvent\n): StxLockEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftTransferEvent\n): NftTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftMintEvent\n): NftMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftBurnEvent\n): NftBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtTransferEvent\n): FtTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtMintEvent\n): FtMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtBurnEvent\n): FtBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType\n): CoreNodeEvent[] {\n const typeString =\n type === CoreNodeEventType.ContractEvent ? 'print_event' : type;\n return events.filter((event) => event.event === typeString);\n}\n","/** biome-ignore-all lint/style/useTrimStartEnd: suppressed */\nimport {\n type ContractCallTyped,\n type ErrType,\n type OkType,\n type TypedAbiMap,\n type TypedAbiVariable,\n type UnknownArgs,\n cvToValue,\n mapFactory,\n type Response,\n cvToString,\n type ResponseOk,\n type ResponseErr,\n isResponse,\n} from '@clarigen/core';\nimport type { ContractCallTransaction } from '@clarigen/core/deployment';\nimport type { ParsedTransactionResult } from '@stacks/clarinet-sdk';\nimport { cvConvertHiro, cvConvertMS, validateResponse } from './utils';\nimport type { CoreNodeEvent } from './events';\nimport { stringify } from 'yaml';\nimport type { ClarityValue } from '@stacks/transactions';\n// biome-ignore lint/performance/noBarrelFile: ignored using `--suppress`\nexport * from './events';\nexport * from './utils';\n\nexport type TransactionResult<R> = Omit<ParsedTransactionResult, 'events'> & {\n value: R;\n events: CoreNodeEvent[];\n};\n\nexport type AnyResponse = Response<unknown, unknown>;\n\nfunction logTxCall({\n contractId,\n sender,\n args,\n functionName,\n}: {\n contractId: string;\n sender: string;\n args: ClarityValue[];\n functionName: string;\n}) {\n if (process.env.LOG_TX_CALLS) {\n const contractCallTx: ContractCallTransaction = {\n 'contract-call': {\n 'contract-id': contractId,\n 'expected-sender': sender,\n parameters: args.map((arg) => cvToString(arg, 'hex')),\n method: functionName,\n cost: '10000000',\n },\n };\n console.log('------------ DEPLOYMENT TX ------------');\n console.log(stringify(contractCallTx, { indent: 2 }));\n console.log('------------ END DEPLOYMENT TX ------------');\n }\n}\n\nexport function txOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<OkType<R>> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<OkType<R>>(receipt.result, true);\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nexport function txErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<ErrType<R>> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<ErrType<R>>(receipt.result, false);\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nexport function tx<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<R> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<R>(receipt.result);\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nfunction getTxReceipt<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): ParsedTransactionResult {\n const args = tx.functionArgs;\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n let receipt: ParsedTransactionResult;\n if (tx.function.access === 'private') {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n receipt = simnet.callPrivateFn(contractId, tx.function.name, args, sender);\n } else {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n receipt = simnet.callPublicFn(contractId, tx.function.name, args, sender);\n }\n logTxCall({ contractId, sender, args, functionName: tx.function.name });\n return receipt;\n}\n\nexport function ro<A extends UnknownArgs, R>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<R> {\n const args = tx.functionArgs.map(cvConvertMS);\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<R>(receipt.result);\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rov<A extends UnknownArgs, R>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): R {\n return ro(tx, sender).value;\n}\n\nexport function roOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<OkType<R>> {\n const args = tx.functionArgs.map(cvConvertMS);\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<OkType<R>>(receipt.result, true);\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rovOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): OkType<R> {\n return roOk(tx, sender).value;\n}\n\nexport function roErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<ErrType<R>> {\n const args = tx.functionArgs.map(cvConvertMS);\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<ErrType<R>>(receipt.result, false);\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rovErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): ErrType<R> {\n return roErr(tx, sender).value;\n}\n\nexport function mapGet<Key, Val>(\n contractId: string,\n map: TypedAbiMap<Key, Val>,\n key: Key\n) {\n const payload = mapFactory(map, key);\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const result = simnet.getMapEntry(\n contractId,\n payload.map.name,\n cvConvertMS(payload.keyCV)\n );\n return cvToValue<Val | null>(cvConvertHiro(result));\n}\n\nexport function varGet<T>(contractId: string, variable: TypedAbiVariable<T>) {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const result = simnet.getDataVar(contractId, variable.name);\n return cvToValue<T>(cvConvertHiro(result));\n}\n\n// Helper export for previous Deno-based tests\nexport const chain = {\n txOk,\n txErr,\n tx,\n ro,\n roOk,\n roErr,\n rov,\n rovOk,\n rovErr,\n};\n\nexport async function makeNewSession(cwd?: string, manifestPath?: string) {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n await simnet.initSession(\n cwd ?? process.cwd(),\n manifestPath ?? './Clarinet.toml'\n );\n}\n\nexport function assertOk<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(\n response: T | unknown\n): asserts response is ResponseOk<O, E> {\n if (!isResponse(response)) {\n throw new Error('Expected response, but got something else');\n }\n if (!response.isOk) {\n throw new Error(\n `Expected response to be OK, but got ERR ${response.value}`\n );\n }\n}\n\nexport function assertErr<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(\n response: T | unknown\n): asserts response is ResponseErr<O, E> {\n if (!isResponse(response)) {\n throw new Error('Expected response, but got something else');\n }\n if (response.isOk) {\n throw new Error('Expected response to be ERR, but got OK');\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["contractCallTx: ContractCallTransaction","tx","receipt: ParsedTransactionResult"],"sources":["../src/utils.ts","../src/events.ts","../src/index.ts"],"sourcesContent":["import {\n type Response,\n type TypedAbi,\n cvToValue,\n extractErrors,\n isResponse,\n} from '@clarigen/core';\nimport type { ClarityValue } from '@stacks/transactions';\n\n// biome-ignore lint/complexity/noExcessiveCognitiveComplexity: allowed\nexport function validateResponse<T>(\n result: ClarityValue,\n expectOk?: boolean,\n contractAbi?: TypedAbi\n): T {\n const value = cvToValue<Response<T, T> | T>(result, true);\n\n if (!isResponse(value) && typeof expectOk !== 'undefined') {\n throw new Error(\n 'Expected response when calling function, but not a response. Try using just `rov`'\n );\n }\n\n if (isResponse(value) && typeof expectOk !== 'undefined') {\n const response = value;\n const inner = response.value;\n if (expectOk && !response.isOk) {\n // try and find a matching error code\n let errorCode = '';\n if (contractAbi) {\n const match = Object.entries(extractErrors(contractAbi)).find(\n ([_key, code]) => code === inner\n );\n if (match) {\n errorCode = ` (${match[0]})`;\n }\n }\n throw new Error(\n `Tx result failed. Expected OK, received ERR ${String(inner)}${errorCode}.`\n );\n }\n if (expectOk === false && response.isOk) {\n throw new Error(\n `Tx result failed. Expected ERR, received OK ${String(inner)}.`\n );\n }\n return inner;\n }\n return value as T;\n}\n","import {\n CoreNodeEventType,\n type SmartContractEvent as _SmartContractEvent,\n type StxTransferEvent as _StxTransferEvent,\n type StxBurnEvent as _StxBurnEvent,\n type StxMintEvent as _StxMintEvent,\n type StxLockEvent as _StxLockEvent,\n type FtBurnEvent as _FtBurnEvent,\n type FtMintEvent as _FtMintEvent,\n type FtTransferEvent as _FtTransferEvent,\n type NftBurnEvent as _NftBurnEvent,\n type NftMintEvent as _NftMintEvent,\n type NftTransferEvent as _NftTransferEvent,\n} from '@clarigen/core';\nimport type { ClarityValue } from '@stacks/transactions';\n\nexport type SmartContractEvent = {\n event: _SmartContractEvent['type'];\n data: Omit<_SmartContractEvent['contract_event'], 'value'> & {\n value: ClarityValue;\n };\n};\n\nexport type StxTransferEvent = {\n event: _StxTransferEvent['type'];\n data: _StxTransferEvent['stx_transfer_event'];\n};\n\nexport type StxBurnEvent = {\n event: _StxBurnEvent['type'];\n data: _StxBurnEvent['stx_burn_event'];\n};\n\nexport type StxLockEvent = {\n event: _StxLockEvent['type'];\n data: _StxLockEvent['stx_lock_event'];\n};\n\nexport type StxMintEvent = {\n event: _StxMintEvent['type'];\n data: _StxMintEvent['stx_mint_event'];\n};\n\nexport type FtBurnEvent = {\n event: _FtBurnEvent['type'];\n data: _FtBurnEvent['ft_burn_event'];\n};\n\nexport type FtMintEvent = {\n event: _FtMintEvent['type'];\n data: _FtMintEvent['ft_mint_event'];\n};\n\nexport type FtTransferEvent = {\n event: _FtTransferEvent['type'];\n data: _FtTransferEvent['ft_transfer_event'];\n};\n\nexport type NftBurnEvent = {\n event: _NftBurnEvent['type'];\n data: _NftBurnEvent['nft_burn_event'];\n};\n\nexport type NftMintEvent = {\n event: _NftMintEvent['type'];\n data: _NftMintEvent['nft_mint_event'];\n};\n\nexport type NftTransferEvent = {\n event: _NftTransferEvent['type'];\n data: _NftTransferEvent['nft_transfer_event'];\n};\n\nexport type CoreNodeEvent =\n | SmartContractEvent\n | StxTransferEvent\n | StxMintEvent\n | StxBurnEvent\n | StxLockEvent\n | FtTransferEvent\n | FtMintEvent\n | FtBurnEvent\n | NftTransferEvent\n | NftMintEvent\n | NftBurnEvent;\n\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.ContractEvent\n): SmartContractEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxTransferEvent\n): StxTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxMintEvent\n): StxMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxBurnEvent\n): StxBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.StxLockEvent\n): StxLockEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftTransferEvent\n): NftTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftMintEvent\n): NftMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.NftBurnEvent\n): NftBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtTransferEvent\n): FtTransferEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtMintEvent\n): FtMintEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType.FtBurnEvent\n): FtBurnEvent[];\nexport function filterEvents(\n events: CoreNodeEvent[],\n type: CoreNodeEventType\n): CoreNodeEvent[] {\n const typeString =\n type === CoreNodeEventType.ContractEvent ? 'print_event' : type;\n return events.filter((event) => event.event === typeString);\n}\n","/** biome-ignore-all lint/style/useTrimStartEnd: suppressed */\nimport {\n type ContractCallTyped,\n type ErrType,\n type OkType,\n type TypedAbiMap,\n type TypedAbiVariable,\n type UnknownArgs,\n cvToValue,\n mapFactory,\n type Response,\n cvToString,\n type ResponseOk,\n type ResponseErr,\n isResponse,\n} from '@clarigen/core';\nimport type { ContractCallTransaction } from '@clarigen/core/deployment';\nimport type { ParsedTransactionResult } from '@stacks/clarinet-sdk';\nimport { validateResponse } from './utils';\nimport type { CoreNodeEvent } from './events';\nimport { stringify } from 'yaml';\nimport type { ClarityValue } from '@stacks/transactions';\n// biome-ignore lint/performance/noBarrelFile: ignored using `--suppress`\nexport * from './events';\nexport * from './utils';\n\nexport type TransactionResult<R> = Omit<ParsedTransactionResult, 'events'> & {\n value: R;\n events: CoreNodeEvent[];\n};\n\nexport type AnyResponse = Response<unknown, unknown>;\n\nfunction logTxCall({\n contractId,\n sender,\n args,\n functionName,\n}: {\n contractId: string;\n sender: string;\n args: ClarityValue[];\n functionName: string;\n}) {\n if (process.env.LOG_TX_CALLS) {\n const contractCallTx: ContractCallTransaction = {\n 'contract-call': {\n 'contract-id': contractId,\n 'expected-sender': sender,\n parameters: args.map((arg) => cvToString(arg, 'hex')),\n method: functionName,\n cost: '10000000',\n },\n };\n console.log('------------ DEPLOYMENT TX ------------');\n console.log(stringify(contractCallTx, { indent: 2 }));\n console.log('------------ END DEPLOYMENT TX ------------');\n }\n}\n\nexport function txOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<OkType<R>> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<OkType<R>>(\n receipt.result,\n true,\n tx.contractAbi\n );\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nexport function txErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<ErrType<R>> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<ErrType<R>>(\n receipt.result,\n false,\n tx.contractAbi\n );\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nexport function tx<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): TransactionResult<R> {\n const receipt = getTxReceipt(tx, sender);\n const value = validateResponse<R>(receipt.result, undefined, tx.contractAbi);\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nfunction getTxReceipt<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender: string\n): ParsedTransactionResult {\n const args = tx.functionArgs;\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n let receipt: ParsedTransactionResult;\n if (tx.function.access === 'private') {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n receipt = simnet.callPrivateFn(contractId, tx.function.name, args, sender);\n } else {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n receipt = simnet.callPublicFn(contractId, tx.function.name, args, sender);\n }\n logTxCall({ contractId, sender, args, functionName: tx.function.name });\n return receipt;\n}\n\nexport function ro<A extends UnknownArgs, R>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<R> {\n const args = tx.functionArgs;\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<R>(receipt.result, undefined, tx.contractAbi);\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rov<A extends UnknownArgs, R>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): R {\n return ro(tx, sender).value;\n}\n\nexport function roOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<OkType<R>> {\n const args = tx.functionArgs;\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<OkType<R>>(\n receipt.result,\n true,\n tx.contractAbi\n );\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rovOk<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): OkType<R> {\n return roOk(tx, sender).value;\n}\n\nexport function roErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): TransactionResult<ErrType<R>> {\n const args = tx.functionArgs;\n const contractId = `${tx.contractAddress}.${tx.contractName}`;\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const receipt = simnet.callReadOnlyFn(\n contractId,\n tx.function.name,\n args,\n sender ?? tx.contractAddress\n );\n const value = validateResponse<ErrType<R>>(\n receipt.result,\n false,\n tx.contractAbi\n );\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n\n // return value;\n}\n\nexport function rovErr<A extends UnknownArgs, R extends AnyResponse>(\n // biome-ignore lint/nursery/noShadow: ignored using `--suppress`\n tx: ContractCallTyped<A, R>,\n sender?: string\n): ErrType<R> {\n return roErr(tx, sender).value;\n}\n\nexport function mapGet<Key, Val>(\n contractId: string,\n map: TypedAbiMap<Key, Val>,\n key: Key\n) {\n const payload = mapFactory(map, key);\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const result = simnet.getMapEntry(\n contractId,\n payload.map.name,\n payload.keyCV\n );\n return cvToValue<Val | null>(result);\n}\n\nexport function varGet<T>(contractId: string, variable: TypedAbiVariable<T>) {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n const result = simnet.getDataVar(contractId, variable.name);\n return cvToValue<T>(result);\n}\n\n// Helper export for previous Deno-based tests\nexport const chain = {\n txOk,\n txErr,\n tx,\n ro,\n roOk,\n roErr,\n rov,\n rovOk,\n rovErr,\n};\n\nexport async function makeNewSession(cwd?: string, manifestPath?: string) {\n // biome-ignore lint/correctness/noUndeclaredVariables: ignored using `--suppress`\n await simnet.initSession(\n cwd ?? process.cwd(),\n manifestPath ?? './Clarinet.toml'\n );\n}\n\nexport function assertOk<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(\n response: T | unknown\n): asserts response is ResponseOk<O, E> {\n if (!isResponse(response)) {\n throw new Error('Expected response, but got something else');\n }\n if (!response.isOk) {\n throw new Error(\n `Expected response to be OK, but got ERR ${response.value}`\n );\n }\n}\n\nexport function assertErr<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(\n response: T | unknown\n): asserts response is ResponseErr<O, E> {\n if (!isResponse(response)) {\n throw new Error('Expected response, but got something else');\n }\n if (response.isOk) {\n throw new Error('Expected response to be ERR, but got OK');\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.1.
|
|
2
|
+
"version": "4.1.4",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"types": "./dist/index.d.cts",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@stacks/clarinet-sdk-wasm": "^3.9.2"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@clarigen/core": "4.1.
|
|
41
|
+
"@clarigen/core": "4.1.4",
|
|
42
42
|
"@stacks/transactions": "7.2.0",
|
|
43
43
|
"yaml": "^2.4.1"
|
|
44
44
|
},
|