@@ -25,14 +25,7 @@ export {
2525 RunestoneStorage ,
2626} from './src/indexer' ;
2727
28- export { Edict } from './src/edict' ;
29- export { Etching } from './src/etching' ;
3028export { Network } from './src/network' ;
31- export { Rune } from './src/rune' ;
32- export { SpacedRune } from './src/spacedrune' ;
33- export { RuneId } from './src/runeid' ;
34- export { Runestone } from './src/runestone' ;
35- export { Terms } from './src/terms' ;
3629
3730export {
3831 BitcoinRpcClient ,
@@ -101,9 +94,9 @@ const SPACERS = ['•', '.'];
10194 * @returns encoded runestone bytes
10295 * @throws Error if encoding is detected to be considered a cenotaph
10396 */
104- export function encodeRunestoneUnsafe ( runestone : RunestoneSpec ) : {
105- encodedRune : Buffer ;
106- etchingCommitment : Buffer | undefined ;
97+ export function encodeRunestone ( runestone : RunestoneSpec ) : {
98+ encodedRunestone : Buffer ;
99+ etchingCommitment ? : Buffer ;
107100} {
108101 const mint = runestone . mint
109102 ? Some ( new RuneId ( u64Strict ( runestone . mint . block ) , u32Strict ( runestone . mint . tx ) ) )
@@ -121,25 +114,11 @@ export function encodeRunestoneUnsafe(runestone: RunestoneSpec): {
121114 let etchingCommitment : Buffer | undefined = undefined ;
122115 if ( runestone . etching ) {
123116 const etchingSpec = runestone . etching ;
124- let hasSpacers = false ;
125- for ( const spacer of SPACERS ) {
126- if ( runestone . etching ?. rune ?. includes ( spacer ) ) {
127- hasSpacers = true ;
128- break ;
129- }
130- }
131117
132- let runeSpacers : number | undefined = undefined ;
133- let parsedRawRune : Rune | undefined = undefined ;
134- if ( hasSpacers ) {
135- const spacedRune = etchingSpec . rune ? SpacedRune . fromString ( etchingSpec . rune ) : undefined ;
136- runeSpacers = spacedRune ?. spacers ;
137- parsedRawRune = spacedRune ?. rune ;
138- } else {
139- parsedRawRune = etchingSpec . rune ? Rune . fromString ( etchingSpec . rune ) : undefined ;
140- }
141- const rune : Option < Rune > =
142- parsedRawRune !== undefined ? Some ( parsedRawRune ) . map ( ( ) => parsedRawRune ! ) : None ;
118+ const spacedRune = etchingSpec . runeName
119+ ? SpacedRune . fromString ( etchingSpec . runeName )
120+ : undefined ;
121+ const rune = spacedRune ?. rune !== undefined ? Some ( spacedRune . rune ) : None ;
143122
144123 if (
145124 etchingSpec . symbol &&
@@ -155,7 +134,10 @@ export function encodeRunestoneUnsafe(runestone: RunestoneSpec): {
155134 etchingSpec . divisibility !== undefined ? Some ( etchingSpec . divisibility ) . map ( u8Strict ) : None ;
156135 const premine =
157136 etchingSpec . premine !== undefined ? Some ( etchingSpec . premine ) . map ( u128Strict ) : None ;
158- const spacers : Option < u32 > = hasSpacers && runeSpacers ? Some ( u32Strict ( runeSpacers ) ) : None ;
137+ const spacers =
138+ spacedRune ?. spacers !== undefined && spacedRune . spacers !== 0
139+ ? Some ( u32Strict ( spacedRune . spacers ) )
140+ : None ;
159141 const symbol = etchingSpec . symbol ? Some ( etchingSpec . symbol ) : None ;
160142
161143 if ( divisibility . isSome ( ) && divisibility . unwrap ( ) > MAX_DIVISIBILITY ) {
@@ -195,11 +177,11 @@ export function encodeRunestoneUnsafe(runestone: RunestoneSpec): {
195177 const turbo = etchingSpec . turbo ?? false ;
196178
197179 etching = Some ( new Etching ( divisibility , rune , spacers , symbol , terms , premine , turbo ) ) ;
198- etchingCommitment = ( parsedRawRune as Rune ) ? .commitment ;
180+ etchingCommitment = rune . isSome ( ) ? rune . unwrap ( ) . commitment : undefined ;
199181 }
200182
201183 return {
202- encodedRune : new Runestone ( mint , pointer , edicts , etching ) . encipher ( ) ,
184+ encodedRunestone : new Runestone ( mint , pointer , edicts , etching ) . encipher ( ) ,
203185 etchingCommitment,
204186 } ;
205187}
0 commit comments