@clarigen/test 4.0.2-alpha.1 → 4.1.1

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 CHANGED
@@ -1,2 +1,2 @@
1
- let e=require(`@clarigen/core`),t=require(`@stacks/transactions`),n=require(`yaml`);function r(e){return(0,t.deserializeCV)((0,t.serializeCV)(e))}function i(e){return(0,t.deserializeCV)((0,t.serializeCV)(e))}function a(t,n){let r=(0,e.cvToValue)(i(t),!0);if(!(0,e.isResponse)(r)&&n!==void 0)throw Error("Expected response when calling function, but not a response. Try using just `rov`");if((0,e.isResponse)(r)&&n!==void 0){let e=r,t=e.value;if(n&&!e.isOk)throw Error(`Tx result failed. Expected OK, received ERR ${String(t)}.`);if(n===!1&&e.isOk)throw Error(`Tx result failed. Expected ERR, received OK ${String(t)}.`);return t}return r}function o(t,n){let r=n===e.CoreNodeEventType.ContractEvent?`print_event`:n;return t.filter(e=>e.event===r)}function s({contractId:t,sender:r,args:i,functionName:a}){if(process.env.LOG_TX_CALLS){let o={"contract-call":{"contract-id":t,"expected-sender":r,parameters:i.map(t=>(0,e.cvToString)(t,`hex`)),method:a,cost:`10000000`}};console.log(`------------ DEPLOYMENT TX ------------`),console.log((0,n.stringify)(o,{indent:2})),console.log(`------------ END DEPLOYMENT TX ------------`)}}function c(e,t){let n=e.functionArgs.map(r),i=`${e.contractAddress}.${e.contractName}`,o=simnet.callPublicFn(i,e.function.name,n,t),c=a(o.result,!0);return s({contractId:i,sender:t,args:n,functionName:e.function.name}),{...o,events:o.events,value:c}}function l(e,t){let n=e.functionArgs.map(r),i=`${e.contractAddress}.${e.contractName}`,o=simnet.callPublicFn(i,e.function.name,n,t),c=a(o.result,!1);return s({contractId:i,sender:t,args:n,functionName:e.function.name}),{...o,events:o.events,value:c}}function u(e,t){let n=e.functionArgs.map(r),i=`${e.contractAddress}.${e.contractName}`,o=simnet.callPublicFn(i,e.function.name,n,t),c=a(o.result);return s({contractId:i,sender:t,args:n,functionName:e.function.name}),{...o,events:o.events,value:c}}function d(e,t){let n=e.functionArgs.map(r),i=`${e.contractAddress}.${e.contractName}`,o=simnet.callReadOnlyFn(i,e.function.name,n,t??e.contractAddress),s=a(o.result);return{...o,events:o.events,value:s}}function f(e,t){return d(e,t).value}function p(e,t){let n=e.functionArgs.map(r),i=`${e.contractAddress}.${e.contractName}`,o=simnet.callReadOnlyFn(i,e.function.name,n,t??e.contractAddress),s=a(o.result,!0);return{...o,events:o.events,value:s}}function m(e,t){return p(e,t).value}function h(e,t){let n=e.functionArgs.map(r),i=`${e.contractAddress}.${e.contractName}`,o=simnet.callReadOnlyFn(i,e.function.name,n,t??e.contractAddress),s=a(o.result,!1);return{...o,events:o.events,value:s}}function g(e,t){return h(e,t).value}function _(t,n,a){let o=(0,e.mapFactory)(n,a);return(0,e.cvToValue)(i(simnet.getMapEntry(t,o.map.name,r(o.keyCV))))}function v(t,n){return(0,e.cvToValue)(i(simnet.getDataVar(t,n.name)))}const y={txOk:c,txErr:l,tx:u,ro:d,roOk:p,roErr:h,rov:f,rovOk:m,rovErr:g};async function b(e,t){await simnet.initSession(e??process.cwd(),t??`./Clarinet.toml`)}exports.chain=y,exports.cvConvertHiro=i,exports.cvConvertMS=r,exports.filterEvents=o,exports.makeNewSession=b,exports.mapGet=_,exports.ro=d,exports.roErr=h,exports.roOk=p,exports.rov=f,exports.rovErr=g,exports.rovOk=m,exports.tx=u,exports.txErr=l,exports.txOk=c,exports.validateResponse=a,exports.varGet=v;
1
+ let e=require(`@clarigen/core`),t=require(`@stacks/transactions`),n=require(`yaml`);function r(e){return(0,t.deserializeCV)((0,t.serializeCV)(e))}function i(e){return(0,t.deserializeCV)((0,t.serializeCV)(e))}function a(t,n){let r=(0,e.cvToValue)(i(t),!0);if(!(0,e.isResponse)(r)&&n!==void 0)throw Error("Expected response when calling function, but not a response. Try using just `rov`");if((0,e.isResponse)(r)&&n!==void 0){let e=r,t=e.value;if(n&&!e.isOk)throw Error(`Tx result failed. Expected OK, received ERR ${String(t)}.`);if(n===!1&&e.isOk)throw Error(`Tx result failed. Expected ERR, received OK ${String(t)}.`);return t}return r}function o(t,n){let r=n===e.CoreNodeEventType.ContractEvent?`print_event`:n;return t.filter(e=>e.event===r)}function s({contractId:t,sender:r,args:i,functionName:a}){if(process.env.LOG_TX_CALLS){let o={"contract-call":{"contract-id":t,"expected-sender":r,parameters:i.map(t=>(0,e.cvToString)(t,`hex`)),method:a,cost:`10000000`}};console.log(`------------ DEPLOYMENT TX ------------`),console.log((0,n.stringify)(o,{indent:2})),console.log(`------------ END DEPLOYMENT TX ------------`)}}function c(e,t){let n=d(e,t),r=a(n.result,!0);return{...n,events:n.events,value:r}}function l(e,t){let n=d(e,t),r=a(n.result,!1);return{...n,events:n.events,value:r}}function u(e,t){let n=d(e,t),r=a(n.result);return{...n,events:n.events,value:r}}function d(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),s({contractId:r,sender:t,args:n,functionName:e.function.name}),i}function f(e,t){let n=e.functionArgs.map(r),i=`${e.contractAddress}.${e.contractName}`,o=simnet.callReadOnlyFn(i,e.function.name,n,t??e.contractAddress),s=a(o.result);return{...o,events:o.events,value:s}}function p(e,t){return f(e,t).value}function m(e,t){let n=e.functionArgs.map(r),i=`${e.contractAddress}.${e.contractName}`,o=simnet.callReadOnlyFn(i,e.function.name,n,t??e.contractAddress),s=a(o.result,!0);return{...o,events:o.events,value:s}}function h(e,t){return m(e,t).value}function g(e,t){let n=e.functionArgs.map(r),i=`${e.contractAddress}.${e.contractName}`,o=simnet.callReadOnlyFn(i,e.function.name,n,t??e.contractAddress),s=a(o.result,!1);return{...o,events:o.events,value:s}}function _(e,t){return g(e,t).value}function v(t,n,a){let o=(0,e.mapFactory)(n,a);return(0,e.cvToValue)(i(simnet.getMapEntry(t,o.map.name,r(o.keyCV))))}function y(t,n){return(0,e.cvToValue)(i(simnet.getDataVar(t,n.name)))}const b={txOk:c,txErr:l,tx:u,ro:f,roOk:m,roErr:g,rov:p,rovOk:h,rovErr:_};async function x(e,t){await simnet.initSession(e??process.cwd(),t??`./Clarinet.toml`)}function S(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 C(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=C,exports.assertOk=S,exports.chain=b,exports.cvConvertHiro=i,exports.cvConvertMS=r,exports.filterEvents=o,exports.makeNewSession=x,exports.mapGet=v,exports.ro=f,exports.roErr=g,exports.roOk=m,exports.rov=p,exports.rovErr=_,exports.rovOk=h,exports.tx=u,exports.txErr=l,exports.txOk=c,exports.validateResponse=a,exports.varGet=y;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["CoreNodeEventType","contractCallTx: ContractCallTransaction","tx"],"sources":["../src/utils.ts","../src/events.ts","../src/index.ts"],"sourcesContent":["import { Response, cvToValue, isResponse } from '@clarigen/core';\nimport {\n ClarityValue as HiroClarityValue,\n deserializeCV as deserializeCVHiro,\n serializeCV as serializeCVHiro,\n StandardPrincipalCV as HiroPrincipalCV,\n} from '@stacks/transactions';\nimport {\n ClarityValue as MSClarityValue,\n StandardPrincipalCV as MSPrincipalCV,\n serializeCV as serializeCVMS,\n deserializeCV as deserializeCVMS,\n ClarityAbiFunction,\n Address,\n ClarityType,\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>(result: HiroClarityValue, expectOk?: boolean): 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(`Tx result failed. Expected OK, received ERR ${String(inner)}.`);\n }\n if (expectOk === false && response.isOk) {\n throw new Error(`Tx result failed. Expected ERR, received OK ${String(inner)}.`);\n }\n return inner;\n }\n return value as T;\n}\n","import {\n CoreNodeEventType,\n SmartContractEvent as _SmartContractEvent,\n StxTransferEvent as _StxTransferEvent,\n StxBurnEvent as _StxBurnEvent,\n StxMintEvent as _StxMintEvent,\n StxLockEvent as _StxLockEvent,\n FtBurnEvent as _FtBurnEvent,\n FtMintEvent as _FtMintEvent,\n FtTransferEvent as _FtTransferEvent,\n NftBurnEvent as _NftBurnEvent,\n NftMintEvent as _NftMintEvent,\n NftTransferEvent as _NftTransferEvent,\n} from '@clarigen/core';\nimport { 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(events: CoreNodeEvent[], type: CoreNodeEventType): CoreNodeEvent[] {\n const typeString = type === CoreNodeEventType.ContractEvent ? 'print_event' : type;\n return events.filter(event => event.event === typeString);\n}\n","import {\n ContractCallTyped,\n ErrType,\n OkType,\n TypedAbiMap,\n TypedAbiVariable,\n UnknownArgs,\n cvToValue,\n mapFactory,\n rawClarityToValue,\n Response,\n cvToString,\n} from '@clarigen/core';\nimport type { ContractCallTransaction } from '@clarigen/core/deployment';\nimport { Simnet, ParsedTransactionResult } from '@stacks/clarinet-sdk';\nimport { cvConvertHiro, cvConvertMS, validateResponse } from './utils';\nimport { CoreNodeEvent } from './events';\nimport { stringify } from 'yaml';\nimport { ClarityValue } from '@stacks/transactions';\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 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 const receipt = simnet.callPublicFn(contractId, tx.function.name, args, sender);\n const value = validateResponse<OkType<R>>(receipt.result, true);\n logTxCall({ contractId, sender, args, functionName: tx.function.name });\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 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 const receipt = simnet.callPublicFn(contractId, tx.function.name, args, sender);\n const value = validateResponse<ErrType<R>>(receipt.result, false);\n logTxCall({ contractId, sender, args, functionName: tx.function.name });\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 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 const receipt = simnet.callPublicFn(contractId, tx.function.name, args, sender);\n const value = validateResponse<R>(receipt.result);\n logTxCall({ contractId, sender, args, functionName: tx.function.name });\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nexport function ro<A extends UnknownArgs, R>(\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 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>(tx: ContractCallTyped<A, R>, sender?: string): R {\n return ro(tx, sender).value;\n}\n\nexport function roOk<A extends UnknownArgs, R extends AnyResponse>(\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 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 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 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 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 tx: ContractCallTyped<A, R>,\n sender?: string\n): ErrType<R> {\n return roErr(tx, sender).value;\n}\n\nexport function mapGet<Key, Val>(contractId: string, map: TypedAbiMap<Key, Val>, key: Key) {\n const payload = mapFactory(map, key);\n const result = simnet.getMapEntry(contractId, payload.map.name, cvConvertMS(payload.keyCV));\n return cvToValue<Val | null>(cvConvertHiro(result));\n}\n\nexport function varGet<T>(contractId: string, variable: TypedAbiVariable<T>) {\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 await simnet.initSession(cwd ?? process.cwd(), manifestPath ?? './Clarinet.toml');\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 { 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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"}
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, 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, TypedAbiMap, TypedAbiVariable, UnknownArgs } from "@clarigen/core";
2
2
  import { ParsedTransactionResult } from "@stacks/clarinet-sdk";
3
3
  import { ClarityValue } from "@stacks/transactions";
4
4
 
@@ -96,6 +96,8 @@ declare const chain: {
96
96
  rovErr: typeof rovErr;
97
97
  };
98
98
  declare function makeNewSession(cwd?: string, manifestPath?: string): Promise<void>;
99
+ declare function assertOk<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(response: T | unknown): asserts response is ResponseOk<O, E>;
100
+ declare function assertErr<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(response: T | unknown): asserts response is ResponseErr<O, E>;
99
101
  //#endregion
100
- export { AnyResponse, CoreNodeEvent, FtBurnEvent, FtMintEvent, FtTransferEvent, NftBurnEvent, NftMintEvent, NftTransferEvent, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TransactionResult, chain, cvConvertHiro, cvConvertMS, filterEvents, makeNewSession, mapGet, ro, roErr, roOk, rov, rovErr, rovOk, tx, txErr, txOk, validateResponse, varGet };
102
+ export { AnyResponse, CoreNodeEvent, FtBurnEvent, FtMintEvent, FtTransferEvent, NftBurnEvent, NftMintEvent, NftTransferEvent, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TransactionResult, assertErr, assertOk, chain, cvConvertHiro, cvConvertMS, filterEvents, makeNewSession, mapGet, ro, roErr, roOk, rov, rovErr, rovOk, tx, txErr, txOk, validateResponse, varGet };
101
103
  //# sourceMappingURL=index.d.cts.map
package/dist/index.d.mts 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, 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, TypedAbiMap, TypedAbiVariable, UnknownArgs } from "@clarigen/core";
2
2
  import { ClarityValue } from "@stacks/transactions";
3
3
  import { ParsedTransactionResult } from "@stacks/clarinet-sdk";
4
4
 
@@ -96,6 +96,8 @@ declare const chain: {
96
96
  rovErr: typeof rovErr;
97
97
  };
98
98
  declare function makeNewSession(cwd?: string, manifestPath?: string): Promise<void>;
99
+ declare function assertOk<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(response: T | unknown): asserts response is ResponseOk<O, E>;
100
+ declare function assertErr<T extends ResponseOk<O, E> | ResponseErr<O, E>, O, E>(response: T | unknown): asserts response is ResponseErr<O, E>;
99
101
  //#endregion
100
- export { AnyResponse, CoreNodeEvent, FtBurnEvent, FtMintEvent, FtTransferEvent, NftBurnEvent, NftMintEvent, NftTransferEvent, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TransactionResult, chain, cvConvertHiro, cvConvertMS, filterEvents, makeNewSession, mapGet, ro, roErr, roOk, rov, rovErr, rovOk, tx, txErr, txOk, validateResponse, varGet };
102
+ export { AnyResponse, CoreNodeEvent, FtBurnEvent, FtMintEvent, FtTransferEvent, NftBurnEvent, NftMintEvent, NftTransferEvent, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TransactionResult, assertErr, assertOk, chain, cvConvertHiro, cvConvertMS, filterEvents, makeNewSession, mapGet, ro, roErr, roOk, rov, rovErr, rovOk, tx, txErr, txOk, validateResponse, varGet };
101
103
  //# 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,isResponse as r,mapFactory as i}from"@clarigen/core";import{deserializeCV as a,serializeCV as o}from"@stacks/transactions";import{stringify as s}from"yaml";function c(e){return a(o(e))}function l(e){return a(o(e))}function u(e,t){let i=n(l(e),!0);if(!r(i)&&t!==void 0)throw Error("Expected response when calling function, but not a response. Try using just `rov`");if(r(i)&&t!==void 0){let e=i,n=e.value;if(t&&!e.isOk)throw Error(`Tx result failed. Expected OK, received ERR ${String(n)}.`);if(t===!1&&e.isOk)throw Error(`Tx result failed. Expected ERR, received OK ${String(n)}.`);return n}return i}function d(t,n){let r=n===e.ContractEvent?`print_event`:n;return t.filter(e=>e.event===r)}function f({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(s(a,{indent:2})),console.log(`------------ END DEPLOYMENT TX ------------`)}}function p(e,t){let n=e.functionArgs.map(c),r=`${e.contractAddress}.${e.contractName}`,i=simnet.callPublicFn(r,e.function.name,n,t),a=u(i.result,!0);return f({contractId:r,sender:t,args:n,functionName:e.function.name}),{...i,events:i.events,value:a}}function m(e,t){let n=e.functionArgs.map(c),r=`${e.contractAddress}.${e.contractName}`,i=simnet.callPublicFn(r,e.function.name,n,t),a=u(i.result,!1);return f({contractId:r,sender:t,args:n,functionName:e.function.name}),{...i,events:i.events,value:a}}function h(e,t){let n=e.functionArgs.map(c),r=`${e.contractAddress}.${e.contractName}`,i=simnet.callPublicFn(r,e.function.name,n,t),a=u(i.result);return f({contractId:r,sender:t,args:n,functionName:e.function.name}),{...i,events:i.events,value:a}}function g(e,t){let n=e.functionArgs.map(c),r=`${e.contractAddress}.${e.contractName}`,i=simnet.callReadOnlyFn(r,e.function.name,n,t??e.contractAddress),a=u(i.result);return{...i,events:i.events,value:a}}function _(e,t){return g(e,t).value}function v(e,t){let n=e.functionArgs.map(c),r=`${e.contractAddress}.${e.contractName}`,i=simnet.callReadOnlyFn(r,e.function.name,n,t??e.contractAddress),a=u(i.result,!0);return{...i,events:i.events,value:a}}function y(e,t){return v(e,t).value}function b(e,t){let n=e.functionArgs.map(c),r=`${e.contractAddress}.${e.contractName}`,i=simnet.callReadOnlyFn(r,e.function.name,n,t??e.contractAddress),a=u(i.result,!1);return{...i,events:i.events,value:a}}function x(e,t){return b(e,t).value}function S(e,t,r){let a=i(t,r);return n(l(simnet.getMapEntry(e,a.map.name,c(a.keyCV))))}function C(e,t){return n(l(simnet.getDataVar(e,t.name)))}const w={txOk:p,txErr:m,tx:h,ro:g,roOk:v,roErr:b,rov:_,rovOk:y,rovErr:x};async function T(e,t){await simnet.initSession(e??process.cwd(),t??`./Clarinet.toml`)}export{w as chain,l as cvConvertHiro,c as cvConvertMS,d as filterEvents,T as makeNewSession,S as mapGet,g as ro,b as roErr,v as roOk,_ as rov,x as rovErr,y as rovOk,h as tx,m as txErr,p as txOk,u as validateResponse,C as varGet};
1
+ import{CoreNodeEventType as e,cvToString as t,cvToValue as n,isResponse as r,mapFactory as i}from"@clarigen/core";import{deserializeCV as a,serializeCV as o}from"@stacks/transactions";import{stringify as s}from"yaml";function c(e){return a(o(e))}function l(e){return a(o(e))}function u(e,t){let i=n(l(e),!0);if(!r(i)&&t!==void 0)throw Error("Expected response when calling function, but not a response. Try using just `rov`");if(r(i)&&t!==void 0){let e=i,n=e.value;if(t&&!e.isOk)throw Error(`Tx result failed. Expected OK, received ERR ${String(n)}.`);if(t===!1&&e.isOk)throw Error(`Tx result failed. Expected ERR, received OK ${String(n)}.`);return n}return i}function d(t,n){let r=n===e.ContractEvent?`print_event`:n;return t.filter(e=>e.event===r)}function f({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(s(a,{indent:2})),console.log(`------------ END DEPLOYMENT TX ------------`)}}function p(e,t){let n=g(e,t),r=u(n.result,!0);return{...n,events:n.events,value:r}}function m(e,t){let n=g(e,t),r=u(n.result,!1);return{...n,events:n.events,value:r}}function h(e,t){let n=g(e,t),r=u(n.result);return{...n,events:n.events,value:r}}function g(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),f({contractId:r,sender:t,args:n,functionName:e.function.name}),i}function _(e,t){let n=e.functionArgs.map(c),r=`${e.contractAddress}.${e.contractName}`,i=simnet.callReadOnlyFn(r,e.function.name,n,t??e.contractAddress),a=u(i.result);return{...i,events:i.events,value:a}}function v(e,t){return _(e,t).value}function y(e,t){let n=e.functionArgs.map(c),r=`${e.contractAddress}.${e.contractName}`,i=simnet.callReadOnlyFn(r,e.function.name,n,t??e.contractAddress),a=u(i.result,!0);return{...i,events:i.events,value:a}}function b(e,t){return y(e,t).value}function x(e,t){let n=e.functionArgs.map(c),r=`${e.contractAddress}.${e.contractName}`,i=simnet.callReadOnlyFn(r,e.function.name,n,t??e.contractAddress),a=u(i.result,!1);return{...i,events:i.events,value:a}}function S(e,t){return x(e,t).value}function C(e,t,r){let a=i(t,r);return n(l(simnet.getMapEntry(e,a.map.name,c(a.keyCV))))}function w(e,t){return n(l(simnet.getDataVar(e,t.name)))}const T={txOk:p,txErr:m,tx:h,ro:_,roOk:y,roErr:x,rov:v,rovOk:b,rovErr:S};async function E(e,t){await simnet.initSession(e??process.cwd(),t??`./Clarinet.toml`)}function D(e){if(!r(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 O(e){if(!r(e))throw Error(`Expected response, but got something else`);if(e.isOk)throw Error(`Expected response to be ERR, but got OK`)}export{O as assertErr,D as assertOk,T as chain,l as cvConvertHiro,c as cvConvertMS,d as filterEvents,E as makeNewSession,C as mapGet,_ as ro,x as roErr,y as roOk,v as rov,S as rovErr,b as rovOk,h as tx,m as txErr,p as txOk,u as validateResponse,w as varGet};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["deserializeCVHiro","serializeCVMS","deserializeCVMS","serializeCVHiro","contractCallTx: ContractCallTransaction","tx"],"sources":["../src/utils.ts","../src/events.ts","../src/index.ts"],"sourcesContent":["import { Response, cvToValue, isResponse } from '@clarigen/core';\nimport {\n ClarityValue as HiroClarityValue,\n deserializeCV as deserializeCVHiro,\n serializeCV as serializeCVHiro,\n StandardPrincipalCV as HiroPrincipalCV,\n} from '@stacks/transactions';\nimport {\n ClarityValue as MSClarityValue,\n StandardPrincipalCV as MSPrincipalCV,\n serializeCV as serializeCVMS,\n deserializeCV as deserializeCVMS,\n ClarityAbiFunction,\n Address,\n ClarityType,\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>(result: HiroClarityValue, expectOk?: boolean): 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(`Tx result failed. Expected OK, received ERR ${String(inner)}.`);\n }\n if (expectOk === false && response.isOk) {\n throw new Error(`Tx result failed. Expected ERR, received OK ${String(inner)}.`);\n }\n return inner;\n }\n return value as T;\n}\n","import {\n CoreNodeEventType,\n SmartContractEvent as _SmartContractEvent,\n StxTransferEvent as _StxTransferEvent,\n StxBurnEvent as _StxBurnEvent,\n StxMintEvent as _StxMintEvent,\n StxLockEvent as _StxLockEvent,\n FtBurnEvent as _FtBurnEvent,\n FtMintEvent as _FtMintEvent,\n FtTransferEvent as _FtTransferEvent,\n NftBurnEvent as _NftBurnEvent,\n NftMintEvent as _NftMintEvent,\n NftTransferEvent as _NftTransferEvent,\n} from '@clarigen/core';\nimport { 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(events: CoreNodeEvent[], type: CoreNodeEventType): CoreNodeEvent[] {\n const typeString = type === CoreNodeEventType.ContractEvent ? 'print_event' : type;\n return events.filter(event => event.event === typeString);\n}\n","import {\n ContractCallTyped,\n ErrType,\n OkType,\n TypedAbiMap,\n TypedAbiVariable,\n UnknownArgs,\n cvToValue,\n mapFactory,\n rawClarityToValue,\n Response,\n cvToString,\n} from '@clarigen/core';\nimport type { ContractCallTransaction } from '@clarigen/core/deployment';\nimport { Simnet, ParsedTransactionResult } from '@stacks/clarinet-sdk';\nimport { cvConvertHiro, cvConvertMS, validateResponse } from './utils';\nimport { CoreNodeEvent } from './events';\nimport { stringify } from 'yaml';\nimport { ClarityValue } from '@stacks/transactions';\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 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 const receipt = simnet.callPublicFn(contractId, tx.function.name, args, sender);\n const value = validateResponse<OkType<R>>(receipt.result, true);\n logTxCall({ contractId, sender, args, functionName: tx.function.name });\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 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 const receipt = simnet.callPublicFn(contractId, tx.function.name, args, sender);\n const value = validateResponse<ErrType<R>>(receipt.result, false);\n logTxCall({ contractId, sender, args, functionName: tx.function.name });\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 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 const receipt = simnet.callPublicFn(contractId, tx.function.name, args, sender);\n const value = validateResponse<R>(receipt.result);\n logTxCall({ contractId, sender, args, functionName: tx.function.name });\n\n return {\n ...receipt,\n events: receipt.events as unknown as CoreNodeEvent[],\n value,\n };\n}\n\nexport function ro<A extends UnknownArgs, R>(\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 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>(tx: ContractCallTyped<A, R>, sender?: string): R {\n return ro(tx, sender).value;\n}\n\nexport function roOk<A extends UnknownArgs, R extends AnyResponse>(\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 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 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 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 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 tx: ContractCallTyped<A, R>,\n sender?: string\n): ErrType<R> {\n return roErr(tx, sender).value;\n}\n\nexport function mapGet<Key, Val>(contractId: string, map: TypedAbiMap<Key, Val>, key: Key) {\n const payload = mapFactory(map, key);\n const result = simnet.getMapEntry(contractId, payload.map.name, cvConvertMS(payload.keyCV));\n return cvToValue<Val | null>(cvConvertHiro(result));\n}\n\nexport function varGet<T>(contractId: string, variable: TypedAbiVariable<T>) {\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 await simnet.initSession(cwd ?? process.cwd(), manifestPath ?? './Clarinet.toml');\n}\n"],"mappings":"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"}
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":"yNAYA,SAAgB,EAAY,EAAyC,CACnE,OAAOA,EAAkBC,EAAc,EAAM,CAAC,CAGhD,SAAgB,EAAc,EAAyC,CACrE,OAAOC,EAAgBC,EAAgB,EAAM,CAAC,CAGhD,SAAgB,EACd,EACA,EACG,CACH,IAAM,EAAQ,EAA8B,EAAc,EAAO,CAAE,GAAK,CAExE,GAAI,CAAC,EAAW,EAAM,EAAW,IAAa,OAC5C,MAAU,MACR,oFACD,CAGH,GAAI,EAAW,EAAM,EAAW,IAAa,OAAa,CACxD,IAAM,EAAW,EACX,EAAQ,EAAS,MACvB,GAAI,GAAY,CAAC,EAAS,KACxB,MAAU,MACR,+CAA+C,OAAO,EAAM,CAAC,GAC9D,CAEH,GAAI,IAAa,IAAS,EAAS,KACjC,MAAU,MACR,+CAA+C,OAAO,EAAM,CAAC,GAC9D,CAEH,OAAO,EAET,OAAO,ECmFT,SAAgB,EACd,EACA,EACiB,CACjB,IAAM,EACJ,IAAS,EAAkB,cAAgB,cAAgB,EAC7D,OAAO,EAAO,OAAQ,GAAU,EAAM,QAAU,EAAW,CCvG7D,SAAS,EAAU,CACjB,aACA,SACA,OACA,gBAMC,CACD,GAAI,QAAQ,IAAI,aAAc,CAC5B,IAAMC,EAA0C,CAC9C,gBAAiB,CACf,cAAe,EACf,kBAAmB,EACnB,WAAY,EAAK,IAAK,GAAQ,EAAW,EAAK,MAAM,CAAC,CACrD,OAAQ,EACR,KAAM,WACP,CACF,CACD,QAAQ,IAAI,0CAA0C,CACtD,QAAQ,IAAI,EAAU,EAAgB,CAAE,OAAQ,EAAG,CAAC,CAAC,CACrD,QAAQ,IAAI,8CAA8C,EAI9D,SAAgB,EAEd,EACA,EAC8B,CAC9B,IAAM,EAAU,EAAaC,EAAI,EAAO,CAClC,EAAQ,EAA4B,EAAQ,OAAQ,GAAK,CAE/D,MAAO,CACL,GAAG,EACH,OAAQ,EAAQ,OAChB,QACD,CAGH,SAAgB,EAEd,EACA,EAC+B,CAC/B,IAAM,EAAU,EAAaA,EAAI,EAAO,CAClC,EAAQ,EAA6B,EAAQ,OAAQ,GAAM,CAEjE,MAAO,CACL,GAAG,EACH,OAAQ,EAAQ,OAChB,QACD,CAGH,SAAgB,EAEd,EACA,EACsB,CACtB,IAAM,EAAU,EAAaA,EAAI,EAAO,CAClC,EAAQ,EAAoB,EAAQ,OAAO,CAEjD,MAAO,CACL,GAAG,EACH,OAAQ,EAAQ,OAChB,QACD,CAGH,SAAS,EAEP,EACA,EACyB,CACzB,IAAM,EAAOA,EAAG,aACV,EAAa,GAAGA,EAAG,gBAAgB,GAAGA,EAAG,eAC3CC,EASJ,MARA,CAKE,EALED,EAAG,SAAS,SAAW,UAEf,OAAO,cAAc,EAAYA,EAAG,SAAS,KAAM,EAAM,EAAO,CAGhE,OAAO,aAAa,EAAYA,EAAG,SAAS,KAAM,EAAM,EAAO,CAE3E,EAAU,CAAE,aAAY,SAAQ,OAAM,aAAcA,EAAG,SAAS,KAAM,CAAC,CAChE,EAGT,SAAgB,EAEd,EACA,EACsB,CACtB,IAAM,EAAOA,EAAG,aAAa,IAAI,EAAY,CACvC,EAAa,GAAGA,EAAG,gBAAgB,GAAGA,EAAG,eAEzC,EAAU,OAAO,eACrB,EACAA,EAAG,SAAS,KACZ,EACA,GAAUA,EAAG,gBACd,CACK,EAAQ,EAAoB,EAAQ,OAAO,CACjD,MAAO,CACL,GAAG,EACH,OAAQ,EAAQ,OAChB,QACD,CAKH,SAAgB,EAEd,EACA,EACG,CACH,OAAO,EAAGA,EAAI,EAAO,CAAC,MAGxB,SAAgB,EAEd,EACA,EAC8B,CAC9B,IAAM,EAAOA,EAAG,aAAa,IAAI,EAAY,CACvC,EAAa,GAAGA,EAAG,gBAAgB,GAAGA,EAAG,eAEzC,EAAU,OAAO,eACrB,EACAA,EAAG,SAAS,KACZ,EACA,GAAUA,EAAG,gBACd,CACK,EAAQ,EAA4B,EAAQ,OAAQ,GAAK,CAC/D,MAAO,CACL,GAAG,EACH,OAAQ,EAAQ,OAChB,QACD,CAKH,SAAgB,EAEd,EACA,EACW,CACX,OAAO,EAAKA,EAAI,EAAO,CAAC,MAG1B,SAAgB,EAEd,EACA,EAC+B,CAC/B,IAAM,EAAOA,EAAG,aAAa,IAAI,EAAY,CACvC,EAAa,GAAGA,EAAG,gBAAgB,GAAGA,EAAG,eAEzC,EAAU,OAAO,eACrB,EACAA,EAAG,SAAS,KACZ,EACA,GAAUA,EAAG,gBACd,CACK,EAAQ,EAA6B,EAAQ,OAAQ,GAAM,CAEjE,MAAO,CACL,GAAG,EACH,OAAQ,EAAQ,OAChB,QACD,CAKH,SAAgB,EAEd,EACA,EACY,CACZ,OAAO,EAAMA,EAAI,EAAO,CAAC,MAG3B,SAAgB,EACd,EACA,EACA,EACA,CACA,IAAM,EAAU,EAAW,EAAK,EAAI,CAOpC,OAAO,EAAsB,EALd,OAAO,YACpB,EACA,EAAQ,IAAI,KACZ,EAAY,EAAQ,MAAM,CAC3B,CACiD,CAAC,CAGrD,SAAgB,EAAU,EAAoB,EAA+B,CAG3E,OAAO,EAAa,EADL,OAAO,WAAW,EAAY,EAAS,KAAK,CAClB,CAAC,CAI5C,MAAa,EAAQ,CACnB,OACA,QACA,KACA,KACA,OACA,QACA,MACA,QACA,SACD,CAED,eAAsB,EAAe,EAAc,EAAuB,CAExE,MAAM,OAAO,YACX,GAAO,QAAQ,KAAK,CACpB,GAAgB,kBACjB,CAGH,SAAgB,EACd,EACsC,CACtC,GAAI,CAAC,EAAW,EAAS,CACvB,MAAU,MAAM,4CAA4C,CAE9D,GAAI,CAAC,EAAS,KACZ,MAAU,MACR,2CAA2C,EAAS,QACrD,CAIL,SAAgB,EACd,EACuC,CACvC,GAAI,CAAC,EAAW,EAAS,CACvB,MAAU,MAAM,4CAA4C,CAE9D,GAAI,EAAS,KACX,MAAU,MAAM,0CAA0C"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.0.2-alpha.1",
2
+ "version": "4.1.1",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.cts",
5
5
  "main": "./dist/index.cjs",
@@ -11,6 +11,15 @@
11
11
  "engines": {
12
12
  "node": ">=10"
13
13
  },
14
+ "scripts": {
15
+ "start": "tsdown --watch",
16
+ "dev": "tsdown --watch",
17
+ "build": "shx rm -rf dist && tsdown",
18
+ "test": "vitest run",
19
+ "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier --check \"./**/*.{ts,js}\"",
20
+ "typecheck": "tsc --noEmit -p tsconfig-test.json",
21
+ "publish": "bun publish"
22
+ },
14
23
  "prettier": "@stacks/prettier-config",
15
24
  "name": "@clarigen/test",
16
25
  "author": "Hank Stoever",
@@ -20,7 +29,7 @@
20
29
  "@stacks/clarinet-sdk-wasm": "3.9.2",
21
30
  "@types/node": "24.2.0",
22
31
  "tsx": "^4.8.1",
23
- "typescript": "5.4.5",
32
+ "typescript": "5.9.3",
24
33
  "vitest": "3.2.4",
25
34
  "vitest-environment-clarinet": "3.0.2"
26
35
  },
@@ -29,9 +38,9 @@
29
38
  "@stacks/clarinet-sdk-wasm": "^3.9.2"
30
39
  },
31
40
  "dependencies": {
41
+ "@clarigen/core": "4.0.2-alpha.1",
32
42
  "@stacks/transactions": "7.2.0",
33
- "yaml": "^2.4.1",
34
- "@clarigen/core": "4.0.2-alpha.1"
43
+ "yaml": "^2.4.1"
35
44
  },
36
45
  "publishConfig": {
37
46
  "access": "public"
@@ -42,13 +51,5 @@
42
51
  "import": "./dist/index.mjs"
43
52
  },
44
53
  "./package.json": "./package.json"
45
- },
46
- "scripts": {
47
- "start": "tsdown --watch",
48
- "dev": "tsdown --watch",
49
- "build": "shx rm -rf dist && tsdown",
50
- "test": "vitest run",
51
- "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier --check \"./**/*.{ts,js}\"",
52
- "typecheck": "tsc --noEmit -p tsconfig-test.json"
53
54
  }
54
- }
55
+ }