diff --git a/docs/typescript/core/classes/Core.SundaeSDK.md b/docs/typescript/core/classes/Core.SundaeSDK.md index 91daf02e..eb350b3d 100644 --- a/docs/typescript/core/classes/Core.SundaeSDK.md +++ b/docs/typescript/core/classes/Core.SundaeSDK.md @@ -67,7 +67,7 @@ ___ ### cancel -▸ **cancel**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ **cancel**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> Create a cancel transaction for an open escrow order. @@ -79,7 +79,7 @@ Create a cancel transaction for an open escrow order. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in @@ -89,7 +89,7 @@ ___ ### deposit -▸ **deposit**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ **deposit**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> Create a Deposit transaction for a pool by supplying two assets. @@ -101,7 +101,7 @@ Create a Deposit transaction for a pool by supplying two assets. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in @@ -111,7 +111,7 @@ ___ ### limitSwap -▸ **limitSwap**(`config`, `minReceivable`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ **limitSwap**(`config`, `minReceivable`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> Creates a swap with a minimum receivable amount. @@ -148,7 +148,7 @@ const { submit, cbor } = await SDK.limitSwap( #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in @@ -158,7 +158,7 @@ ___ ### lock -▸ **lock**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ **lock**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> Create a locking transaction for yield farming and pool delegation. @@ -170,7 +170,7 @@ Create a locking transaction for yield farming and pool delegation. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in @@ -196,7 +196,7 @@ ___ ### swap -▸ **swap**(`config`, `slippage?`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ **swap**(`config`, `slippage?`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> The main entry point for building a swap transaction with the least amount of configuration required. By default, all calls to this method are treated @@ -253,7 +253,7 @@ const { submit, cbor } = await SDK.swap( #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in @@ -263,7 +263,7 @@ ___ ### unlock -▸ **unlock**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ **unlock**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> Create an unlocking transaction that removes all yield farming positions. @@ -275,7 +275,7 @@ Create an unlocking transaction that removes all yield farming positions. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in @@ -285,7 +285,7 @@ ___ ### unstable\_zap -▸ **unstable_zap**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ **unstable_zap**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> Creates an atomic swap with a single asset and a pool. This is experimental and currently not supported by Cardano parameter limits. @@ -298,7 +298,7 @@ This is experimental and currently not supported by Cardano parameter limits. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in @@ -308,7 +308,7 @@ ___ ### updateSwap -▸ **updateSwap**(`cancelConfig`, `swapConfig`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ **updateSwap**(`cancelConfig`, `swapConfig`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> Create a new transaction that cancels and spends the assets with a new swap config. @@ -321,7 +321,7 @@ Create a new transaction that cancels and spends the assets with a new swap conf #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in @@ -331,7 +331,7 @@ ___ ### withdraw -▸ **withdraw**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ **withdraw**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> Create a Withdraw transaction for a pool by supplying the LP tokens. @@ -343,7 +343,7 @@ Create a Withdraw transaction for a pool by supplying the LP tokens. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in @@ -353,7 +353,7 @@ ___ ### zap -▸ **zap**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ **zap**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> Builds a custom zap utilizing a chained order (first a swap, then a deposit). @@ -365,7 +365,7 @@ Builds a custom zap utilizing a chained order (first a swap, then a deposit). #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in diff --git a/docs/typescript/core/classes/Core.Transaction.md b/docs/typescript/core/classes/Core.Transaction.md deleted file mode 100644 index 5efdb179..00000000 --- a/docs/typescript/core/classes/Core.Transaction.md +++ /dev/null @@ -1,49 +0,0 @@ -# Class: Transaction - -[Core](../modules/Core.md).Transaction - -A helper class to store a Transaction instance. - -## Type parameters - -| Name | Type | -| :------ | :------ | -| `Tx` | `any` | - -## Methods - -### get - -▸ **get**(): `Tx` - -Get the Transaction. - -#### Returns - -`Tx` - -#### Defined in - -[classes/Transaction.class.ts:23](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Transaction.class.ts#L23) - -___ - -### set - -▸ **set**(`tx`): [`Transaction`](Core.Transaction.md)<`Tx`\> - -Set the Transaction. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `tx` | `Tx` | - -#### Returns - -[`Transaction`](Core.Transaction.md)<`Tx`\> - -#### Defined in - -[classes/Transaction.class.ts:15](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Transaction.class.ts#L15) diff --git a/docs/typescript/core/classes/Core.TxBuilder.md b/docs/typescript/core/classes/Core.TxBuilder.md index 3aeb2a94..c132113e 100644 --- a/docs/typescript/core/classes/Core.TxBuilder.md +++ b/docs/typescript/core/classes/Core.TxBuilder.md @@ -23,7 +23,7 @@ The main class by which TxBuilder classes are extended. ### buildAtomicZapTx -▸ `Abstract` **buildAtomicZapTx**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ `Abstract` **buildAtomicZapTx**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> The main function to build an atomic zap Transaction. @@ -35,17 +35,17 @@ The main function to build an atomic zap Transaction. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in -[classes/Abstracts/TxBuilder.abstract.class.ts:108](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L108) +[classes/Abstracts/TxBuilder.abstract.class.ts:107](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L107) ___ ### buildCancelTx -▸ `Abstract` **buildCancelTx**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ `Abstract` **buildCancelTx**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> The main function to build a cancellation Transaction. @@ -57,17 +57,17 @@ The main function to build a cancellation Transaction. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in -[classes/Abstracts/TxBuilder.abstract.class.ts:84](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L84) +[classes/Abstracts/TxBuilder.abstract.class.ts:83](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L83) ___ ### buildChainedZapTx -▸ `Abstract` **buildChainedZapTx**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ `Abstract` **buildChainedZapTx**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> The currently functioning way to process a chained Zap Transaction. @@ -79,17 +79,17 @@ The currently functioning way to process a chained Zap Transaction. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in -[classes/Abstracts/TxBuilder.abstract.class.ts:101](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L101) +[classes/Abstracts/TxBuilder.abstract.class.ts:100](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L100) ___ ### buildDepositTx -▸ `Abstract` **buildDepositTx**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ `Abstract` **buildDepositTx**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> The main function to build a deposit Transaction. @@ -101,17 +101,17 @@ The main function to build a deposit Transaction. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in -[classes/Abstracts/TxBuilder.abstract.class.ts:70](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L70) +[classes/Abstracts/TxBuilder.abstract.class.ts:69](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L69) ___ ### buildFreezerTx -▸ `Abstract` **buildFreezerTx**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ `Abstract` **buildFreezerTx**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> The main function to build a freezer Transaction. @@ -123,17 +123,17 @@ The main function to build a freezer Transaction. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in -[classes/Abstracts/TxBuilder.abstract.class.ts:55](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L55) +[classes/Abstracts/TxBuilder.abstract.class.ts:54](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L54) ___ ### buildSwapTx -▸ `Abstract` **buildSwapTx**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ `Abstract` **buildSwapTx**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> The main function to build a swap Transaction. @@ -145,17 +145,17 @@ The main function to build a swap Transaction. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in -[classes/Abstracts/TxBuilder.abstract.class.ts:63](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L63) +[classes/Abstracts/TxBuilder.abstract.class.ts:62](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L62) ___ ### buildUpdateSwapTx -▸ `Abstract` **buildUpdateSwapTx**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ `Abstract` **buildUpdateSwapTx**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> The main function to update an open swap. @@ -169,17 +169,17 @@ The main function to update an open swap. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in -[classes/Abstracts/TxBuilder.abstract.class.ts:91](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L91) +[classes/Abstracts/TxBuilder.abstract.class.ts:90](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L90) ___ ### buildWithdrawTx -▸ `Abstract` **buildWithdrawTx**(`config`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +▸ `Abstract` **buildWithdrawTx**(`config`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> The main function to build a withdraw Transaction. @@ -191,11 +191,11 @@ The main function to build a withdraw Transaction. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<`unknown`, `unknown`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`unknown`, `unknown`\>\> #### Defined in -[classes/Abstracts/TxBuilder.abstract.class.ts:77](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L77) +[classes/Abstracts/TxBuilder.abstract.class.ts:76](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L76) ___ @@ -211,20 +211,20 @@ Helper function for child classes to easily grab the appropriate protocol parame #### Defined in -[classes/Abstracts/TxBuilder.abstract.class.ts:114](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L114) +[classes/Abstracts/TxBuilder.abstract.class.ts:113](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L113) ___ ### newTxInstance -▸ `Abstract` **newTxInstance**(): `Promise`<[`Transaction`](Core.Transaction.md)<`Tx`\>\> +▸ `Abstract` **newTxInstance**(): `Promise`<`Tx`\> -Should create a new [Transaction](Core.Transaction.md) instance from the supplied transaction library. +Should create a new transaction instance from the supplied transaction library. #### Returns -`Promise`<[`Transaction`](Core.Transaction.md)<`Tx`\>\> +`Promise`<`Tx`\> #### Defined in -[classes/Abstracts/TxBuilder.abstract.class.ts:47](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L47) +[classes/Abstracts/TxBuilder.abstract.class.ts:46](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L46) diff --git a/docs/typescript/core/classes/Extensions.TxBuilderLucid.md b/docs/typescript/core/classes/Extensions.TxBuilderLucid.md index 734c30e5..bc51f870 100644 --- a/docs/typescript/core/classes/Extensions.TxBuilderLucid.md +++ b/docs/typescript/core/classes/Extensions.TxBuilderLucid.md @@ -49,13 +49,13 @@ TxBuilder< #### Defined in -[classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts:95](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts#L95) +[classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts:96](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts#L96) ## Methods ### buildFreezerTx -▸ **buildFreezerTx**(`freezerConfig`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<[`Transaction`](Core.Transaction.md)<`Tx`\>, `undefined` \| `string`\>\> +▸ **buildFreezerTx**(`freezerConfig`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`Tx`, `undefined` \| `string`\>\> Builds a valid transaction for the V2 Yield Farming contract that allows a user to add or update staking positions. @@ -68,7 +68,7 @@ that allows a user to add or update staking positions. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<[`Transaction`](Core.Transaction.md)<`Tx`\>, `undefined` \| `string`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`Tx`, `undefined` \| `string`\>\> #### Overrides @@ -76,13 +76,13 @@ that allows a user to add or update staking positions. #### Defined in -[classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts:188](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts#L188) +[classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts:189](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts#L189) ___ ### buildUpdateSwapTx -▸ **buildUpdateSwapTx**(`«destructured»`): `Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<[`Transaction`](Core.Transaction.md)<`Tx`\>, `undefined` \| `string`\>\> +▸ **buildUpdateSwapTx**(`«destructured»`): `Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`Tx`, `undefined` \| `string`\>\> Updates an open order by spending the UTXO back into the smart contract with an updated swap datum. @@ -97,7 +97,7 @@ with an updated swap datum. #### Returns -`Promise`<[`ITxBuilderTx`](../interfaces/Core.ITxBuilderTx.md)<[`Transaction`](Core.Transaction.md)<`Tx`\>, `undefined` \| `string`\>\> +`Promise`<[`ITxBuilder`](../interfaces/Core.ITxBuilder.md)<`Tx`, `undefined` \| `string`\>\> #### Overrides @@ -105,7 +105,7 @@ with an updated swap datum. #### Defined in -[classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts:359](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts#L359) +[classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts:355](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts#L355) ___ @@ -125,7 +125,7 @@ Helper function for child classes to easily grab the appropriate protocol parame #### Defined in -[classes/Abstracts/TxBuilder.abstract.class.ts:114](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L114) +[classes/Abstracts/TxBuilder.abstract.class.ts:113](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts#L113) ___ @@ -141,13 +141,13 @@ Initializes a Lucid instance with the #### Defined in -[classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts:113](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts#L113) +[classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts:114](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts#L114) ___ ### newTxInstance -▸ **newTxInstance**(`fee?`): `Promise`<[`Transaction`](Core.Transaction.md)<`Tx`\>\> +▸ **newTxInstance**(`fee?`): `Promise`<`Tx`\> Returns a new Tx instance from Lucid. Throws an error if not ready. @@ -159,7 +159,7 @@ Returns a new Tx instance from Lucid. Throws an error if not ready. #### Returns -`Promise`<[`Transaction`](Core.Transaction.md)<`Tx`\>\> +`Promise`<`Tx`\> #### Overrides @@ -167,4 +167,4 @@ Returns a new Tx instance from Lucid. Throws an error if not ready. #### Defined in -[classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts:147](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts#L147) +[classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts:148](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts#L148) diff --git a/docs/typescript/core/interfaces/Core.ITxBuilderTx.md b/docs/typescript/core/interfaces/Core.ITxBuilder.md similarity index 71% rename from docs/typescript/core/interfaces/Core.ITxBuilderTx.md rename to docs/typescript/core/interfaces/Core.ITxBuilder.md index e8d41ab7..65c70b90 100644 --- a/docs/typescript/core/interfaces/Core.ITxBuilderTx.md +++ b/docs/typescript/core/interfaces/Core.ITxBuilder.md @@ -1,6 +1,6 @@ -# Interface: ITxBuilderTx +# Interface: ITxBuilder -[Core](../modules/Core.md).ITxBuilderTx +[Core](../modules/Core.md).ITxBuilder The primary top-level API surface for dealing with built TxBuilder transactions. diff --git a/docs/typescript/core/interfaces/Core.ITxBuilderBaseOptions.md b/docs/typescript/core/interfaces/Core.ITxBuilderBaseOptions.md index 7cbea069..2a617838 100644 --- a/docs/typescript/core/interfaces/Core.ITxBuilderBaseOptions.md +++ b/docs/typescript/core/interfaces/Core.ITxBuilderBaseOptions.md @@ -21,7 +21,7 @@ Whether to allow debugging console logs. #### Defined in -[@types/txbuilder.ts:58](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L58) +[@types/txbuilder.ts:61](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L61) ___ @@ -33,7 +33,7 @@ The minimum amount of ADA required for a locking position. #### Defined in -[@types/txbuilder.ts:56](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L56) +[@types/txbuilder.ts:59](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L59) ___ @@ -45,7 +45,7 @@ A supported Cardano network. #### Defined in -[@types/txbuilder.ts:54](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L54) +[@types/txbuilder.ts:57](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L57) ___ @@ -57,4 +57,4 @@ A CIP-30 compatible wallet. #### Defined in -[@types/txbuilder.ts:52](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L52) +[@types/txbuilder.ts:55](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L55) diff --git a/docs/typescript/core/interfaces/Core.ITxBuilderComplete.md b/docs/typescript/core/interfaces/Core.ITxBuilderComplete.md deleted file mode 100644 index 5544559f..00000000 --- a/docs/typescript/core/interfaces/Core.ITxBuilderComplete.md +++ /dev/null @@ -1,37 +0,0 @@ -# Interface: ITxBuilderComplete - -[Core](../modules/Core.md).ITxBuilderComplete - -The returned interface once a transaction is successfully built. - -## Properties - -### cbor - -• **cbor**: `string` - -The CBOR encoded hex string of the transaction. Useful if you want to do something with it instead of submitting to the wallet. - -#### Defined in - -[@types/txbuilder.ts:20](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L20) - -___ - -### submit - -• **submit**: () => `Promise`<`string`\> - -#### Type declaration - -▸ (): `Promise`<`string`\> - -Submits the CBOR encoded transaction to the connected wallet returns a hex encoded transaction hash. - -##### Returns - -`Promise`<`string`\> - -#### Defined in - -[@types/txbuilder.ts:22](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L22) diff --git a/docs/typescript/core/interfaces/Core.ITxBuilderReferralFee.md b/docs/typescript/core/interfaces/Core.ITxBuilderReferralFee.md index de151a2a..03b83fda 100644 --- a/docs/typescript/core/interfaces/Core.ITxBuilderReferralFee.md +++ b/docs/typescript/core/interfaces/Core.ITxBuilderReferralFee.md @@ -14,4 +14,4 @@ The label that prefixes the fee amount in the metadata. #### Defined in -[@types/txbuilder.ts:32](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L32) +[@types/txbuilder.ts:35](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L35) diff --git a/docs/typescript/core/interfaces/Extensions.ITxBuilderLucidOptions.md b/docs/typescript/core/interfaces/Extensions.ITxBuilderLucidOptions.md index effa2357..beba3bc3 100644 --- a/docs/typescript/core/interfaces/Extensions.ITxBuilderLucidOptions.md +++ b/docs/typescript/core/interfaces/Extensions.ITxBuilderLucidOptions.md @@ -43,7 +43,7 @@ Whether to allow debugging console logs. #### Defined in -[@types/txbuilder.ts:58](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L58) +[@types/txbuilder.ts:61](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L61) ___ @@ -59,7 +59,7 @@ The minimum amount of ADA required for a locking position. #### Defined in -[@types/txbuilder.ts:56](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L56) +[@types/txbuilder.ts:59](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L59) ___ @@ -75,7 +75,7 @@ A supported Cardano network. #### Defined in -[@types/txbuilder.ts:54](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L54) +[@types/txbuilder.ts:57](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L57) ___ @@ -103,4 +103,4 @@ A CIP-30 compatible wallet. #### Defined in -[@types/txbuilder.ts:52](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L52) +[@types/txbuilder.ts:55](https://github.com/SundaeSwap-finance/sundae-sdk/blob/main/packages/core/src/@types/txbuilder.ts#L55) diff --git a/docs/typescript/core/modules/Core.md b/docs/typescript/core/modules/Core.md index e03ea9d8..2e8a3c9b 100644 --- a/docs/typescript/core/modules/Core.md +++ b/docs/typescript/core/modules/Core.md @@ -61,7 +61,6 @@ const txHash = await sdk.swap( /** ... */ ).then(({ submit }) => submit()); - [FreezerConfig](../classes/Core.FreezerConfig.md) - [SundaeSDK](../classes/Core.SundaeSDK.md) - [SwapConfig](../classes/Core.SwapConfig.md) -- [Transaction](../classes/Core.Transaction.md) - [WithdrawConfig](../classes/Core.WithdrawConfig.md) - [ZapConfig](../classes/Core.ZapConfig.md) @@ -82,11 +81,10 @@ const txHash = await sdk.swap( /** ... */ ).then(({ submit }) => submit()); - [IPoolDataAsset](../interfaces/Core.IPoolDataAsset.md) - [IPoolQuery](../interfaces/Core.IPoolQuery.md) - [IProtocolParams](../interfaces/Core.IProtocolParams.md) +- [ITxBuilder](../interfaces/Core.ITxBuilder.md) - [ITxBuilderBaseOptions](../interfaces/Core.ITxBuilderBaseOptions.md) -- [ITxBuilderComplete](../interfaces/Core.ITxBuilderComplete.md) - [ITxBuilderFees](../interfaces/Core.ITxBuilderFees.md) - [ITxBuilderReferralFee](../interfaces/Core.ITxBuilderReferralFee.md) -- [ITxBuilderTx](../interfaces/Core.ITxBuilderTx.md) - [LockArguments](../interfaces/Core.LockArguments.md) - [OrderConfigArgs](../interfaces/Core.OrderConfigArgs.md) - [SwapArguments](../interfaces/Core.SwapArguments.md) diff --git a/lerna.json b/lerna.json index 64abc2dc..240c24b0 100644 --- a/lerna.json +++ b/lerna.json @@ -2,7 +2,7 @@ "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useNx": true, "useWorkspaces": true, - "version": "1.0.0-alpha.3", + "version": "1.1.0-alpha.3", "npmClient": "yarn", "ignoreChanges": [ "**/__tests__/**", diff --git a/packages/core/src/@types/txbuilder.ts b/packages/core/src/@types/txbuilder.ts index cf4b92d6..3064a41e 100644 --- a/packages/core/src/@types/txbuilder.ts +++ b/packages/core/src/@types/txbuilder.ts @@ -4,18 +4,21 @@ import { AssetAmount, IAssetAmountMetadata } from "@sundaeswap/asset"; /** * The primary top-level API surface for dealing with built TxBuilder transactions. */ -export interface ITxBuilderTx { +export interface ITxBuilder { tx: T; - fees: ITxBuilderFees; datum: K; - sign: () => Promise; - build: () => Promise; + fees: ITxBuilderFees; + build: () => Promise; } -/** - * The returned interface once a transaction is successfully built. - */ -export interface ITxBuilderComplete { +export interface ITxBuilderSign { + /** The CBOR encoded hex string of the transaction. Useful if you want to do something with it instead of submitting to the wallet. */ + cbor: string; + /** Requests a signature from the user and rebuilds the transaction with the witness set. */ + sign: () => Promise; +} + +export interface ITxBuilderSubmit { /** The CBOR encoded hex string of the transaction. Useful if you want to do something with it instead of submitting to the wallet. */ cbor: string; /** Submits the CBOR encoded transaction to the connected wallet returns a hex encoded transaction hash. */ @@ -36,7 +39,7 @@ export interface ITxBuilderReferralFee { * The full list of calculated fees for a transaction built by a TxBuilder instance. */ export interface ITxBuilderFees { - cardanoTxFee: AssetAmount; + cardanoTxFee?: AssetAmount; deposit: AssetAmount; scooperFee: AssetAmount; liquidity?: AssetAmount; diff --git a/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts b/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts index 86693864..ea2da5b0 100644 --- a/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts +++ b/packages/core/src/classes/Abstracts/TxBuilder.abstract.class.ts @@ -1,6 +1,6 @@ import { IQueryProviderClass, - ITxBuilderTx, + ITxBuilder, ITxBuilderBaseOptions, } from "../../@types"; import { CancelConfig } from "../Configs/CancelConfig.class"; @@ -9,7 +9,6 @@ import { FreezerConfig } from "../Configs/FreezerConfig.class"; import { SwapConfig } from "../Configs/SwapConfig.class"; import { WithdrawConfig } from "../Configs/WithdrawConfig.class"; import { ZapConfig } from "../Configs/ZapConfig.class"; -import { Transaction } from "../Transaction.class"; import { Utils } from "../Utils.class"; /** @@ -42,46 +41,46 @@ export abstract class TxBuilder< } /** - * Should create a new {@link Transaction} instance from the supplied transaction library. + * Should create a new transaction instance from the supplied transaction library. */ - abstract newTxInstance(): Promise>; + abstract newTxInstance(): Promise; /** * The main function to build a freezer Transaction. * * @param config A {@link FreezerConfig} instance. - * @returns {ITxBuilderTx} + * @returns {ITxBuilder} */ - abstract buildFreezerTx(config: FreezerConfig): Promise; + abstract buildFreezerTx(config: FreezerConfig): Promise; /** * The main function to build a swap Transaction. * * @param config A {@link SwapConfig} instance. - * @returns {ITxBuilderTx} + * @returns {ITxBuilder} */ - abstract buildSwapTx(config: SwapConfig): Promise; + abstract buildSwapTx(config: SwapConfig): Promise; /** * The main function to build a deposit Transaction. * * @param config A {@link DepositConfig} instance. */ - abstract buildDepositTx(config: DepositConfig): Promise; + abstract buildDepositTx(config: DepositConfig): Promise; /** * The main function to build a withdraw Transaction. * * @param config A {@link WithdrawConfig} instance. */ - abstract buildWithdrawTx(config: WithdrawConfig): Promise; + abstract buildWithdrawTx(config: WithdrawConfig): Promise; /** * The main function to build a cancellation Transaction. * * @param config A {@link CancelConfig} instance. */ - abstract buildCancelTx(config: CancelConfig): Promise; + abstract buildCancelTx(config: CancelConfig): Promise; /** * The main function to update an open swap. @@ -91,21 +90,21 @@ export abstract class TxBuilder< abstract buildUpdateSwapTx(config: { cancelConfig: CancelConfig; swapConfig: SwapConfig; - }): Promise; + }): Promise; /** * The currently functioning way to process a chained Zap Transaction. * * @param config A {@link ZapConfig} instance. */ - abstract buildChainedZapTx(config: ZapConfig): Promise; + abstract buildChainedZapTx(config: ZapConfig): Promise; /** * The main function to build an atomic zap Transaction. * * @param config A {@link ZapConfig} instance. */ - abstract buildAtomicZapTx(config: ZapConfig): Promise; + abstract buildAtomicZapTx(config: ZapConfig): Promise; /** * Helper function for child classes to easily grab the appropriate protocol parameters for SundaeSwap. diff --git a/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts b/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts index 0d214b83..41e55738 100644 --- a/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts +++ b/packages/core/src/classes/Extensions/TxBuilders/TxBuilder.Lucid.class.ts @@ -9,6 +9,7 @@ import { getAddressDetails, Datum, Assets, + TxComplete, } from "lucid-cardano"; import { AssetAmount, IAssetAmountMetadata } from "@sundaeswap/asset"; @@ -16,7 +17,7 @@ import { IQueryProviderClass, TSupportedNetworks, ITxBuilderBaseOptions, - ITxBuilderTx, + ITxBuilder, ITxBuilderFees, DepositMixed, ITxBuilderReferralFee, @@ -31,7 +32,6 @@ import { ZapConfig } from "../../Configs/ZapConfig.class"; import { WithdrawConfig } from "../../Configs/WithdrawConfig.class"; import { DepositConfig } from "../../Configs/DepositConfig.class"; import { FreezerConfig } from "../../Configs/FreezerConfig.class"; -import { Transaction } from "../../Transaction.class"; import { LucidHelper } from "../LucidHelper.class"; /** @@ -53,12 +53,13 @@ export interface ITxBuilderLucidOptions extends ITxBuilderBaseOptions { * Object arguments for completing a transaction. */ interface ITxBuilderLucidCompleteTxArgs { - tx: Transaction; + tx: Tx; referralFee?: AssetAmount; datum?: string; deposit?: bigint; scooperFee?: bigint; coinSelection?: boolean; + complete?: boolean; } /** @@ -144,13 +145,13 @@ export class TxBuilderLucid extends TxBuilder< * Returns a new Tx instance from Lucid. Throws an error if not ready. * @returns */ - async newTxInstance(fee?: ITxBuilderReferralFee): Promise> { + async newTxInstance(fee?: ITxBuilderReferralFee): Promise { await this.initWallet(); if (!this.wallet) { this._throwWalletNotConnected(); } - const instance = new Transaction(this, this.wallet.newTx()); + const instance = this.wallet.newTx(); if (fee) { const payment: Assets = {}; @@ -159,10 +160,10 @@ export class TxBuilderLucid extends TxBuilder< ? "lovelace" : fee.payment.metadata.assetId ] = fee.payment.amount; - instance.tx.payToAddress(fee.destination, payment); + instance.payToAddress(fee.destination, payment); if (fee?.feeLabel) { - instance.tx.attachMetadataWithConversion( + instance.attachMetadataWithConversion( 674, `${fee.feeLabel}: ${fee.payment.value.toString()} ${ fee.payment.metadata.assetId !== "" @@ -270,18 +271,15 @@ export class TxBuilderLucid extends TxBuilder< const signerKey = LucidHelper.getAddressHashes(ownerAddress); txInstance - .get() .readFrom(referenceInput) .addSignerKey(signerKey?.paymentCredentials); if (signerKey?.stakeCredentials) { - txInstance.get().addSignerKey(signerKey?.stakeCredentials); + txInstance.addSignerKey(signerKey?.stakeCredentials); } if (existingPositionData) { - txInstance - .get() - .collectFrom(existingPositionData, Utils.getVoidRedeemer()); + txInstance.collectFrom(existingPositionData, Utils.getVoidRedeemer()); } if (delegation && lockedValues?.length > 0) { @@ -291,9 +289,7 @@ export class TxBuilderLucid extends TxBuilder< delegation, }); - txInstance - .get() - .payToContract(contractAddress, { inline: cbor }, payment); + txInstance.payToContract(contractAddress, { inline: cbor }, payment); return this.completeTx({ tx: txInstance, datum: cbor, @@ -344,7 +340,7 @@ export class TxBuilderLucid extends TxBuilder< this.options.network ); - txInstance.get().payToContract(ESCROW_ADDRESS, cbor, payment); + txInstance.payToContract(ESCROW_ADDRESS, cbor, payment); return this.completeTx({ tx: txInstance, datum: cbor, @@ -363,41 +359,74 @@ export class TxBuilderLucid extends TxBuilder< cancelConfig: CancelConfig; swapConfig: SwapConfig; }) { - const { - tx: cancelTx, - fees: { referral: cancelReferralFee }, - } = await this.buildCancelTx(cancelConfig); - const { - datum, - fees: { referral: swapReferralFee }, - } = await this.buildSwapTx(swapConfig); const { ESCROW_ADDRESS } = this.getParams(); - const { suppliedAsset } = swapConfig.buildArgs(); + /** + * First, build the cancel transaction. + */ + const { tx: cancelTx } = await this.buildCancelTx(cancelConfig); - const payment = Utils.accumulateSuppliedAssets( - [suppliedAsset], - this.options.network - ); + /** + * Then, build the swap datum to attach to the cancel transaction. + */ + const { + pool: { ident, assetA, assetB }, + orderAddresses, + suppliedAsset, + minReceivable, + } = swapConfig.buildArgs(); + const datumBuilder = new DatumBuilderLucid(this.options.network); + const swapDatum = datumBuilder.buildSwapDatum({ + ident, + swap: { + SuppliedCoin: Utils.getAssetSwapDirection(suppliedAsset.metadata, [ + assetA, + assetB, + ]), + MinimumReceivable: minReceivable, + }, + orderAddresses, + fundedAsset: suppliedAsset, + }); - if (!datum) { + if (!swapDatum) { throw new Error("Swap datum is required."); } - const accumulatedFee = new AssetAmount(0n, cancelReferralFee?.metadata); - const fees = [cancelReferralFee, swapReferralFee]; - fees.forEach((fee) => { - // Skip the fee if it doesn't match the first fee type. - if (fee && fee.metadata.assetId === accumulatedFee.metadata.assetId) { - accumulatedFee.add(fee); + cancelTx.payToContract( + ESCROW_ADDRESS, + swapDatum.cbor, + Utils.accumulateSuppliedAssets([suppliedAsset], this.options.network) + ); + + /** + * Accumulate any referral fees. + */ + let accumulatedReferralFee: AssetAmount | undefined; + if (cancelConfig?.referralFee) { + accumulatedReferralFee = cancelConfig?.referralFee?.payment; + } + if (swapConfig?.referralFee) { + // Add the accumulation. + if (accumulatedReferralFee) { + accumulatedReferralFee.add(swapConfig?.referralFee?.payment); + } else { + accumulatedReferralFee = swapConfig?.referralFee?.payment; } - }); - cancelTx.get().payToContract(ESCROW_ADDRESS, datum, payment); + // Add to the transaction. + cancelTx.payToAddress(swapConfig.referralFee.destination, { + [swapConfig.referralFee.payment.metadata.assetId === "" + ? "lovelace" + : swapConfig.referralFee.payment.metadata.assetId]: + swapConfig.referralFee.payment.amount, + }); + } + return this.completeTx({ tx: cancelTx, - datum, - referralFee: accumulatedFee, + datum: swapDatum.cbor, + referralFee: accumulatedReferralFee, }); } @@ -423,7 +452,7 @@ export class TxBuilderLucid extends TxBuilder< }, }); - tx.get().payToContract(this.getParams().ESCROW_ADDRESS, cbor, payment); + tx.payToContract(this.getParams().ESCROW_ADDRESS, cbor, payment); return this.completeTx({ tx, datum: cbor, @@ -431,7 +460,7 @@ export class TxBuilderLucid extends TxBuilder< }); } - async buildWithdrawTx(withdrawConfig: WithdrawConfig): Promise { + async buildWithdrawTx(withdrawConfig: WithdrawConfig): Promise { const { suppliedLPAsset, pool, orderAddresses, referralFee } = withdrawConfig.buildArgs(); @@ -449,7 +478,7 @@ export class TxBuilderLucid extends TxBuilder< suppliedLPAsset: suppliedLPAsset, }); - tx.get().payToContract(this.getParams().ESCROW_ADDRESS, cbor, payment); + tx.payToContract(this.getParams().ESCROW_ADDRESS, cbor, payment); return this.completeTx({ tx, datum: cbor, @@ -458,6 +487,7 @@ export class TxBuilderLucid extends TxBuilder< } async buildCancelTx(cancelConfig: CancelConfig) { + debugger; const { datum, datumHash, utxo, address, referralFee } = cancelConfig.buildArgs(); @@ -496,8 +526,7 @@ export class TxBuilderLucid extends TxBuilder< this.getParams(); try { - tx.get() - .collectFrom(utxoToSpend, ESCROW_CANCEL_REDEEMER) + tx.collectFrom(utxoToSpend, ESCROW_CANCEL_REDEEMER) .addSignerKey(signerKey) .attachSpendingValidator({ type: "PlutusV1", @@ -516,7 +545,7 @@ export class TxBuilderLucid extends TxBuilder< }); } - async buildChainedZapTx(zapConfig: ZapConfig): Promise { + async buildChainedZapTx(zapConfig: ZapConfig): Promise { const { pool, suppliedAsset, orderAddresses, swapSlippage, referralFee } = zapConfig.buildArgs(); @@ -602,14 +631,14 @@ export class TxBuilderLucid extends TxBuilder< }, }); - tx.tx.attachMetadataWithConversion(103251, { + tx.attachMetadataWithConversion(103251, { [`0x${depositData.hash}`]: Utils.splitMetadataString( depositData.cbor, "0x" ), }); - tx.get().payToContract(ESCROW_ADDRESS, swapData.cbor, payment); + tx.payToContract(ESCROW_ADDRESS, swapData.cbor, payment); return this.completeTx({ tx, datum: swapData.cbor, @@ -619,7 +648,7 @@ export class TxBuilderLucid extends TxBuilder< }); } - async buildAtomicZapTx(zapConfig: ZapConfig): Promise { + async buildAtomicZapTx(zapConfig: ZapConfig): Promise { const { suppliedAsset, pool, orderAddresses, zapDirection, referralFee } = zapConfig.buildArgs(); @@ -640,7 +669,7 @@ export class TxBuilderLucid extends TxBuilder< }, }); - tx.get().payToContract(this.getParams().ESCROW_ADDRESS, cbor, payment); + tx.payToContract(this.getParams().ESCROW_ADDRESS, cbor, payment); return this.completeTx({ tx, datum: cbor, @@ -655,8 +684,9 @@ export class TxBuilderLucid extends TxBuilder< deposit, scooperFee, coinSelection, + complete = true, }: ITxBuilderLucidCompleteTxArgs): Promise< - ITxBuilderTx, Datum | undefined> + ITxBuilder > { const baseFees: Omit = { deposit: new AssetAmount( @@ -670,34 +700,31 @@ export class TxBuilderLucid extends TxBuilder< referral: referralFee, }; - const txFee = tx.get().txBuilder.get_fee_if_set(); - const finishedTx = await tx.get().complete({ coinSelection }); + const txFee = tx.txBuilder.get_fee_if_set(); + let finishedTx: TxComplete | undefined; - const thisTx = { + const thisTx: ITxBuilder = { tx, datum, - fees: { - ...baseFees, - cardanoTxFee: new AssetAmount( - BigInt(txFee?.to_str() ?? finishedTx?.fee?.toString() ?? "0"), - ADA_ASSET_DECIMAL - ), - }, + fees: baseFees, async build() { + if (!finishedTx) { + finishedTx = await tx.complete({ coinSelection }); + thisTx.fees.cardanoTxFee = new AssetAmount( + BigInt(txFee?.to_str() ?? finishedTx?.fee?.toString() ?? "0"), + ADA_ASSET_DECIMAL + ); + } + return { - submit: async () => { - throw new Error( - "You must sign your transaction before submitting to a wallet!" - ); - }, cbor: Buffer.from(finishedTx.txComplete.to_bytes()).toString("hex"), - }; - }, - async sign() { - const signedTx = await finishedTx.sign().complete(); - return { - submit: async () => await signedTx.submit(), - cbor: Buffer.from(signedTx.txSigned.to_bytes()).toString("hex"), + sign: async () => { + const signedTx = await (finishedTx as TxComplete).sign().complete(); + return { + cbor: Buffer.from(signedTx.txSigned.to_bytes()).toString("hex"), + submit: async () => await signedTx.submit(), + }; + }, }; }, }; diff --git a/packages/core/src/classes/Transaction.class.ts b/packages/core/src/classes/Transaction.class.ts deleted file mode 100644 index 3dc05512..00000000 --- a/packages/core/src/classes/Transaction.class.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { ITxBuilderComplete } from "../@types"; -import { TxBuilder } from "./Abstracts/TxBuilder.abstract.class"; - -/** - * A helper class to store a Transaction instance. - */ -export class Transaction { - txComplete?: ITxBuilderComplete; - - constructor(public builder: TxBuilder, public tx: Tx) {} - - /** - * Set the Transaction. - */ - set(tx: Tx): Transaction { - this.tx = tx; - return this; - } - - /** - * Get the Transaction. - */ - get(): Tx { - return this.tx; - } -} diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index c2b81726..cccc1372 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -53,7 +53,6 @@ */ export { SundaeSDK } from "./classes/SundaeSDK.class"; export { Utils } from "./classes/Utils.class"; -export { Transaction } from "./classes/Transaction.class"; export { SwapConfig } from "./classes/Configs/SwapConfig.class"; export { ZapConfig } from "./classes/Configs/ZapConfig.class"; export { DepositConfig } from "./classes/Configs/DepositConfig.class"; diff --git a/packages/demo/src/components/Actions/Actions.tsx b/packages/demo/src/components/Actions/Actions.tsx index 2deaca4f..a167267e 100644 --- a/packages/demo/src/components/Actions/Actions.tsx +++ b/packages/demo/src/components/Actions/Actions.tsx @@ -9,6 +9,7 @@ import { Withdraw } from "./modules/Withdraw"; import { Zap } from "./modules/Zap"; import { Lock } from "./modules/LockAssets"; import { Unlock } from "./modules/UnlockAssets"; +import { UpdateSwap } from "./modules/UpdateSwap"; export const poolQuery: IPoolQuery = { pair: [ @@ -73,7 +74,7 @@ export const Actions: FC = () => { {/* */} - {/* */} + @@ -101,7 +102,7 @@ export const Actions: FC = () => { border: "1px solid #555", }} src={{ - cardanoTxFee: fees.cardanoTxFee.amount.toString(), + cardanoTxFee: fees.cardanoTxFee?.amount.toString(), scooperFee: fees.scooperFee.amount.toString(), deposit: fees.deposit.amount.toString(), referral: { diff --git a/packages/demo/src/components/Actions/modules/Deposit.tsx b/packages/demo/src/components/Actions/modules/Deposit.tsx index 3b06d608..c2cceacc 100644 --- a/packages/demo/src/components/Actions/modules/Deposit.tsx +++ b/packages/demo/src/components/Actions/modules/Deposit.tsx @@ -46,18 +46,19 @@ export const Deposit: FC = ({ setCBOR, setFees, submit }) => { }, } : {}), - }).then(async ({ sign, build, fees }) => { + }).then(async ({ build, fees }) => { setFees(fees); + const builtTx = await build(); + if (submit) { - const { cbor, submit } = await sign(); + const { cbor, submit } = await builtTx.sign(); setCBOR({ cbor, hash: await submit(), }); } else { - const { cbor } = await build(); setCBOR({ - cbor, + cbor: builtTx.cbor, }); } }); diff --git a/packages/demo/src/components/Actions/modules/LockAssets.tsx b/packages/demo/src/components/Actions/modules/LockAssets.tsx index 8b043dd9..5af3bb10 100644 --- a/packages/demo/src/components/Actions/modules/LockAssets.tsx +++ b/packages/demo/src/components/Actions/modules/LockAssets.tsx @@ -44,18 +44,19 @@ export const Lock: FC = ({ setCBOR, setFees, submit }) => { }, } : {}), - }).then(async ({ sign, build, fees }) => { + }).then(async ({ build, fees }) => { setFees(fees); + const builtTx = await build(); + if (submit) { - const { cbor, submit } = await sign(); + const { cbor, submit } = await builtTx.sign(); setCBOR({ cbor, hash: await submit(), }); } else { - const { cbor } = await build(); setCBOR({ - cbor, + cbor: builtTx.cbor, }); } }); diff --git a/packages/demo/src/components/Actions/modules/SwapAB.tsx b/packages/demo/src/components/Actions/modules/SwapAB.tsx index 4e6a1aca..4b2fa634 100644 --- a/packages/demo/src/components/Actions/modules/SwapAB.tsx +++ b/packages/demo/src/components/Actions/modules/SwapAB.tsx @@ -39,18 +39,19 @@ export const SwapAB: FC = ({ setCBOR, setFees, submit }) => { }; } - await SDK.swap(args).then(async ({ sign, build, fees }) => { + await SDK.swap(args).then(async ({ build, fees }) => { setFees(fees); + const builtTx = await build(); + if (submit) { - const { cbor, submit } = await sign(); + const { cbor, submit } = await builtTx.sign(); setCBOR({ cbor, hash: await submit(), }); } else { - const { cbor } = await build(); setCBOR({ - cbor, + cbor: builtTx.cbor, }); } }); diff --git a/packages/demo/src/components/Actions/modules/SwapBA.tsx b/packages/demo/src/components/Actions/modules/SwapBA.tsx index 27cf6a00..8e68e818 100644 --- a/packages/demo/src/components/Actions/modules/SwapBA.tsx +++ b/packages/demo/src/components/Actions/modules/SwapBA.tsx @@ -40,18 +40,19 @@ export const SwapBA: FC = ({ setCBOR, setFees, submit }) => { }, } : {}), - }).then(async ({ sign, build, fees }) => { + }).then(async ({ build, fees }) => { setFees(fees); + const builtTx = await build(); + if (submit) { - const { cbor, submit } = await sign(); + const { cbor, submit } = await builtTx.sign(); setCBOR({ cbor, hash: await submit(), }); } else { - const { cbor } = await build(); setCBOR({ - cbor, + cbor: builtTx.cbor, }); } }); diff --git a/packages/demo/src/components/Actions/modules/UnlockAssets.tsx b/packages/demo/src/components/Actions/modules/UnlockAssets.tsx index 171b8986..ccbe82a9 100644 --- a/packages/demo/src/components/Actions/modules/UnlockAssets.tsx +++ b/packages/demo/src/components/Actions/modules/UnlockAssets.tsx @@ -36,18 +36,19 @@ export const Unlock: FC = ({ setCBOR, setFees, submit }) => { }, } : {}), - }).then(async ({ sign, build, fees }) => { + }).then(async ({ build, fees }) => { setFees(fees); + const builtTx = await build(); + if (submit) { - const { cbor, submit } = await sign(); + const { cbor, submit } = await builtTx.sign(); setCBOR({ cbor, hash: await submit(), }); } else { - const { cbor } = await build(); setCBOR({ - cbor, + cbor: builtTx.cbor, }); } }); diff --git a/packages/demo/src/components/Actions/modules/UpdateSwap.tsx b/packages/demo/src/components/Actions/modules/UpdateSwap.tsx index 7b3c1478..27cd50a7 100644 --- a/packages/demo/src/components/Actions/modules/UpdateSwap.tsx +++ b/packages/demo/src/components/Actions/modules/UpdateSwap.tsx @@ -1,4 +1,4 @@ -import { CancelConfigArgs, SwapConfigArgs } from "@sundaeswap/sdk-core"; +import { CancelConfigArgs, SwapConfigArgs, Utils } from "@sundaeswap/sdk-core"; import { FC, useCallback, useState } from "react"; import { useAppState } from "../../../state/context"; import { ActionArgs, poolQuery } from "../Actions"; @@ -17,7 +17,7 @@ export const UpdateSwap: FC = ({ setCBOR, setFees, submit }) => { setUpdating(true); try { const utxo = { - hash: "81dab47ba9e15f4a0db63e05f6148304086bbbf1b6577f06936d48d2fe8a30ad", + hash: "fb1169adf43a5888b4e15ffef6db839705b2ffab7057fc3ea0a6713479307be0", index: 0, }; @@ -26,7 +26,7 @@ export const UpdateSwap: FC = ({ setCBOR, setFees, submit }) => { fee: "0.05", pair: [ "", - "2fe3c3364b443194b10954771c95819b8d6ed464033c21f03f8facb5.69555344", + "99b071ce8580d6a3a11b4902145adb8bfd0d2a03935af8cf66403e15.524245525259", ], }); @@ -37,6 +37,11 @@ export const UpdateSwap: FC = ({ setCBOR, setFees, submit }) => { address: walletAddress, }; + const suppliedAsset = new AssetAmount(100000000n, { + assetId: "", + decimals: 6, + }); + const updatedSwapConfig: SwapConfigArgs = { pool, orderAddresses: { @@ -45,11 +50,12 @@ export const UpdateSwap: FC = ({ setCBOR, setFees, submit }) => { }, }, slippage: 0.3, - suppliedAsset: new AssetAmount(1000000n, { - assetId: - "2fe3c3364b443194b10954771c95819b8d6ed464033c21f03f8facb5.69555344", - decimals: 6, - }), + minReceivable: Utils.getMinReceivableFromSlippage( + pool, + suppliedAsset, + 0.3 + ), + suppliedAsset, ...(useReferral ? { referralFee: { @@ -65,18 +71,19 @@ export const UpdateSwap: FC = ({ setCBOR, setFees, submit }) => { }; await SDK.updateSwap(cancelConfig, updatedSwapConfig).then( - async ({ sign, build, fees }) => { + async ({ build, fees }) => { setFees(fees); + const builtTx = await build(); + if (submit) { - const { cbor, submit } = await sign(); + const { cbor, submit } = await builtTx.sign(); setCBOR({ cbor, hash: await submit(), }); } else { - const { cbor } = await build(); setCBOR({ - cbor, + cbor: builtTx.cbor, }); } } diff --git a/packages/demo/src/components/Actions/modules/Withdraw.tsx b/packages/demo/src/components/Actions/modules/Withdraw.tsx index 293c852d..971ae54a 100644 --- a/packages/demo/src/components/Actions/modules/Withdraw.tsx +++ b/packages/demo/src/components/Actions/modules/Withdraw.tsx @@ -57,18 +57,19 @@ export const Withdraw: FC = ({ setCBOR, setFees, submit }) => { }, } : {}), - }).then(async ({ sign, build, fees }) => { + }).then(async ({ build, fees }) => { setFees(fees); + const builtTx = await build(); + if (submit) { - const { cbor, submit } = await sign(); + const { cbor, submit } = await builtTx.sign(); setCBOR({ cbor, hash: await submit(), }); } else { - const { cbor } = await build(); setCBOR({ - cbor, + cbor: builtTx.cbor, }); } }); diff --git a/packages/demo/src/components/Actions/modules/Zap.tsx b/packages/demo/src/components/Actions/modules/Zap.tsx index ca25a191..3e9ac4e6 100644 --- a/packages/demo/src/components/Actions/modules/Zap.tsx +++ b/packages/demo/src/components/Actions/modules/Zap.tsx @@ -38,18 +38,19 @@ export const Zap: FC = ({ setCBOR, setFees, submit }) => { }, } : {}), - }).then(async ({ sign, build, fees }) => { + }).then(async ({ build, fees }) => { setFees(fees); + const builtTx = await build(); + if (submit) { - const { cbor, submit } = await sign(); + const { cbor, submit } = await builtTx.sign(); setCBOR({ cbor, hash: await submit(), }); } else { - const { cbor } = await build(); setCBOR({ - cbor, + cbor: builtTx.cbor, }); } });